从 Python 的 Django 转 Ruby on rails 跨度大不大? - V2EX
div id="Wrapper">
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
beaock

从 Python 的 Django 转 Ruby on rails 跨度大不大?

  •  
  •   beaock Dec 22, 2018 6052 views
    This topic created in 2683 days ago, the information mentioned may be changed or developed.

    没学过 Ruby,不知道这两者之间有多大的相似性与不同

    学习 Ror 之前要先了解 Ruby 语言么?

    人在日本,感觉日本的 web service 的公司基本都是在用 ror,想了解一下

    谢谢

    28 replies    2018-12-22 22:45:44 +08:00
    greatbody
        1
    greatbody  
       Dec 22, 2018
    不了解 Django,但是 用过一年多的 ROR

    Ruby 还是很好学的,除了一些玄学部分比如语法糖。
    ROR 的一些坑大多都是 ORM 的。
    pynix
        2
    pynix  
       Dec 22, 2018
    自从转了 ROR 就回不去了。。。。Django 发布到什么版本都不知了,现在。。
    beaock     3
    beaock  
    OP
       Dec 22, 2018
    @pynix 这么刺激的么...
    ithou
        4
    ithou  
       Dec 22, 2018 via Android
    @pynix 2.1.4
    colorfulberry
        5
    colorfulberry  
       Dec 22, 2018
    ROR 挺好的的,会 js 那么很多语法糖 ror 都有。
    janxin
        6
    janxin  
       Dec 22, 2018
    都换语言了你说大不大
    abcbuzhiming
        7
    abcbuzhiming  
       Dec 22, 2018
    ROR 是目前最接近声明式编程语言思想( tel me what you want,not how to do )的 Web 框架,如果你理解了它的思维你写起来会非常爽(号称最理解程序员)。缺陷就是速度特别慢,外加语法糖太多了,导致你理解别人的代码就有困难。再就是声明式如果搞不定问题的时候,你就要头疼了
    loading
        8
    loading  
       Dec 22, 2018 via Android
    @abcbuzhiming 看着像普通软件用 vb 写,就是点属性的样子?
    FrankFang128
        9
    FrankFang128  
       Dec 22, 2018
    楼上的有几个是长期用 RoR 的?
    FrankFang128
        10
    FrankFang128  
       Dec 22, 2018
    RoR 是经典的全栈框架,一直被抄袭,从未被超越。
    即使你不会 ruby 依然可以使用 Rails,因为语法实在是太易懂了,只要你会英文就行(不会英文或者不想学习英文的就滚粗吧)。

    优点:重视程序员的幸福感、注重最佳实践、注重约定优于配置、注重开箱即用
    缺点:不快(但也没你们说得那么慢,跟 C、Golang 肯定是比不了的,但是重在开发效率)

    创业公司用 RoR 是非常合适的,因为 RoR 足够撑到你公司到达 A 轮融资,融资之后嫌慢花钱找人重写即可。
    FrankFang128
        11
    FrankFang128  
       Dec 22, 2018
    哦,还有一个缺点:不适合不自信的程序员。
    不自信的程序总希望自己用的语言和框架是人人称赞的,但是 RoR 目前的支持者基本不说话了。
    所以不自信的程序员需要找粉丝多的语言和框架,以支撑自己深入下去。

    自信的程序员才不管别人说啥。
    KgM4gLtF0shViDH3
        12
    KgM4gLtF0shViDH3  
       Dec 22, 2018 via iPhone
    如果楼主基础扎实水平较高换什么都无所谓吧,如果水平一般这样折腾就变成框架仔了
    limbo0
        13
    limbo0  
       Dec 22, 2018 via Android
    都是脚本需要,入手很容易的
    strahe
        14
    strahe  
       Dec 22, 2018
    如果只是单纯会 python, 跨度还是很大的.
    renyijiu
        15
    renyijiu  
       Dec 22, 2018
    不大,提前看一下 rails 的一些默认规范,很快就可以上手了(因为我就是这么过来的)
    pynix
        16
    pynix  
       Dec 22, 2018
    @FrankFang128 大概用了两三年了。。
    franky_xhl
        17
    franky_xhl  
       Dec 22, 2018
    日本也有一些公司用 Python 与 Django 的
    msg7086
        18
    msg7086  
       Dec 22, 2018   1
    Ruby 语言表达能力强,包容性强,不会强迫你做你不太想做的事情。
    Ruby 和 Python 看上去很相似,但是骨子里完全相反。
    如果你熟悉 Python 的哲学理念,你会发现无数 Ruby 代码几乎是和 Python 完全在唱反调。

    比如 Python 的核心哲学,「用一种方法,最好是只有一种方法来做一件事」,直接结果就是一千个人心中有一千个哈姆雷特,凭什么你心中的才是最好的,我心中的就不是?
    Ruby 则是随便你怎么玩。Code Wars 上很多 Ruby 的简单算法题,如果你去看别人的答案,你很可能会看到十来种完全不同的解法,有些速度快,有些简洁,有些精妙,但是很少有人会说「你写的方法不 Rubyic*」。(*所以并没有 Rubyic 这个词。)
    而且 Ruby 这门语言是集三种前辈语言的优点于一身 Lisp Smalltalk 和 Perl。他有 Lisp 的函数式风格,Smalltalk 的纯面向对象机制,和 Perl 强大的文字处理功能,写代码就是两个字,舒服。

    Rails 也是一样,你可以用任何 make sense 的方法去写代码,只要符合大体上的规则就行了(比如测试驱动开发,不写又臭又长的函数,等等 )。性能差是硬伤没办法,但是代码,写起来就是舒服。不过各种黑魔法用得太多以后,调试的时候会比较累……

    我自己是从 PHP 转过去的。开始用 Rails 之前我写了大概 10 年的 PHP 代码,然而花了大概一个星期学会用 Ruby 和 Rails 以后,我之后所有的个人项目全都用 Rails 写了。PHP 最多帮人修修 Discuz 论坛的时候才会用了。
    ppyybb
        19
    ppyybb  
       Dec 22, 2018 via iPhone
    用了一年多 rails,要换 python 和 go 的路过...
    rails 写起来很快,也非常灵活(源码一脸蒙蔽,放弃)

    不过现在市场不大,如果只是干活就随便看看能干活就好,没必要深究
    blacklee
        20
    blacklee  
       Dec 22, 2018
    别相信什么 Ruby on Rails 速度不行的鬼话,还是看人。
    大概 7 年前我用 Rails 写了个后台编辑站点,后来产品被外包公司用 Java 重做。结果用户普遍抱怨新的没旧的好用。
    glues
        21
    glues  
       Dec 22, 2018 via iPhone
    会了 ruby 之后基本不太想写 python 了
    kernel
        22
    kernel  
       Dec 22, 2018 via Android
    ruby 这个语言对于喜欢 py 的人来说可能爱不起来,设计的太随意了,可读性也不好。
    agagega
        23
    agagega  
       Dec 22, 2018 via iPad
    其实现在各大 MVC 的 Web 框架都有点 Rails 那个意思了,不过始终差点东西,差的其实不是框架,是语言(当然 Rails 到现在基本也很成熟了,搞互联网应用基本的需求要么自带要么有成熟的轮子)。所以刚接触可能一脸懵逼:

    - 为什么这个控制器方法啥都不写就一个空的,就能映射到页面上?
    - 为啥代码里不用写 require ?
    - 没有装饰器吗?

    其实都是因为 Ruby 语言允许你做很多稀奇古怪的动态的事情。现在用 Rails 的创业公司应该也不少,不过没那么火了,因为国内不好招人,也不能像某司 Golang 和 Java 换来换去一样地吹。

    话说回来,Ruby 的性能真没很多人想的那么差……基本上跟 Python 在一个级别,部分 benchmark 还比 Py 快点,当然比 Node 是都差不少。有人说慢主要是早期 Ruby 在性能优化上就没做什么功夫,后来 2.x 换了一个新的解释器;另一方面就是 Rails 这货实在有点庞大,IO 模型也老被人吐槽。至于具体性能怎么样,你可以亲自动手试试。接下来的版本要上官方 JIT 了,可以期待一下。(我看了下作者的文档,貌似是从字节码编译到 C 再编译到机器码,编译占用了大半时间所以效果还不明显)
    beaock
        24
    beaock  
    OP
       Dec 22, 2018
    @FrankFang128 决定两种都接触接触,反正也不会太费时间
    @limbo0 去 stackoverflow 上面看了看,推荐是两个都学
    @franky_xhl 感觉不是特别多 哈哈 以后有时间再把 ror 看看,目前在做 java 相关的
    @msg7086 我决定也学学 ror 看看有多么爽
    @blacklee 是的 速度的瓶颈有时候不是编程语言
    fy
        25
    fy  
       Dec 22, 2018
    @abcbuzhiming #7 话说现在好像是 Python2 垫底了吧,我看 Ruby 更新日志一直在优化速度,新版本 JIT 都有了。然后 Py3 现在据说比 2 快。
    gzq527
        26
    gzq527  
       Dec 22, 2018
    为什么不用 java
    FrankFang128
        27
    FrankFang128  
       Dec 22, 2018
    @pynix 我也才两年,已经膨胀了
    abcbuzhiming
        28
    abcbuzhiming  
       Dec 22, 2018
    @fy 不是指的语言,而是指的 ROR 这个框架本身凉了,至少在国内是这样,两三年前还有不少公司用的,现在基本都绝迹,现在是 java 和 go 的天下
    About     Help     Advertise     Blog     API     FAQ     Solana     3215 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 70ms UTC 14:05 PVG 22:05 LAX 07:05 JFK 10:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86