科学计算生态圈选择了 Python 作为主流语言,并飞速发展。 然而我们看到也有一些基于 Ruby 的科学计算框架,然而并没有发展壮大。 到底是因为没有选择 Ruby,还是因为天生不适合做科学计算?
不能 python 的优点就是数学化,缺点是枯燥。 ruby 的优点是有趣,缺点是不纯粹。
从理论上 python 能干的 ruby 都能干,但是从心理学上,python 更适合用来搞科学计算。不同的语言风格会影响人的心理。
能胜任。 事实上一个领域流行某种语言和语言特性关系不大,主要看该领域最初的开拓者擅长或者喜欢哪种语言,开拓者定了方向,后续的人都只是跟进。
这个和科学里面的单起源说和多起源说有一定的关系,越小的领域,单起源性可能越高,金融,科学计算都算,越大的领域,多起源的可能性就越高,例如 web,app。
虽然现在没有太多机会,但是随着科学计算的领域扩大和门槛的降低,将来还是有一定可能的,前提是 ruby 要能够维持住足够多的开发者,尤其是顶端开发者。
起步吃亏在交流(日语)不通,领域优势确立后就很难追赶。
绝大部分开发者只会用别人做好的工具,少部分能参与贡献,极少数程序员能创造一个工具甚至一个生态,这极少数人对语言的推广作用是巨大的。远的有 Rails,近的有 Kimurai。
如果有意为 Ruby 做贡献,尝试从使用者往贡献者进阶,动动手。在 Ruby China 看到好几次抱怨 Ruby 的科学计算工具不完善,但没见一个提过自己有贡献的,这怎么追?
马太效应 开发者越多的语言库越多,应用越广,生态更加健壮,会不断与开发者少的语言拉开差距
就和开发 Web 为啥不用 Rails 一样,开发科学计算的为啥不用这么好用的 Python 套件呢? 1 楼这种屁话真是无力吐槽了..
自认有能力或想要锻炼自己的话,与其花时间争论不如尽量多为社区做些贡献,开发些自己擅长领域的 gem 或项目
主要是第三方包的支持,相比 Python 而言,gem 包少,更新不及时,造轮子人少,用的人当然也少了。Python 的空格让人崩溃,感觉 Ruby 写起来心里舒服,但没相应的第三方支持,不可能全部从头造。Julia 做科学就算好,结合了很多东西,但第三方包还是不像 Python 那么及时更新而且完整,最合适的就只有 Python 了。Go 也碰到第三方包不兼容的情况。