我正在学习
Haskell
for great good.
我很喜欢OOP和各种类型的系统.我使用Java开发webapps(Java EE,spring,Hibernate,struts 1.x),现在我经常使用Python(pylons,django,sqlalchemy,pymongo)和Javascript.我的个人生产力有了很大的提高:轻量级方法,鸭子打字,很棒的迭代器,作为一等公民的功能,简单的语法和配置,像pip和分发这样的快速工具(以及更多)帮助了我很多.
但提高生产力的第一个原因是Python语言本身.
使用Haskell进行Web开发的主要好处是什么?
例如,它的类型推断如何真正改善我的网络应用程序?到目前为止,我注意到当你用它的类型签名装饰你的函数时,你会在你的程序中添加很多语义.我希望所有这些努力都能以某种方式回归,以保存许多代码行并使其发声.我真的很喜欢类型和数据之间的明显区别,我开始明白它们是如何工作的,但是我想要一些东西:P
不要误会我的意思,我刚刚开始研究Haskell所以也许我错过了一些真棒但我真的想要理解它的范例以及它何时值得使用它.
解决方法
大多数Web应用程序的目标是
stateless和
handle concurrency well.它对于扩展也很重要(
Google SEO reasons,and user experience).
Haskell处理这些问题相当好(虽然恕我直言更多的学术,也许更少“人性”直观的方式).
话虽如此,由于人们完全没有做网络应用程序开发(与node.js相比),而传统的网络应用程序开发人员更专注于OOP思维框架,这可能相当困难.
我在尝试使用它时遇到了一些问题,您可以在下面的问题中看到:
How do I do automatic data serialization of data objects?
Handling incremental Data Modeling Changes in Functional Programming