bar*_*ley 52
目前我脑子里只有几个想法.
优点
学习Haskell将改变您对编程的看法.(人们经常发现,一旦他们学习了Haskell,他们就会在其他语言中编写类似Haskell的代码.)
类型安全是比主流语言高几英里(空指针异常,任何人?)
类型推断意味着您不必担心类型,除非绝对必要.
它产生高性能的可执行文件.
并行性par
与pseq
组合者几乎是微不足道的
交互式环境(hugs/ghci)允许您快速构建想法
有一个很好的支持社区(IRC,邮件列表等)
非常富有表现力和简洁的语法
GHC正在积极开发和改进,包括支持GPU上的代码执行,以实现高性能计算的额外优势
QuickCheck >单元测试
缺点
学习Haskell会破坏所有其他语言.
进入是非常复杂的
非常容易编写无人理解的神秘程序,几天后甚至不是你自己
小智 13
我还要强调一下Haskell的一些实用功能,尽管它只是美丽:
如果你有选择,我完全建议学习Haskell而不是任何其他语言.它似乎在现有语言之间进行了安全性,抽象性和实用性之间的最佳权衡.
mrs*_*eve 10
优点:
1)Haskell是最先进的编程语言.我做了一些研究,haskell似乎是唯一真正的最先进的编程语言.还有其他像agda和coq,但这些都是实验性的,缺乏现实世界编程的功能(例如图书馆支持).最好投资一种最先进的编程语言.
(注意:我没有争论为什么haskell是最先进的,而且几乎任何其他编程语言都没有.这需要花费太多时间.所以这只是我的主观意见.同样适用于其他陈述.)
(注意:我后面提到的一些功能可能是GHC特定的,但我仍然只写haskell)
2)Haskell程序员通常非常聪明.库的代码质量非常高.此外,stackoverflow的提示写得非常好,并且也处于高水平(感谢Don Stewart这样的人,仅举一例).我认为改进编程的最佳方法之一是学习其他人的代码.Haskell在这方面非常出色.
3)moste OOP语言中的命令式编程已经过时.通常的副作用编程方式也是如此.但是很少有编程语言用于没有副作用的声明性编程.例如Scala,F#,Ocaml和Erlang不是副作用.(但是,在OOP语言的学术领域也有工作,显然没有过时.考虑Alan Kay过去的工作,或者例如Smalltalk领域当前最先进的学术工作.)
4)Haskell支持使用抽象数学概念进行编程(例如monad,functor,combinators,GADT等).我认为这可以提高编程效率.
5)Haskell类型系统非常灵活,支持类型推断.这大大减少了可能的错误.在编译时检查类型系统.类型系统有助于作为文档.
6)首先在haskell中实现一些最先进的概念(如QuickCheck库).有很多有趣的扩展.
7)haskell语法设计得很好.没有不必要的括号.代码紧凑,模式匹配和列表理解的synatax非常好.像Knuth这样的人提倡文化编程,而haskell/GHC则支持它.
8)haskell支持懒惰评估
缺点:
1)学习起来非常困难,掌握haskell需要数小时,数月.没有适当的计算机科学背景就更难了.像Monads和Functors这样的东西很难理解,特别是没有数学背景.所以大多数程序员可能没有能力或意志去学习haskell.Haskell并不"简单".如何使用支持所有高级功能的简单语言是不可能的.
2)IDE选项不如其他编程语言的选项好.我使用leksah作为我的IDE,它非常好,但它与Eclipse的java开发无法比较.
3)Haskell不能用于android或Iphone开发.相比之下,Scala可以用于Android开发,它也兼容java,这是一个巨大的优势.
4)我认为一些图书馆缺乏支持维护和改进它们的人.我在haskell中进行语义Web编程,并且库支持可能更好.
Haskell不适合所有项目.如果你需要每毫秒的性能,C/C++仍然可能是最好的选择.因此,haskell适用于许多项目,但不是全部.
Haskell与其他编程语言相比具有许多技术优势.但是,可能存在反对使用haskell的政治原因.例如,Scala可以更好地与现有的Java基础架构集成.
归档时间: |
|
查看次数: |
11661 次 |
最近记录: |