照片由Mehmet Ali Peker在Unsplash上拍摄
我肯定说过,这个的精确答案是Haskell。有了它,用少量的代码可以完成令人惊异的繁芜事情,但措辞本身确实很难节制。
我的评估是,如果你没有大学数学学习的至少辅修,那么对这门措辞的全面理解险些是不可能的。

在大学里,我主修信息技能,辅修数学,我知道几十种其他编程措辞,并且已经编程超过10年了。
只管如此,Haskell对我来说太难有效利用,由于在写每行新行之前,我必须花很多韶光思考。然而,我可以逐步阅读和理解其他人编写的代码。
如果我知道更多的数学,Haskell可能会更随意马虎学习。由于Haskell是一种如此繁芜的措辞,以是它的专家报酬很高。我真的不明白为什么任何公司会选择Haskell来做新项目,由于作者的人为水平会这么高。
我认为更易于掌握的编程措辞会产生更好的性价比/质量比,纵然您须要编写更多的代码来做同样的事情。
目前,Rust是一种许多人以为难以学习的措辞,但它仍旧很有希望。基本功能是,据我所知,这是唯一许可您利用共享内存区域的措辞,但编译器仍旧可以防止多线程代码中的数据竞赛缺点。
此外,这在不该用GC的情形下是可能的,因此完成的程序的性能与C和C++中的程序相称。
Java和其他所谓的托管措辞在性能方面与Rust/C/C++措辞不竞争,但它们之以是被利用,是由于程序员不必太在意内存管理(但纵然要得到相称好的性能,您仍旧须要非常关注它)。
此外,值得把稳的是,例如,Java的GC无法防止数据竞赛缺点,但代码的精确性是基于开拓职员的关心。
在Rust中,编译器不许可编写会导致数据竞赛缺点的代码。然而,这须要以略微不同的办法呈现某些传统算法,这可能会使利用该措辞变得困难——特殊是如果开拓职员以前已经拥有其他编程措辞的履历。
我个人预测了Rust的最佳未来,Rust是一种困难的措辞,可以产生出色的结果。它在困难和所得到的好处之间有相称好的妥协。将来也有可能有人想出一种Rust++(希望在现实中是一个更好的名称)措辞,该措辞在安全性和性能方面可以供应与Rust相同的东西,但更易于利用。
由于新编程措辞的开拓如此缓慢,这在未来10年内险些不会发生。在任何新创建的措辞之上启动更大的项目总是一个巨大的风险,由于该措辞可能会因缺少利用而去世亡。然后,一个人的项目将变成既运行项目,又单独掩护翻译。
目前,Rust不太可能消亡,由于许多大型组织已经利用它。例如,Meta(前身为Facebook)选择了这种措辞作为其官方措辞之一。除此之外,Meta只利用Hack(Facebook本身创建的PHP的亲戚)、C++和Python。
这便是为什么我建议每个人学习Rust措辞,纵然你现在在事情中不须要它。它利用的数据构造也可以在其他编程措辞中利用,因此学习它很有用,纵然您常日利用其他措辞编写代码。
我的编程历史始于Pascal、Symbolic Assembly、C和C++,但学习Eiffel和Perl措辞改变了我对新程序的想法。
也有一些学习Haskell措辞的考试测验,但没有那么多。我比Haskell更理解Rust,只管Rust大约更新了15年,而且我过去几年才学过它。
我仍旧认为自己是Rust的初学者,特殊是在利用线程之间共享数据时编写多线程代码时(拜会,例如,通报)。
Arc和Mutex类型开始站得住,但我仍旧疑惑与最佳数据构造比较,我利用它们太多了。
因此,在我看来,Rust对数据构造的大力强调是一个完备精确的模型,由于在设计任何新运用程序的软件架构时,选择精确的数据构造可能是最主要的决定。