V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coool
V2EX  ›  Ruby on Rails

Ruby, Rails 不值一学

  •  
  •   coool · 2020-11-11 12:12:49 +08:00 · 12416 次点击
    这是一个创建于 1507 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是前两天开的帖:https://www.v2ex.com/t/723318

    我的工作是 Go 开发,因为总听说 Ruby 、Rails 很吊,所以业余打算学学,选了《 Agile web development with Rails 6 》一书看的,折腾了 3 天准备放弃了,真的不值一学。

    如果一项编程语言的入门,大量时间要花到折腾环境、各种乱七八糟的报错上而无法聚焦到语言、框架本身,那还谈什么提高?

    当初学 Go 也就小半天搭了环境就开始写了,Rails 整了 3 天,每天十个小时,到现在rails new demo都没跑起来,确切的说是没完全跑起来。

    安装 Ruby 、Rails就不说了,rails new demo各种报错,最后localhost:3000访问到了,但是自从执行 了bin/rails generate controller Say hello goodbye,历数我遇到的各种奇怪的报错,完全没有任何解决方案:

    • 比如执行bin/webpack-dev-server报错:
    node:internal/modules/cjs/loader:903
      throw err;
      ^
    
    Error: Cannot find module 'webpack-cli/bin/config-yargs'
    Require stack:
    

    官方 github issure 各种说版本问题,还让在packge.json加了scripts:代码,换成webpack serve啥的,没点用,我就奇怪了前端圈各种软件库啥的升级从来不考虑向后兼容吗?约定的命令说改就改,改了还没啥用,解决不了旧问题还制造一堆新问题。github 、stack overflow 、csdn 之流都没有任何解决方案:https://github.com/webpack/webpack-dev-server/issues/2759, https://blog.csdn.net/Piconjo/article/details/105744808


    …………
    ……………………
    ………………………………

    • 唯一一个解决的问题是执行bin/rails generate controller Say hello goodbye没啥反应,用了spring stop

    • 现在我的 rails 是这样的:

    $ bin/rails about
    
    About your application's environment
    Rails version             6.0.3.4
    Ruby version              ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
    RubyGems version          3.1.4
    Rack version              2.2.3
    Middleware                Webpacker::DevServerProxy, ActionDispatch::HostAuthorization, Rack::Sendfile, ActionDispatch::Static, ActionDispatch::Executor, ActiveSupport::Cache::Strategy::LocalCache::Middleware, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, ActionDispatch::RemoteIp, Sprockets::Rails::QuietAssets, Rails::Rack::Logger, ActionDispatch::ShowExceptions, WebConsole::Middleware, ActionDispatch::DebugExceptions, ActionDispatch::ActionableExceptions, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ContentSecurityPolicy::Middleware, Rack::Head, Rack::ConditionalGet, Rack::ETag, Rack::TempfileReaper
    Application root          /Users/coool/ruby/work/demo
    Environment               development
    Database adapter          sqlite3
    Database schema version   0
    

    package.json文件是这样的

    {
      "name": "demo",
      "private": true,
      "dependencies": {
        "@rails/actioncable": "^6.0.0",
        "@rails/activestorage": "^6.0.0",
        "@rails/ujs": "^6.0.0",
        "turbolinks": "^5.2.0",
        "webpack": "^5.4.0"
      },
      "scripts": {
        "serve": "webpack serve"
      },
      "version": "0.1.0",
      "devDependencies": {
        "webpack-cli": "^4.2.0",
        "webpack-dev-server": "^3.11.0"
      },
      "babel": {
        "presets": [
          "./node_modules/@rails/webpacker/package/babel/preset.js"
        ]
      },
      "browserslist": [
        "defaults"
      ]
    }
    

    可能 Rails 确实是殿堂级的框架,但是这个框架的门槛在云上,我在地上上不去……各种环境、升级、代理设置、global 翻墙都没用、版本不兼容、乱七八糟的报错,是我在写 Go 的时候从来没有遇到过的。

    另外吐槽一下 Ruby-China 真的……不知道有多少人的耐心是 7 天,反正我这三天,每天十几个小时的折腾这些报错已经耗尽了耐心,放弃了。

    第 1 条附言  ·  2020-11-11 13:33:02 +08:00

    看了很多评论是批评我不懂前端让rails背锅的,不懂前端我承认,让rails背锅我不认同。这些问题是我按照rails教科书实践产生的,而不是我上来自学js、webpack遇到的问题。既然是rails6集成了这些,就是学rails的过程遇到的绕不开的问题,为什么不能归结到rails呢?难道学rails之前还要先精通js、webpack么?感觉这个大佬说的有道理:

    @reus 十年前接触过一下,当时前端也没有这些东西,都是服务器端输出 html 完事 后来就是前后端分离的时代了,其他框架就专注于做 api 服务器了 rails 不是,它既要坚持服务端渲染,又要拥抱现代 js 生态,于是就把 webpack 这类 js 工具链引入了 rails 里面 这是个绝对的败笔,js 生态是相当不成熟的,是相当混乱的,即使是 webpack 这类基础工具,版本之间根本没有兼容性可言 于是就出现楼主这样的遭遇了 现在的大势就是,后端就做后端,前端就做前端,前后端通吃的 web 开发,已经是移动互联网成为主流前的老古董了 确实不值一学

    第 2 条附言  ·  2020-11-12 11:12:36 +08:00
    没想到引来这么多围观,很感谢大家的热心指教或冷嘲热讽。我确实很菜,和语言没关系,也不是要引战。科班毕业数年颠沛流离、浪迹南北,前两年有了对象方才幡然醒悟。目前也只会写点 go 勉力维持温饱的样子,没什么能力,只想在技术上有所精进,到了被淘汰的那天还能单枪匹马、以此谋生。

    昨天灰心了一天,今天按照 @046569 大佬的步骤尝试继续出错,可能是我胡乱执行命令把本地环境污染的乱七八糟了:

    https://imgur.com/lHJ20P2

    https://imgur.com/Np95aLl

    然后今天我试着在我的阿里云上安装操作,现在已经可以了,下一步配置一下 vscode 远程开发应该可以继续学习了。

    https://imgur.com/a/UKwrwON

    感谢 @jasl 、 @qiumaoyuan 、 @chloerei 等各位大佬的指点和鼓励。
    166 条回复    2021-08-05 16:12:51 +08:00
    1  2  
    lululau
        101
    lululau  
       2020-11-12 09:04:32 +08:00 via iPhone
    看镐头书,先学语言吧,rails 看官网指南就可以了,写得很明白

    最近怎么这么多“我学不会 xx,我不行,xx 不行,要是没有 xx 就好了”的帖子
    firebroo
        102
    firebroo  
       2020-11-12 09:07:22 +08:00 via Android
    学 docker 还要会 Linux,fu*k,腊鸡 docker
    alexskywin
        103
    alexskywin  
       2020-11-12 09:10:21 +08:00
    知道亚索么,玩得好叫亚索,玩不好叫托儿索
    blackboom
        104
    blackboom  
       2020-11-12 09:33:30 +08:00 via Android
    Ruby 或许值得学习,但是 Rails 可能不是很值,首先与题主表达的一致,Rails 的曲线很高,Rails 与前端结合很好,有一些新的支持或者特性或者思想,但是上手时需要花费大量精力。
    richardwong
        105
    richardwong  
       2020-11-12 09:38:07 +08:00
    api mode 吧。别集成 webpack 那一套了。前端是另一种玩法
    zhuangzhuang1988
        106
    zhuangzhuang1988  
       2020-11-12 09:40:52 +08:00
    @Andor_Chen rails 作者的书都不行么
    Ixizi
        107
    Ixizi  
       2020-11-12 09:49:37 +08:00
    隔壁 java 更搞的头疼
    Starkwang0131
        108
    Starkwang0131  
       2020-11-12 10:46:57 +08:00
    你贴的报错都是 webpack 的报错…… 和 RoR 有什么关系……
    debuggerx
        109
    debuggerx  
       2020-11-12 10:54:12 +08:00   ❤️ 1
    典型的后端瞧不起前端思维,没救,下一个
    Bluecoda
        110
    Bluecoda  
       2020-11-12 11:42:43 +08:00   ❤️ 1
    以前 rails 不支持 webpack,一大堆人喷来喷去,现在做了个 webpacker 去支持,还是有一堆人喷来喷去,难做啊
    你不用 webpack 可以 new project 的时候禁用掉嘛,webpack 这个东西和 rails 没有太大关系,这个是 JS 届的东西,只是这几年 JS 发展得很怪异,需要各种奇怪的工具才能打包编译,锅还是不要甩给 rails 吧,你用什么语言,只要需要用到大量 js 的,都绕不开 webpack 。不单单 rails,phoneix,php 等都一样。
    gamesover
        111
    gamesover  
       2020-11-12 14:16:59 +08:00
    @Bluecoda 以前 js 就是小儿科一样的东西,干不了什么大事

    现在 js 可不得了,各种框架都出来了,完全可以挑大梁,不但要统一前后端+手机端,而且还要统一桌面 app

    前端 spa,后端 nodejs,js 可以一肩挑,实在太复杂了
    Vegetable
        112
    Vegetable  
       2020-11-12 14:21:16 +08:00   ❤️ 1
    高级黑啊,一个工程师搞一个框架用了 30 个小时还没跑起来 Demo,第一个困难就是 Webpack,我真服了这都是什么妖魔鬼怪啊。
    oatw
        113
    oatw  
       2020-11-12 16:34:33 +08:00
    锅是网络的锅。

    至于接纳 webpack 的考量,社区和 dhh 也有不同的看法。有兴趣的话可以看这个 pull request 下的讨论,挺长但是挺有意思。

    https://github.com/rails/rails/pull/33079
    geekzhu
        114
    geekzhu  
       2020-11-12 16:50:08 +08:00
    webpack 真的是麻烦,前端的生态赶快再进化进化吧
    huacnlee
        115
    huacnlee  
       2020-11-12 19:04:35 +08:00
    @est 没有 Ruby 语言特性的支持,ActiveSupport 也实现不了哪些牛逼的特性。

    比如 1.times, 1.weeks.ago 或者 nil.blank? 因为 Ruby 里面什么都是对象,所以基于对象扩展功能可以做很多事情。
    chloerei
        116
    chloerei  
       2020-11-12 19:26:29 +08:00   ❤️ 1
    关于 Ruby China 新手期不能发帖的问题,新手期的初衷是让新手先尝试自己解决问题,不要急于伸手。7 天应该是太长了,现在已经调整为 1 天,有关 Ruby 的问题欢迎到 Ruby China 交流。
    est
        117
    est  
       2020-11-12 19:28:46 +08:00   ❤️ 1
    @huacnlee 是,但是问题是,靠第三方包的大力补药,就会逐渐造成每次安装环境需要额外安装的依赖 ,然后久而久之就形成了 webpack 配置不通过导致 LZ 那种怒气。。。。。依赖越多,新手入门的门槛就越高。

    同样的道理也落在 Lisp 身上 The Lisp Curse http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

    简单的说,就是 Lisp 太强大了,以至于人人都会发明一个 面向对象的体系,这样就导致了每个项目面向对象体系都是有细微差别的。造成项目之间无法兼容,新手入门也会被遍地的轮子给吓尿劝退。。。。。。

    一门语言本身的能力固然很重要,生态系统是否健康也很重要啊。
    est
        118
    est  
       2020-11-12 19:33:52 +08:00   ❤️ 1
    语言过于强大,那么反而可能是一个诅咒。

    Ruby 语言的问题就是 Rails 太耀眼了。功高震主。当年 Python 也有这样的诅咒,那就是 Zope Project 。有句话怎么说来着,Where Zope Leads, Python Follows

    https://dirtsimple.org/2007/01/where-zope-leads-python-follows.html

    python 的腾飞就是 Guido 从 Zope 离职,进入其他领域开始。

    你真的去看一下 Zope 环境配置开发和那套理念哲学,能劝退市面上 99%的 python 初学者。必须整合不同业务的需求,然后核心功能和标准库要成为整个生态系统的主心骨,才能健康成长。
    huacnlee
        119
    huacnlee  
       2020-11-12 19:38:34 +08:00   ❤️ 1
    楼主你试试:

    ```bash
    $ rails new foo --minimal
    ```

    这个模式仅包含 Rails 经典的部分:

    ```rb
    require "rails"
    # Pick the frameworks you want:
    require "active_model/railtie"
    # require "active_job/railtie"
    require "active_record/railtie"
    # require "active_storage/engine"
    require "action_controller/railtie"
    # require "action_mailer/railtie"
    # require "action_mailbox/engine"
    # require "action_text/engine"
    require "action_view/railtie"
    # require "action_cable/engine"
    require "sprockets/railtie"
    require "rails/test_unit/railtie"
    ```
    voya
        120
    voya  
       2020-11-12 21:21:00 +08:00
    定位问题是程序员基本能力,问题都找不到,怀疑素养
    nonduality
        121
    nonduality  
       2020-11-12 22:56:45 +08:00
    #118 确实,ruby 除了 RoR 和 homebrew,想不出还有哪些出名的应用,是不是还有 saltstack?

    窃以为,Python 尽管被很多人鄙视不够高端,但它在科学计算、大数据、金融分析、人工智能与机器学习、web 开发、运维都有两把刷子,学了怎样都不会成屠龙术。
    jasl
        122
    jasl  
       2020-11-13 00:36:42 +08:00   ❤️ 2
    @nonduality
    RoR 只是框架,如果基于互联网流量来排名站点分析技术栈的话,比如一个数据源 https://trends.builtwith.com/framework 可以看到,Rails 排第四(前三 PHP 、ASP.Net 、Java )

    基于 RoR 的目前采用率比较高的几个开源项目:
    GitLab 私有代码托管,采用率很高,也帮助国内相当多的代码托管服务项目完成冷启动
    Redmine 十多年历史的老牌任务管理工具,在中大型企业仍然广泛使用
    Discourse 论坛系统,https://discuss.python.org/ Python 的官方论坛也是用他搭建的
    另外,国内团队发起的貔貅交易所项目,也是世界上唯一一个开源数字币交易所项目,特别是 16-18 年,帮助很多团队实现财务自由...

    Ruby 曾经在自动化领域也并不输 Python,比如 Vagrant 、Puppet,曾经很多 Python 项目也使用 Capistrano 来部署,现在因为 Go bin 分发优势和容器化的大趋势在这个领域衰落了

    Ruby 在 iOS 开发领域是统治性的,CocoaPods 、Fastlane 是肛需,前者虽然苹果用 Swift Package 来追赶,但是在可用性上仍旧与他有很大差距

    Ruby 有一个异步任务工具(和 Py 的 Celery 用途相同)叫做 Sidekiq,看看他官网的客户 https://sidekiq.org 这个作者曾经透露他通过这个工具做到年入百万美金

    此外,安全领域 Ruby 也有重量级工具 https://www.metasploit.com/

    “科学计算、大数据、金融分析、人工智能与机器学习” Ruby 不是特别有名,但由于这些场景对于 Python 而言也是封装 C++ 库,所以其实 Ruby 都有对应的 Gem,尽管采用率比 Python 低很多

    总结下来,Ruby 确实不如 Python 流行或者知名度高,但其实在很多领域都默默运行着。
    est
        123
    est  
       2020-11-13 01:13:11 +08:00 via Android
    @jasl 比 web 流行程度,youtube instagram pinterest dropbox reddit 都是 python 写的。。ruby 写的最大的可能就 github shopify 了吧。而且 github 当年解决不了代码高亮问题长期外挂 pygments

    redmine 流行的年代,hg 也是 py 写的,还有 trac 。门当户对把,哈哈。

    自动部署,saltstack ansible 至今还苟延残喘。。。

    科学计算不是 c++库的问题,而是矩阵的高维数组内存结构能不能兼容直接传指针,这里 cpython 做了很多年的兼容 numpy array 工作,其他语言不是想有马上就有的。甚至为 numpy 专门引入了一个 @ 计算符号。

    最后我觉得 py 最大的不公平竞争优势就是 apt yum 等系统工具也是 py 写的所以很多 os 自带了 py 。ruby 装环境就麻烦了。比如楼主这种遇到的
    jasl
        124
    jasl  
       2020-11-13 01:52:53 +08:00
    @est

    “比 web 流行程度,youtube instagram pinterest dropbox reddit 都是 python 写的。。ruby 写的最大的可能就 github shopify 了吧。而且 github 当年解决不了代码高亮问题长期外挂 pygments”

    我上一条回复的恰好是流行程度,从那个数据源看,Top 10k 的时候,Rails 的占比到了 19%,这是流行度,你提的网站都很厉害这没有错,但他们是典型,而不能证明 Python 的流行度。

    “redmine 流行的年代,hg 也是 py 写的,还有 trac 。门当户对把,哈哈。”

    我不知道你这句想表达什么,通过提到 Python 的项目来贬低 Redmine ?这驴唇不对马嘴吧?我指出 Redmine 在很多中型企业中使用是事实。

    “科学计算不是 c++库的问题,而是矩阵的高维数组内存结构能不能兼容直接传指针,这里 cpython 做了很多年的兼容 numpy array 工作,其他语言不是想有马上就有的。甚至为 numpy 专门引入了一个 @ 计算符号。”

    科学计算的主要算法都是用 C++ 而不是 Python 实现我觉得这个说法应该没有问题的?那么 Python 或者说 numpy 是封装这些库并没有什么问题吧?引入 @ 计算符号这不是在讲 Python 本身的表达能力不足所以要在语言上打补丁么?
    Ruby 这边有 https://github.com/SciRuby 一直在开发着,我这方面没什么接触,但未曾听说需要为 Ruby 语言打什么补丁来弥补特定场景的表达能力。
    顺带,由于 MRI 在 2.6 引入了 JIT,我这边有认识的做科研的朋友在一些运算规模有限的场景下,只用 JIT 加速 Ruby 代码就足够进行科学运算了。

    Python 流行比 Ruby 早很多,并且 Python 很早在校园争得了一个份额,这是他最不公平的优势,看了楼上大多数评论,楼主是卡在前端相关的部分,而不是准备 Ruby 环境上
    coool
        125
    coool  
    OP
       2020-11-13 09:29:03 +08:00
    @chloerei 多谢大佬,以后去请教
    est
        126
    est  
       2020-11-13 11:58:36 +08:00
    > Top 10k 的时候,Rails 的占比到了 19%,这是流行度,你提的网站都很厉害这没有错,但他们是典型,而不能证明 Python 的流行度。

    我用你给的网站 builtwith 看了一下,top 10k 的网站似乎没有一个是用 python 写的?是我看花眼了?你能解释这个统计的合理性吗?如果不能解释,那么这个流行度的论据是不是就站不住脚?

    > 通过提到 Python 的项目来贬低 Redmine ?这驴唇不对马嘴吧?我指出 Redmine 在很多中型企业中使用是事实。

    Redmine 在很多企业用我承认,但是 trac hg 也有很多在企业里用。这个也是事实吧。你提到「 Ruby 曾经在自动化领域也并不输 Python,比如 Vagrant 、Puppet 」这又是不是贬低 python 呢?

    其他的不明白你想表达什么,Ruby 也能做很多科学计算?这个换成其他语言也做科学计算呢。其实我想表达的意思就是,Python 有一个特点是核心开发敢于去接纳很多语言之外的生态需求。虽然 @ 这种计算符号如你所说,是弥补语言的不足,但是只要弥补了,就避免了遍地开花的第三方包来干这个事情,大家入门的门槛就非常统一,一定程度上避免了初学者的选择困难和尴尬。Ruby 说得难听点,是 Rails 成就了它,也是 Rails 困死了它。

    我知道你想反驳 Ruby 明明也可以做其他很多事啊。但问题是其他很多事,不一定非得 Ruby 来做。这就是为什么楼主这帖子标题说「不值一学」是有其合理性的。
    jasl
        127
    jasl  
       2020-11-13 17:41:35 +08:00
    @est 你点回复 at 我嘛...

    > 我用你给的网站 builtwith 看了一下,top 10k 的网站似乎没有一个是用 python 写的?是我看花眼了?你能解释这个统计的合理性吗?如果不能解释,那么这个流行度的论据是不是就站不住脚?

    右上角有搜索功能,可以搜 Python
    换一个数据源 https://www.similartech.com/categories/framework Python 上榜了,把 Python 的技术栈( Django 单独算了)都加起来,总量还是没有 Rails 大
    SimilarTech 是很权威的营销数据服务提供商了,当然你也可以拿出你自己的数据源来。

    > Redmine 在很多企业用我承认,但是 trac hg 也有很多在企业里用。这个也是事实吧。你提到「 Ruby 曾经在自动化领域也并不输 Python,比如 Vagrant 、Puppet 」这又是不是贬低 python 呢?

    我不知道其他人会不会把 “不输” 当成贬低,至少从我对中文的理解,我没有这个意思,Python 在这个领域很强,但是 Ruby 也有自己拿的出手且广泛使用的工具。
    另外,我谈论 Redmine 很多人用,是不是跟 trac hg 有没有被很多人用没有关系呢?这就有点我说城门楼子,你说 xxxx 了对吧?

    > 其他的不明白你想表达什么,Ruby 也能做很多科学计算?

    我觉得从中文的角度,我原帖已经回答过这个问题了 “Ruby 这边有 SciRuby 一直在开发着”
    我再多解释一句:这个项目是对标 numpy,而且 Ruby 协会在支持这个项目的发展,在我的理解里,功能基本上对标了 numpy

    > 其实我想表达的意思就是,Python 有一个特点是核心开发敢于去接纳很多语言之外的生态需求。虽然 @ 这种计算符号如你所说,是弥补语言的不足,但是只要弥补了,就避免了遍地开花的第三方包来干这个事情,大家入门的门槛就非常统一,一定程度上避免了初学者的选择困难和尴尬。

    我没看出来 “接纳很多语言之外的生态需求”,你谈到 numpy 增加了 @ 计算符号,如果真的是接纳,为什么不引入到 CPython 去呢? numpy 也还是第三方包呀(他不是 Python 官方组织管理的对吧?)

    SciRuby 只是一个 Ruby 的 Gem,他不需要修改 MRI 解释器,甚至可以兼容其他的 Ruby 实现,你的这句 ”敢于去接纳很多语言之外的生态需求“ 更适合形容 Ruby

    > Ruby 说得难听点,是 Rails 成就了它,也是 Rails 困死了它。

    我还是不知道这个结论你怎么得出的,首先你的这些观点就推不出这个结论,其次,我之前的回复介绍了 Ruby 在其他领域的一些成果。

    > 我知道你想反驳 Ruby 明明也可以做其他很多事啊。但问题是其他很多事,不一定非得 Ruby 来做。这就是为什么楼主这帖子标题说「不值一学」是有其合理性的。

    “但问题是其他很多事,不一定非得 Ruby 来做。” 这句话讲成 “但问题是其他很多事,不一定非得 Python 来做。” 一样通顺啊,这句话在很多语言上都正确,以至于他简直就是一句废话。
    est
        128
    est  
       2020-11-13 18:20:42 +08:00
    @jasl

    > 换一个数据源 https://www.similartech.com/categories/framework Python 上榜了,把 Python 的技术栈( Django 单独算了)都加起来,总量还是没有 Rails 大

    根据这个网站的数据,Enyo 才是最大的赢家啊。。。233333 原谅我的无知。。和笑点。。哈哈哈。。。。。

    > 你谈到 numpy 增加了 @ 计算符号,如果真的是接纳,为什么不引入到 CPython 去呢?

    https://docs.python.org/3/whatsnew/3.5.html
    PEP 465, a new matrix multiplication operator: a @ b.

    > 这句话讲成 “但问题是其他很多事,不一定非得 Python 来做。” 一样通顺啊

    不通顺。很多事不一定非得 python 来做,但是如果很多事用一种语言去做,python 很合适。
    est
        129
    est  
       2020-11-13 18:23:12 +08:00
    similartech 还统计了,流行程度在 Django CakePHP 之间的建站 framework 是 Visual Studio 。。 牛批。。。

    然后 1,060 个人次还是网站用了 web2py ?骗谁呢这是。。。
    est
        130
    est  
       2020-11-13 18:37:41 +08:00
    既然说道了某个框架或者语言的流行程度,我觉得 @jasl 给的这两个网站统计看起来明显有问题。我述说我自己觉得还可信的数据源吧

    第一个是 stackoverflow 的用户统计
    https://insights.stackoverflow.com/survey/2020#most-popular-technologies

    按填表的人次算,Ruby 的流行程度,在 Kotlin 和汇编之间。

    JetBrains 的统计
    https://www.jetbrains.com/lp/devecosystem-2020/

    也是按填表的人次算,Ruby 的流行程度,在 Swift 和 Rust 之间


    Github 的统计
    https://octoverse.github.com/#top-languages-over-time

    Ruby 是一路下跌快出表了。。。。


    根据上面三个统计,我觉得从程序员的角度来说,Ruby 值得学吗?小值。但是要排在 Kotlin, Typescript, Swfit, Rust 之后。
    jasl
        131
    jasl  
       2020-11-13 18:54:06 +08:00
    @est

    > 根据这个网站的数据,Enyo 才是最大的赢家啊。。。233333 原谅我的无知。。和笑点。。哈哈哈。。。。。

    这没什么可笑的,他统计的维度是互联网流量,从请求响应的角度来分析采用量,虽然有误差(有一些网站会隐藏自己的特征),但是他是能反映出趋势的。

    你确实无知了,这种数据对于目标客户来说是非常权威的,这些数据会影响服务提供商如何制定销售策略(当然技术栈分析是更值钱数据的副产品)

    > PEP 465, a new matrix multiplication operator: a @ b.

    我回答的你的 “甚至为 numpy 专门引入了一个 @ 计算符号。” Ruby 一直就不需要为特殊场景引入语法

    > 不通顺。很多事不一定非得 python 来做,但是如果很多事用一种语言去做,python 很合适。

    "很多事不一定非得 python 来做,但是如果很多事用一种语言去做,python 很合适。" 换成 Ruby,还是很合适,这句话依旧百搭的就像废话。

    > 既然说道了某个框架或者语言的流行程度,我觉得 @jasl 给的这两个网站统计看起来明显有问题。我述说我自己觉得还可信的数据源吧

    我的原话 “RoR 只是框架,如果基于互联网流量来排名站点分析技术栈的话”,注意,我谈到的是 RoR (这个帖子的主题也是 RoR )、”基于互联网流量来排名站点分析技术栈“ ,我讨论的是 Rails 在当下互联网上的流行程度,维度是采用率。

    我更直接的定义,场景:Web 建站,维度:当下的采用率,根据我提供的数据源,Ruby 的排名非常靠前,且超过 Python 。

    你提出的数据源 ”stackoverflow 的用户统计“、“JetBrains 的统计”、“Github 的统计”,他们都不能证明我给出的问题把?
    jasl
        132
    jasl  
       2020-11-13 19:18:49 +08:00
    @est 朋友...你这一路嘻嘻哈哈,结果说的话驴唇不对马嘴,你这也太不能打了吧... 哎...
    est
        133
    est  
       2020-11-14 01:28:50 +08:00
    @jasl 你说是就是呗。。。。。你这漏洞百出的观点我都懒得反驳了。这么久了你都还没忘记这贴,还故意回复一个放个嘲讽啊。。。。。

    祝福你相信你自己的话一辈子吧。。。
    jasl
        134
    jasl  
       2020-11-14 02:23:48 +08:00
    @est
    才几个小时都没过夜的我怎么能忘呢,所以是你当初是怂了才不敢 at 我么?

    你不是懒得,是逻辑和统计学姿势水平不够,看不懂我在说什么 :)

    我真的相信我说的话,虽然我现在也不算是一个全职的 Ruby 开发者了,但学习 Ruby 让我看清楚了很多技术的本质。
    而且,中国和世界 Ruby 圈子的人都是我接触过最牛逼的一群人!

    我祝愿你的是再经过多年的锻炼,你能看懂我都在说什么~
    est
        135
    est  
       2020-11-14 11:05:18 +08:00 via Android
    @jasl 是是是,你们是最牛逼的。你早这样说我也就不用打这么多字回复了
    jasl
        136
    jasl  
       2020-11-14 11:10:46 +08:00
    @est 啊,不是你先嘻嘻哈哈的吗?我这通篇也没批评 Python 什么啊,怎么就你最跳呢,你要来对线麻烦专业点好吧
    jasl
        137
    jasl  
       2020-11-14 11:11:54 +08:00
    @est 你看看是你打字多,还是我打字多?

    “你早这样说我也就不用打这么多字回复了” 别抢我话,哈哈哈哈哈哈。。。。。
    est
        138
    est  
       2020-11-14 12:34:32 +08:00 via Android
    @jasl 是是是,你打字最多,你全楼最聪明,你对线最专业,你哈哈哈起来比我潇洒,我抢你话影响了你高大上的形象。行了吧?还需要我怎么夸你?
    jasl
        139
    jasl  
       2020-11-14 15:54:06 +08:00
    @est 胡言乱语了是吧。

    我前边对其他人的回复通篇没批评 Python,“不输” 这也没什么不好的意思,
    你就一定要跳出来证明 Python 比 Ruby 强,跳得比别的语言极端使用者都快,提出来的论点和论据,too simple,sometimes naive 。

    我不需要你花式夸我,只求你能学会好好说话,并且,心胸稍微的那么宽广一些,识唔识的?
    amosasas
        140
    amosasas  
       2020-11-14 20:30:49 +08:00 via Android
    看了你那个问题 大部分问题都是网络的问题 如果你是 linux 或者 macos 又能正常科学上网的话其实是没啥问题的……
    amosasas
        141
    amosasas  
       2020-11-14 20:31:39 +08:00 via Android
    @amosasas 不过你要是 windows 又不肯装 docker 那 rails 的创始人 DHH 自己都搞不定。。。
    est
        142
    est  
       2020-11-15 08:58:05 +08:00 via Android
    @jasl 是是是,你秉公评论,你心胸宽广,对了吧?
    zhuangzhuang1988
        143
    zhuangzhuang1988  
       2020-11-15 09:10:35 +08:00 via Android
    @amosasas 看错误报告,ruby 内核,应该是在苹果下的
    allgy
        144
    allgy  
       2020-11-15 11:20:26 +08:00
    你这标题就得罪很多人了
    jasl
        145
    jasl  
       2020-11-15 20:26:34 +08:00
    @est
    是你没有秉公评论,你心胸狭窄
    jasl
        146
    jasl  
       2020-11-15 20:56:25 +08:00
    @est

    Python 的流行度高,流行的应用场景多,这是事实,不需要你再科普了,
    但这跟 Ruby 没有关系,语言的流行度跟语言本身的特点也没关系。

    我前面回了一些 Ruby 和 Rails 的优点,仍然值得学习的部分,你推广 Python 没什么问题,但没必要靠踩别人来进行呀,何况你绕来绕去还是说 Python 用的人多,工具多,Ruby 少,所以 Ruby 不值得学,这有什么营养?

    没有比 Python 流行的东西多了,什么搞大数据的 Scala,搞后端的 Go,新兴的 Rust,按你的逻辑,都没 Python 热度高,场景覆盖不如 Python,都不值得学了?

    何况谈 Rails 谈的是 Web 开发领域,你反驳的论据讲的是 Python 整体,要真对比,你也对比 Django 、Flask 等等 Web 场景的 Python 库啊,你这对比物就错了能得出什么结果来?

    你要对比当然可以,你讲讲看某些 Python 的库比 Ruby 的在某个具体功能点上有什么先进的设计,
    比如我谈到了 Rails 的 `responder`,我谈到了这样做的好处。
    我前边也介绍了路由层是通过设计一门小型定制语言来解决,过去在研究这里设计的时候,我把市面上几乎所有流行的各个语言的 Web 框架这部分的源码都读过了,进行了对比,最终成果是实现了一套主要用于 iOS 的 Universal links 的匹配的路由库 https://ruby-china.org/topics/29133

    你如果愿意好好探讨技术问题,我随时欢迎交流,否则,你就自己好好思考下怎么就事论事,少嘴碎就行了。
    est
        147
    est  
       2020-11-15 23:41:35 +08:00
    @jasl 你这么尬吹 Ruby,Matz 知道嘛?
    jasl
        148
    jasl  
       2020-11-16 00:50:23 +08:00
    @est 他知道,他来中国是我邀请的。

    尬吹我可不承认,你除了阴阳怪气,到底有没有点干货?
    jasl
        149
    jasl  
       2020-11-16 01:04:49 +08:00
    @est

    说实在的,你现在这形象,挺给 Python 开发者群体抹黑的,不搭理你吧,你这嗡嗡叫个不停烦人,搭理你吧,半天憋不出个屁来,我真是为你着急呢

    真的,朋友,我虽然有的是时间陪你玩,但你也别老上蹿下跳了
    拿点干货出来,拿出你的真本事,让我看看你是不是个够格的 Pythoner 。
    jasl
        150
    jasl  
       2020-11-16 01:20:38 +08:00
    @est
    想了想算了,估计这么激将你也还是说不出点所以然来。

    你要是不回复了,后边这些无营养的扯皮就算翻篇儿
    est
        151
    est  
       2020-11-16 01:25:15 +08:00 via Android
    @jasl 你这话说的,我黑 python 又不是第一天了。

    你这么尬吹 Rails,就不怕 DHH 受到惊吓?
    jasl
        152
    jasl  
       2020-11-16 01:41:34 +08:00
    @est 不怕

    我主要想看看你的真本事,我说了,我有的是时间遛你
    est
        153
    est  
       2020-11-16 10:20:54 +08:00
    @jasl 哈哈。我有没有真本事管你什么事啊。就你那个眼神。。。。。
    jasl
        154
    jasl  
       2020-11-16 13:32:32 +08:00
    @est
    呦,合着还真是个屁都憋不出来啊,
    让你嘴里吐象牙也是难为你了,罢啦吧啦
    jasl
        155
    jasl  
       2020-11-16 13:34:13 +08:00
    @est
    没本事就别逞强了,瞎逼逼半天,猪鼻子插大葱
    est
        156
    est  
       2020-11-16 13:50:14 +08:00
    @jasl 我不拉给你,你怎么吃啊。不为难不为难。
    jasl
        157
    jasl  
       2020-11-16 13:53:56 +08:00
    @est
    你屁都出不来还拉呢,你有这能力么朋友

    你说说你,没本事就算了,说话都越来越软,是太监?前天的你挺肛的啊,怎么搞的?
    est
        158
    est  
       2020-11-16 13:55:46 +08:00
    @jasl 嗯。你说啥就是啥呗。2333
    jasl
        159
    jasl  
       2020-11-16 13:58:01 +08:00
    @est

    我说啥是啥?所以你还真是太监咯,勇于承认,还是要鼓励你的!
    coool
        160
    coool  
    OP
       2020-11-16 14:58:28 +08:00   ❤️ 1
    @jasl @est 额,两位大佬……很抱歉由于我的帖子引发了你们的一些观点冲突,这不是我的本意。Python 和 Ruby 都是很优秀的语言,无论谁在哪个语言下驾轻就熟都是令人尊敬的,我知道你们也不是要在语言优劣上一争高下,只是可能一些交流有点误会,还请克制啊,不要因为一些观点的异同给自己和彼此带来不快的情绪。
    jasl
        161
    jasl  
       2020-11-16 15:13:46 +08:00
    @coool 嗯嗯,抱歉
    Foxalone
        162
    Foxalone  
       2020-12-08 09:04:17 +08:00
    刚开始学我连换个数据库都不会,环境也是折腾了一天(饭都没吃),经常游离在百度和 Google 。其实有很多东西都文档上面就写的蛮清楚的,仔细翻翻也是有解决办法的。因为我能力也不是很好,没有在 ruby china 上面提过问题。因为我想到问题在 ruby china 上面找不到,基本来说这个问题或许很初级,事实证明很多次也是自己能找到方法去解决。
    coool
        163
    coool  
    OP
       2020-12-08 09:39:14 +08:00
    @Foxalone 确实是这样,不过现在在云上搭了环境用的还挺舒服。不想把精力放到折腾这些报错了,一时半会找不到解决方法。
    drackzy
        164
    drackzy  
       2021-04-11 04:25:06 +08:00
    国内还是写 go 吧,ruby 薪资没有市场薪资太低,当个业余爱好还行。
    ericguo
        165
    ericguo  
       2021-04-29 08:43:36 +08:00
    https://ruby-china.org/topics/41201 楼主的真香贴,所以这贴其实应该是算反转了?
    redvoilin
        166
    redvoilin  
       2021-08-05 16:12:51 +08:00
    rails 真的是很好用的 web 框架
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4728 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:49 · PVG 17:49 · LAX 01:49 · JFK 04:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.