V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
V2EX  ›  Python

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

  •  
  •   beaock · 2018-12-22 11:43:32 +08:00 · 5086 次点击
    这是一个创建于 2145 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    谢谢

    28 条回复    2018-12-22 22:45:44 +08:00
    greatbody
        1
    greatbody  
       2018-12-22 11:48:24 +08:00
    不了解 Django,但是 用过一年多的 ROR

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

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

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

    自信的程序员才不管别人说啥。
    KgM4gLtF0shViDH3
        12
    KgM4gLtF0shViDH3  
       2018-12-22 14:16:35 +08:00 via iPhone
    如果楼主基础扎实水平较高换什么都无所谓吧,如果水平一般这样折腾就变成框架仔了
    limbo0
        13
    limbo0  
       2018-12-22 14:49:57 +08:00 via Android
    都是脚本需要,入手很容易的
    strahe
        14
    strahe  
       2018-12-22 15:11:47 +08:00
    如果只是单纯会 python, 跨度还是很大的.
    renyijiu
        15
    renyijiu  
       2018-12-22 15:30:38 +08:00
    不大,提前看一下 rails 的一些默认规范,很快就可以上手了(因为我就是这么过来的)
    pynix
        16
    pynix  
       2018-12-22 15:58:08 +08:00
    @FrankFang128 大概用了两三年了。。
    franky_xhl
        17
    franky_xhl  
       2018-12-22 16:19:14 +08:00
    日本也有一些公司用 Python 与 Django 的
    msg7086
        18
    msg7086  
       2018-12-22 19:00:24 +08:00   ❤️ 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  
       2018-12-22 19:06:28 +08:00 via iPhone
    用了一年多 rails,要换 python 和 go 的路过...
    rails 写起来很快,也非常灵活(源码一脸蒙蔽,放弃)

    不过现在市场不大,如果只是干活就随便看看能干活就好,没必要深究
    blacklee
        20
    blacklee  
       2018-12-22 19:26:40 +08:00
    别相信什么 Ruby on Rails 速度不行的鬼话,还是看人。
    大概 7 年前我用 Rails 写了个后台编辑站点,后来产品被外包公司用 Java 重做。结果用户普遍抱怨新的没旧的好用。
    glues
        21
    glues  
       2018-12-22 20:19:19 +08:00 via iPhone
    会了 ruby 之后基本不太想写 python 了
    kernel
        22
    kernel  
       2018-12-22 20:37:22 +08:00 via Android
    ruby 这个语言对于喜欢 py 的人来说可能爱不起来,设计的太随意了,可读性也不好。
    agagega
        23
    agagega  
       2018-12-22 20:49:14 +08:00 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
       2018-12-22 21:53:42 +08:00
    @FrankFang128 决定两种都接触接触,反正也不会太费时间
    @limbo0 去 stackoverflow 上面看了看,推荐是两个都学
    @franky_xhl 感觉不是特别多 哈哈 以后有时间再把 ror 看看,目前在做 java 相关的
    @msg7086 我决定也学学 ror 看看有多么爽
    @blacklee 是的 速度的瓶颈有时候不是编程语言
    fy
        25
    fy  
       2018-12-22 22:05:32 +08:00
    @abcbuzhiming #7 话说现在好像是 Python2 垫底了吧,我看 Ruby 更新日志一直在优化速度,新版本 JIT 都有了。然后 Py3 现在据说比 2 快。
    gzq527
        26
    gzq527  
       2018-12-22 22:24:59 +08:00
    为什么不用 java
    FrankFang128
        27
    FrankFang128  
       2018-12-22 22:43:05 +08:00
    @pynix 我也才两年,已经膨胀了
    abcbuzhiming
        28
    abcbuzhiming  
       2018-12-22 22:45:44 +08:00
    @fy 不是指的语言,而是指的 ROR 这个框架本身凉了,至少在国内是这样,两三年前还有不少公司用的,现在基本都绝迹,现在是 java 和 go 的天下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1652 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:47 · PVG 00:47 · LAX 08:47 · JFK 11:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.