• 马太效应 开发者越多的语言库越多,应用越广,生态更加健壮,会不断与开发者少的语言拉开差距

    就和开发 Web 为啥不用 Rails 一样,开发科学计算的为啥不用这么好用的 Python 套件呢? 1 楼这种屁话真是无力吐槽了..


    自认有能力或想要锻炼自己的话,与其花时间争论不如尽量多为社区做些贡献,开发些自己擅长领域的 gem 或项目

    • 我在做的一个 Research 友好的 Ruby 以太坊实现,目前通过了官方测试 Ciri Ethereum
    • 在上面项目中用到的非常惊艳的 Reactor IO 编程框架,非常精巧,几乎都是库作者这哥们一个人实现的 Async
  • Ctrl-P 文件之间跳转

  • 那你肯定没有考虑不破坏之前 require 用法的情况

  • 我是觉得想要真的摸索 ruby off rails,这个功能对 ruby 还是很重要的(当然实现方式不一定这样

    rails 优秀的框架设计和约定优于配置哲学,其实在帮程序员很好的管理了代码的复杂性,一切代码井井有条,自有 DHH 帮你安排

    当你 off rails 时可能发现 ruby 对于管理复杂性没有很好的通用方案,rust python 甚至 nodejs 都可以仅仅 "import" 需要的东西而忽略其它实现相关的代码,当你引入一个大项目时非常有帮助

    另外 ruby 目前的设计是用 TOPLEVEL BINDING,但这不代表 rubyist 都要做原教旨主义者,这个提议的很大一部分就是在考虑如何同时兼容两种用法(想一想连 nodejs都能引入模块),平衡各种设计让用户选择才是 ruby 的魅力所在

  • 还有这个提案是不破坏旧的 require 功能的,对使用 require 导入的用户完全透明

    控制命名空间是包的使用者来决定,只想写脚本可以完全和之前一样 require

  • 你说的好像是只有 python 有 import 一样,应该反过来说 import 是个很好的控制复杂度的功能,除 ruby 外的主流语言中几乎都支持

  • 没有,ruby 的字典默认是有序的(但是没规范...看到 SO 上有回答者说甚至没有对这个顺序测试)

    所以想要可靠可以选择用外部的 https://www.rubydoc.info/docs/rails/4.1.7/ActiveSupport/OrderedHash

  • 这就看你认为程序员的价值是体现在人肉 SQL 翻译还是思考逻辑上了

  • 如何实现实时的并行处理 at 2018年05月03日

    重复执行的话应该是因为你写错了。

    一般 Web 后端用 Sidekiq 比较好,原因是你可以看到哪些任务报错了,哪些执行了,而且不会因为你退出 Web server 而意外中断请求,导致不知道请求发没发出去。

    简单点的话用 concurrent-ruby 也不错,直接用 Executor 就挺方便。 Call API 时 IO 是由 linux 内核帮你处理的,你只是调用 linux 内核接口,告诉它需要发送一些包,然后内核帮你处理,程序在这里等着处理完成。所以并行在这里是不存在的,应该叫并发,就是你告诉 linux 内核要发两个请求,然后同时等这两个完成

    最简单的方法就是

    t1= Thread.new{buy..}
    t2 = Thread.new{sell..}
    t1.join;t2.join
    

    但还是推荐 concurrent-ruby 实现的 ExecutorPool, 可以控制线程数量

    作死一点的话你也可以试试最近的高科技并发库 https://github.com/socketry/lightio

  • 感觉还是找适合自己的环境吧,这样才能专心做事,否则浪费时光

非正常人类