• 可以但没必要,我之前用 opal 做过 ruby 版的 react,模板用的 erb 然后编译成 vdom,然而并不会好用,而且现在前端工具链这么多,用 ruby 每个库还要写 wrapper,更新了还要经常改

  • 看起来是 bug,可以考虑提交 issue 和 pr

  • bar 和 person 是一对一关联?

  • 取决于用的 io 有没有 non-blocking 的实现,理论上是有的,所以可以减少。不过这个减少不是由于等了 2s,如果 io 可以不阻塞,那么等待 io 的线程就会自动 pass,不需要手动 sleep

  • 表单啊,就光是做表单,用 react+api 也比用 rails form 方便,重用方便,样式管理方便,逻辑也看得更清楚。后端渲染唯一的优势就是 seo,但是 next 可以全自动处理 ssr

    后台啊,那就比文章型的更难了,我还以为说文章型的比前后分离方便,后台要是用到 sjr,那也是必然不可能比纯前端写方便的

  • 前端直接部署到 zeit now(现在叫 vercel)就行,只需要管 api 服务器

  • 花一天时间体验一下 next js,就会改观的,erb 的开发体验已经跟不上这个时代了

  • 别转移话题,py js 确实不是面向对象语言,分类叫 multi paradigm,按 Vector#magnitude 的例子,就是会暴露内部实现

  • def self.log m
      method = method(m)
      define_method(m){|*args|
        p "输入是:#{args}"
        method.call(*args)
      }
    end
    
    log def foo x, y
      x + y
    end
    
    result = foo(2,3)
    print(result)
    

    有啥区别?

  • 另外这个帖子里什么函数是不是第一公民的讨论几乎全部都没有在点子上,一个最简单的例子:

    class Vector
      def magnitude
      end
    end
    
    Vector.new.magnitude
    

    在外部看来 magnitude 必然是方法调用,而在 js 和 py 里面,方法必然是 magnitude(),属性必然是 magnitude,调用方式已经暴露内部结构了。ruby 是纯粹的面向对象语言,师承 smalltalk,不要拿什么 py js 之类的虾兵蟹将来比。