瞎扯淡 如果科学计算生态圈当时使用 Ruby 作为主流而不是 Python,Ruby 能胜任么?

rubyfan1 · 2018年09月01日 · 最后由 oatw 回复于 2019年06月27日 · 2830 次阅读

科学计算生态圈选择了 Python 作为主流语言,并飞速发展。 然而我们看到也有一些基于 Ruby 的科学计算框架,然而并没有发展壮大。 到底是因为没有选择 Ruby,还是因为天生不适合做科学计算?

不能 python 的优点就是数学化,缺点是枯燥。 ruby 的优点是有趣,缺点是不纯粹。

从理论上 python 能干的 ruby 都能干,但是从心理学上,python 更适合用来搞科学计算。不同的语言风格会影响人的心理。

能胜任。 事实上一个领域流行某种语言和语言特性关系不大,主要看该领域最初的开拓者擅长或者喜欢哪种语言,开拓者定了方向,后续的人都只是跟进。

这个和科学里面的单起源说和多起源说有一定的关系,越小的领域,单起源性可能越高,金融,科学计算都算,越大的领域,多起源的可能性就越高,例如 web,app。

虽然现在没有太多机会,但是随着科学计算的领域扩大和门槛的降低,将来还是有一定可能的,前提是 ruby 要能够维持住足够多的开发者,尤其是顶端开发者。

  • Ruby 之神通敵不過 Python 之業力,
  • Python 之業力敵不過 Javascript 之願力
  • 众人法术皆敵不過 C/C++ 之神通

起步吃亏在交流(日语)不通,领域优势确立后就很难追赶。

绝大部分开发者只会用别人做好的工具,少部分能参与贡献,极少数程序员能创造一个工具甚至一个生态,这极少数人对语言的推广作用是巨大的。远的有 Rails,近的有 Kimurai

如果有意为 Ruby 做贡献,尝试从使用者往贡献者进阶,动动手。在 Ruby China 看到好几次抱怨 Ruby 的科学计算工具不完善,但没见一个提过自己有贡献的,这怎么追?

应该说更胜任, 真心没多少差别, 从语言基础设施上, Ruby 还有有理数/复数字面量, 明显更方便啊

Rei 回复

太难了,科学计算类门槛太高。很多都是用 C 写,我也想贡献,有心无力

luikore 回复

有 slicing 等操作?

luoyou 回复

哲学!

rubyfan1 回复

两个点竖着和横着有啥区别?

作为一个前 python 使用者,表示还是喜欢 ruby 的 implicit

luikore 回复

什么意思?

rubyfan1 回复

应该说的是 arr[m:n] 和 arr[m..n] 的区别

nouse 回复

谢谢

我想知道, PHP 能不能胜任?

Ruby 更合适。更接近人类语言。计算的发展目标之一。

xiaox 回复

这个问题好

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

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


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

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

主要是第三方包的支持,相比 Python 而言,gem 包少,更新不及时,造轮子人少,用的人当然也少了。Python 的空格让人崩溃,感觉 Ruby 写起来心里舒服,但没相应的第三方支持,不可能全部从头造。Julia 做科学就算好,结合了很多东西,但第三方包还是不像 Python 那么及时更新而且完整,最合适的就只有 Python 了。Go 也碰到第三方包不兼容的情况。

xiaox 回复

这个问题好 +1

需要 登录 后方可回复, 如果你还没有账号请 注册新账号