我学过几种语言,但现在我想选择一种。我最喜欢的语言是Haskell,它像解释性语言,但却是编译型语言。
Haskell有什么优缺点?
我学过几种语言,但现在我想选择一种。我最喜欢的语言是Haskell,它像解释性语言,但却是编译型语言。
Haskell有什么优缺点?
这只是我目前脑海中的一些想法。
优点
学习Haskell会改变你对编程的思考方式(人们学会Haskell后,通常会在其他语言中编写类似 Haskell 的代码)。
类型安全性高于主流语言(空指针异常,有吗?)
类型推断意味着你不必担心类型问题,除非绝对必要。
它生成高性能可执行文件。
使用par
和pseq
组合器可以轻松实现并行化。
交互式环境(hugs/ghci)允许你快速原型设计。
有一个友好的支持社区(IRC、邮件列表等)。
语法非常表达力强和简洁。
GHC 正在积极地开发和改进,包括支持在GPU上执行代码,以获得更高性能的计算。
QuickCheck > 单元测试
缺点
学习 Haskell 会毁掉你对其他语言的看法。
它非常复杂,不容易入门。
很容易编写一些令人费解的程序,甚至几天后自己也无法理解。
使用Haskell开发某些项目可能会有一些不利因素,但学习Haskell是没有任何不利因素的。虽然需要花费时间,但是它是值得的。你将成为更好的程序员。
除了它的美感之外,我还想强调Haskell的一些实用功能:
如果可以选择,我完全推荐学习Haskell而不是任何其他语言。在现有的语言中,它似乎在安全性、抽象程度和实用性之间做出了最优的权衡。
3) Haskell无法用于Android或iPhone开发,而Scala可以用于Android开发,并且与Java兼容,这是一个巨大的优势。
4) 我认为一些库缺乏支持维护和改进的人员。我在Haskell中进行语义Web编程,但库的支持还需加强。
Haskell不适合所有项目。如果您需要每毫秒的性能,C/C++可能仍然是最佳选择。因此,Haskell适用于许多项目,但并非所有项目。
Haskell在技术上比其他编程语言具有许多优势。但是,出于政治原因可能会反对使用Haskell。例如,Scala更好地集成了现有的Java基础设施。
但现在我想选择一种语言
...
然后我想知道这种强大语言的优缺点(只是为了做出正确的选择)。
如果您允许我概括,选择一种语言确实取决于您要解决的问题。没有一种选择适用于所有情况,而且总会有某种语言比您现在使用的更好。
不过请继续学习新的语言,因为这样的经历会提高您判断哪种语言适合项目的能力。