V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
skyxin888
V2EX  ›  问与答

Android 想学一些后台的东西 是选 Python 还是 ruby

  •  
  •   skyxin888 · 2014-12-19 10:09:06 +08:00 · 11455 次点击
    这是一个创建于 3413 天前的主题,其中的信息可能已经有所发展或是发生改变。
    79 条回复    2017-07-18 21:24:16 +08:00
    victor
        1
    victor  
       2014-12-19 10:11:09 +08:00   ❤️ 1
    我是用 Ruby,因为只会这个。但是从 V2EX 上的工作机会和过去1年计算机出版图书的列表中可以看到:Python 已经甩了 Ruby 几条街。
    hging
        2
    hging  
       2014-12-19 10:12:18 +08:00
    用java啊. 哈哈哈哈哈
    开玩笑的. 我用Ruby的. 也只会这个. 楼上握手.
    serco
        3
    serco  
       2014-12-19 10:13:51 +08:00
    对比着做个demo,最后你就还是会进入Ruby坑的
    rails3
        4
    rails3  
       2014-12-19 10:18:57 +08:00
    ruby 握握握手
    skyxin888
        5
    skyxin888  
    OP
       2014-12-19 10:19:36 +08:00
    @victor 从java切换过去有难度吗 还有node.js 怎么样
    xinple
        6
    xinple  
       2014-12-19 10:20:22 +08:00   ❤️ 3
    python
    nodejs
    lululau
        7
    lululau  
       2014-12-19 10:26:19 +08:00
    分别用一周时间都简单了解一下。我都了解过,我选 Ruby。
    patosky
        8
    patosky  
       2014-12-19 10:27:21 +08:00
    imn1
        9
    imn1  
       2014-12-19 10:27:42 +08:00
    linux 默认就有python
    victor
        10
    victor  
       2014-12-19 10:29:13 +08:00
    @skyxin888 要看你对 Java 的理解怎么样或者换句话说,你编程的基本功怎么样。对于面向对象的程序设计的掌握程度,比如封装,继承,多态,鸭子类型这些。如果这些基本功熟悉了,你换一个语言的成本还是挺低的,先熟悉一下基本语法再看点元编程的小技巧和花招。

    node.js 我没有实际工作经验,不敢说好不好。对它的理解都是网上的道听途说,相信这些对比类的文章你看的也是够多了。

    一句话结论:从 java 切换过去没难度,node.js 我觉得不怎么样。
    laven
        11
    laven  
       2014-12-19 10:31:49 +08:00
    golang
    bohan
        12
    bohan  
       2014-12-19 10:37:00 +08:00
    Ruby On Rails真是大杀器啊,完全舍不得不用Ruby,但有的时候会有点麻烦,第三方资源的库支持比较弱
    ChiangDi
        13
    ChiangDi  
       2014-12-19 10:37:54 +08:00 via Android
    大部分推荐 Pythpn 的人因为他们从来没有尝试过 Ruby。都试试你就哪个写起来更爽。
    ChiangDi
        14
    ChiangDi  
       2014-12-19 10:39:09 +08:00 via Android
    @ChiangDi typo Pythpn -> Python
    kxxoling
        15
    kxxoling  
       2014-12-19 10:39:53 +08:00
    语言层面上这两者有很多相似之处,不过从应用上,如果你想往 web 后端或者机器学习、数据挖掘上发展,选 Python;对前端感兴趣就学 Ruby 吧,LESS、SCSS 这些 CSS 预处理工具都是 Ruby 写的,而且 Ruby 开发者社区跟前端重叠度很高。另外,在 Mac 上,Ruby 的地位也是很高的。
    xiaohanyu
        16
    xiaohanyu  
       2014-12-19 10:42:24 +08:00   ❤️ 1
    Ruby +1
    clino
        17
    clino  
       2014-12-19 10:46:40 +08:00
    偏后台关注性能的话,可以参考一下这个benchmark https://www.techempower.com/benchmarks/
    里面有很多的测试方式,可以综合看一下

    当然开发效率也要综合考虑,python和ruby的开发效率我估计都比较高,但 python 有一个好处是适用面很广,很多后台运维的东东都可以用python很快搞定
    zhouquanbest
        18
    zhouquanbest  
       2014-12-19 10:49:30 +08:00   ❤️ 4
    作为一家Java公司唯一写Python Web的Android工程师
    我表示Python和Android的气质比较相符 Ruby和iOS比较对路
    fwee
        19
    fwee  
       2014-12-19 10:52:27 +08:00
    ruby吧,jruby的成熟度也比较高,后期如有效率或者需要JVM的库之类的因素可以很轻松的迁移到JVM上(jruby调用java类库可是一个爽字啊..),甚至你想用jruby来开发android都行..

    单论语言本身的对比 http://www.zhihu.com/question/19552194/answer/35281362
    TangMonk
        20
    TangMonk  
       2014-12-19 10:54:16 +08:00
    果断ruby
    oott123
        21
    oott123  
       2014-12-19 10:54:48 +08:00
    我也犹豫过……

    学 Python : 咦,学 Python 2 还是 Python 3 呢……
    学 Ruby / RoR : 服务器内存够不够……

    最后还是在用 Python 。感觉用起来还算舒服。Ruby 会一丁点,但是 ror 完全看不懂,一看就头晕……
    tini8
        22
    tini8  
       2014-12-19 10:58:14 +08:00
    ruby写小项目很爽很好玩,等项目大了那些奇技淫巧给你带来的就只有困扰了。python的朴实无华,在项目变大的时候还可以游刃有余,保持可读性。当然你会说可读性在于写程序的人,但不能否人程序语言本身的可读性因素。

    简言之:ruby在语言中寻找乐趣,python在项目中寻找乐趣。
    winnie2012
        23
    winnie2012  
       2014-12-19 11:00:26 +08:00
    RubyMotion 3.0 支持使用 Ruby 开发 iOS / Android / Mac , 你能看懂如下代码对吗?

    `
    # app/app_delegate.rb
    class AppDelegate < PM::Delegate
    status_bar true, animation: :fade

    def on_load(app, options)
    open RootScreen.new(nav_bar: true)
    end
    end

    # app/screens/root_screen.rb
    class RootScreen < PM::Screen
    title "Root Screen"

    def on_load
    set_nav_bar_button :right, title: "Help", action: :open_help_screen
    end

    def open_help_screen
    open HelpScreen
    end
    end

    # app/screens/help_screen.rb
    class HelpScreen < PM::TableScreen
    title "Table Screen"

    def table_data
    [{
    title: "Help",
    cells: [
    { title: "About this app", action: :tapped_about },
    { title: "Log out", action: :log_out }
    ]
    }]
    end

    def tapped_about(args={})
    open AboutScreen
    end

    def log_out
    # Log out!
    end
    end
    `
    xwsoul
        24
    xwsoul  
       2014-12-19 11:27:30 +08:00
    PHP是最好的语言
    redguy6
        25
    redguy6  
       2014-12-19 11:30:13 +08:00
    Python. 直接学Python2. 别问为什么.
    invite
        26
    invite  
       2014-12-19 11:32:45 +08:00   ❤️ 1
    @xwsoul 以前也这么觉得,现在发现,Python好像更合适。
    xuwenmang
        27
    xuwenmang  
       2014-12-19 11:33:56 +08:00
    @redguy6 为什么?
    phun
        28
    phun  
       2014-12-19 11:37:56 +08:00
    两个都学呗,Python像是C++的动态化,完成一个功能方法单一,目的性很强;Ruby很灵活了,完成一个功能有多种方法,而且很有意思。

    当然我推荐的话就是Ruby!
    redguy6
        29
    redguy6  
       2014-12-19 11:42:38 +08:00
    @xuwenmang Python2书和教程比较多吧。
    chrischan168
        30
    chrischan168  
       2014-12-19 11:49:54 +08:00
    python + tornado ,开始你的python后台开发之旅吧~ ps.我其实是写前端的=。=
    xwsoul
        31
    xwsoul  
       2014-12-19 11:59:36 +08:00
    @invite Python 其实也是很不错的...如
    kikyous
        32
    kikyous  
       2014-12-19 12:01:22 +08:00
    ruby
    AWSAM
        33
    AWSAM  
       2014-12-19 12:02:52 +08:00
    ruby +1
    msg7086
        34
    msg7086  
       2014-12-19 12:12:32 +08:00 via iPhone
    果断ruby,py已扔。

    说内存不够的同学…至少买个512以上的机子吧
    jjx
        35
    jjx  
       2014-12-19 12:31:04 +08:00   ❤️ 2
    看性格学语言, 性格张扬的学ruby, 性格沉静的学python ,听我没错的
    useyes
        36
    useyes  
       2014-12-19 13:17:12 +08:00
    受不了py缩进,就选择了 Ruby
    zythum
        37
    zythum  
       2014-12-19 13:20:53 +08:00   ❤️ 1
    语法优雅方面ruby确实好。
    从代码自由度来说感觉js(node)最好
    从社区角度python最好。
    datou552211
        38
    datou552211  
       2014-12-19 14:10:31 +08:00
    golang 能开发andirod 能开发服务器
    nicai000
        39
    nicai000  
       2014-12-19 14:39:53 +08:00   ❤️ 1
    放个地图炮, 智商低的就去用ruby.

    因为我见过太多人别的学不会, 只学会了ruby然后成天叫嚣ruby好Python烂, 相反Python社区则是大气得很没那么充满敌意.
    freeze
        40
    freeze  
       2014-12-19 14:41:54 +08:00
    两个都不会的情况下,我会选择 Python
    lihei12345
        41
    lihei12345  
       2014-12-19 14:47:24 +08:00
    PHP是最好的开发语言!
    EPr2hh6LADQWqRVH
        42
    EPr2hh6LADQWqRVH  
       2014-12-19 14:59:17 +08:00
    主用Python和CoffeeScript

    ROR尝试学了两三次,都被强大的魔法击退了
    crazyxin1988
        43
    crazyxin1988  
       2014-12-19 15:07:17 +08:00
    我觉得 python 更好一些。python 不但可以写web
    工作中 python 可以写一些工具和测试脚本~非常方便
    正所谓 import在手 天下我有~
    作为一名java攻城狮 在选择python和ruby时,我也犹豫过~不过最终选择了python
    bellchu
        44
    bellchu  
       2014-12-19 15:16:46 +08:00
    Python
    loryyang
        45
    loryyang  
       2014-12-19 16:24:06 +08:00
    python好一些,整个环境更加成熟和大众。ruby太灵活了,掌握起来也痛苦
    devon
        46
    devon  
       2014-12-19 16:49:22 +08:00
    @victor Python 已经甩了 Ruby 几条街。

    可能因为 Ruby 一本书能讲好的东西,Python 要5本书?
    liprais
        47
    liprais  
       2014-12-19 16:51:28 +08:00
    @crazyxin1988 举一个python能写ruby不能写的例子呗~
    mahone3297
        48
    mahone3297  
       2014-12-19 16:55:21 +08:00
    php...
    Aegwynn
        49
    Aegwynn  
       2014-12-19 16:57:02 +08:00
    不管是Android还是iOS后台,我都用的Java。至于为什么,很简单——因为Java是我第一熟练的语言,开发调试效率最高;其次我会考虑用Python。
    robertlyc
        50
    robertlyc  
       2014-12-19 17:01:56 +08:00
    呵呵 我就问一句话

    到底是学py2哪还是学py3哪
    robertlyc
        51
    robertlyc  
       2014-12-19 17:02:18 +08:00
    说linux默认有python

    我还说mac默认就有ruby哪
    crazyxin1988
        52
    crazyxin1988  
       2014-12-19 17:03:26 +08:00
    @liprais 不会ruby~没法举例子
    但是python的各种丰富的库 不仅仅是web开发~很方便~
    我只是推荐python 又没黑ruby
    blacktulip
        53
    blacktulip  
       2014-12-19 17:10:31 +08:00 via iPhone
    这两个可以一起学,有相似之处,不会太难,建议先学 P 再学 R ,这样你会感觉「我靠 R 居然可以这样」。如果顺序反了,你会觉得「怎么 P 这都不行,没意思」。P 的好处是应用更广泛,R 由于 Rails 太过强势导致一门专精。

    楼主需求是写移动 app 的后端 API 的话,其实这两者都不是最优选择。要么学 async 的 Node ,要么学并发狂魔 Erlang/Elixir 比较对路。又或者直接用 Java 也比 P 或 R 强。
    nsa
        54
    nsa  
       2014-12-19 17:28:19 +08:00 via iPad
    Elixir+1
    robertlyc
        55
    robertlyc  
       2014-12-19 18:04:55 +08:00
    elixir 还是半成品

    ruby也不光只有rails, 还有sinatra, padrino这些light-weight framework
    还有谁说ruby只能做web的 站出来 我保证不打死你

    对应make的rake
    中间层rack

    api 服务更是有grape, Goliath

    大css都有sass这样的神器
    dianyong
        56
    dianyong  
       2014-12-19 18:06:24 +08:00
    如果只能二选一,那还是Python吧。
    ixiaohei
        57
    ixiaohei  
       2014-12-19 18:10:17 +08:00
    @devon 完全不能理解你的逻辑
    zythum
        58
    zythum  
       2014-12-19 18:13:57 +08:00
    ruby党比较装逼,比较喜欢折腾造轮子。py党基本是实用为主,能跑就行。
    貌似ruby的项目都比较折腾。不折腾都跑不起来。py基本拿过来就能用。

    确实语言和程序员的互相选择的。

    比如
    用py的,基本做一个项目开始找库,有木有现成的可以import进来就能跑。
    ruby的会是。这个东西我可以自己实现一个。这样获取更好。

    coffeeScript, sass 都是ruby党搞出来的。估计是写js和css写蛋疼,然后开始造轮子的结果。

    话说这个就是传说中的月经贴了。所以

    php才能世界上最好的语言!!
    robertlyc
        59
    robertlyc  
       2014-12-19 18:20:01 +08:00
    @devon 黑的好

    我记得当年有一张图 一边是java的书 可以堆一堆 反观ruby只需要滑板书和镐头书两本

    书出多 是好事?

    仁者见仁咯
    devon
        60
    devon  
       2014-12-19 19:48:10 +08:00
    @ixiaohei 那咱们可以这么理解吧。工作机会多,出书多并不代表谁好谁不好,关键是自己有没有把一个语言发挥好,产生出价值。

    富土康的工作机会多吧,说明它就好?出书最多的是鸡汤书,说明写鸡汤好。语言用的多的,可能还是 Java,C 什么的。

    语言就是工具,做什么事情,适合用什么语言,就用什么,对不?
    sunperd
        61
    sunperd  
       2014-12-19 22:09:26 +08:00
    python做数学建模和机器学习模式识别还是极好的
    redvoilin
        62
    redvoilin  
       2014-12-19 22:17:07 +08:00
    我选ruby
    ostholz
        63
    ostholz  
       2014-12-19 22:44:18 +08:00
    ruby是适合人类的语言
    py是适合机器的语言
    sammo
        64
    sammo  
       2014-12-19 23:07:12 +08:00
    我觉题主既然是移动端开发,可学习和你当前工作对接的后台的相关知识,这样若有不懂的东西还能问问周围的人
    我觉 python flask 是可以玩一下的,好像解决了 若干页面小网站 的问题,urllib2 + lxml + xpath 是可以玩一下的,好像解决了爬数据的问题
    ruby on rails + SQLite3 / postgresql 是打算玩一下的,好像解决了多页面网站的问题 .. ( mongodb 没顾上看 )
    AngularJS + storeDB 也是可以玩一下的,好像解决了单页 APP 开发的问题,Grunt.js 和 Gulp.js 也是很厉害的生产力,一定会觉得有用
    ant_sz
        65
    ant_sz  
       2014-12-19 23:40:16 +08:00
    楼主面临的选择其实是在 Python 和 **Ruby on Rails** 当中选择一个的问题。

    如果这样选的话,我觉得楼主可以先从 RoR 开始学,这个上手很快,还不需要什么 ruby 的背景。之后的话也建议接触一下 python 相关的东西。这些东西上手时间都很短,没有说学了一个就必须放弃另一个的。技多不压身。

    就我个人来讲,我是先学的 RoR,后来感觉 RoR 这个框架越来越臃肿,又不想跳 Sintra 之类的坑,最后换做了 Django。主要的考虑是 Sintra 或者 Flask 这样的轻框架开新项目的起步的慢一些,而 RoR 的性能,尤其是是开发的时候每次 rake 的速度确实有点捉急。目前又准备跳 Golang 的坑,原因是 Django 做 websocket 很不方便。

    如果楼主仅仅是想要为自己的 Android 应用写一个后台,尤其是那种服务端逻辑不怎么复杂的服务后台的话,建议直接用 parse.com 或者类似的服务好了。
    hging
        66
    hging  
       2014-12-19 23:45:30 +08:00
    @nicai000 啧啧。 你这算是高级黑么? 黑Python么? 哈哈。 你可以说PHP大法好嘛。
    xpol
        67
    xpol  
       2014-12-20 01:05:34 +08:00 via iPad
    ruby多自然的
    python好古板啊
    GeekGao
        68
    GeekGao  
       2014-12-20 01:10:39 +08:00
    都学一下,你自有分辨!
    msg7086
        69
    msg7086  
       2014-12-20 11:02:17 +08:00 via iPhone
    @ant_sz 最近刚刚从ror转到grape,前台用angularjs后台写api。个人觉得更轻量。
    skyxin888
        70
    skyxin888  
    OP
       2014-12-20 11:10:56 +08:00
    @sammo 就是为了想和自己做的移动开发对接
    victor
        71
    victor  
       2014-12-20 11:16:54 +08:00
    @devon 因为没看过任何一本 Python 的书,所以不知道是不是真的这样哦。年后打算买一本 Python 的看看。到底所谓的那些运维能不能用 Ruby 实现
    victor
        72
    victor  
       2014-12-20 11:17:30 +08:00
    @skyxin888 如果只是为了和自己的应用对接,那我不建议你学习语言了。还是直接用 LeanCloud 之类的更好。学语言只是为了目的而服务啊。
    skyxin888
        73
    skyxin888  
    OP
       2014-12-20 11:23:40 +08:00
    @victor 应该是顺便和自己的移动开发对接
    sammo
        74
    sammo  
       2014-12-20 12:30:50 +08:00   ❤️ 1
    @skyxin888 以 API 为目的 google搜 数据库 SDK parse
    http://segmentfault.com/blog/mexiqq/1190000002220355
    mthli
        75
    mthli  
       2014-12-20 19:15:14 +08:00
    要我选Go。
    sudoz
        76
    sudoz  
       2015-03-14 16:22:19 +08:00
    @zhouquanbest 这个气质一说怎解?一吊丝一贵族?
    qw7692336
        77
    qw7692336  
       2015-08-14 11:34:20 +08:00
    vtoexsir
        78
    vtoexsir  
       2016-01-17 11:38:44 +08:00
    @zythum ok ,心理分析的不错!
    XinYu0617
        79
    XinYu0617  
       2017-07-18 21:24:16 +08:00
    我感觉这能干一架...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3225 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 12:49 · PVG 20:49 · LAX 05:49 · JFK 08:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.