Haskell是否足够成熟,适用于Web应用程序?

时间:2009-08-10 05:35:32

标签: haskell functional-programming

  

似乎在Haskell for web上没有做太多工作。人们使用它   作为功​​能性的学习工具   编程不仅仅是业务。具有   任何开发和部署网络的人   应用于Haskell,但是?请,   分享链接。

     

下一次会议评论可能会改变我的想法   并计划其他可能的事情   在商业方面也很有用。   指导,指导,   请!

我打算学习一门函数式编程语言,然后选择了Haskell。

Haskell“煮熟”到足以开发商业网络应用程序吗?或者,我是否应该开始寻找其他选项,甚至可能是函数式编程语言之外的其他选项,如果值得的话?

学习语言的投入非常昂贵,我想确保Haskell真的值得学习。

指导,请。

10 个答案:

答案 0 :(得分:11)

拉​​米兹,

您的标题提及“商业网络应用程序”,而您的问题却没有,所以我假设最终目标是使用函数式编程语言编写Web应用程序。

如果是这种情况,我建议您从yaws开始,这是一个用功能并发编程语言Erlang编写的快速HTTP服务器。您将学习将类似PHP的脚本扭曲成功能性思维模式的起伏,然后您可以将其转化为使用Haskell的工作。

如果您真的想坚持使用Haskell,并且语言的选择比一般功能方法更重要,那么请查看Real World Haskell书。这将使您了解语言如何解决您在学习语言时可能感兴趣的常见问题。

答案 1 :(得分:8)

当您学习新语言时,所需的投资会减少。即使您从Haskell开始,您获得的功能知识也将帮助您学习其他语言。

这也取决于你来自哪种语言。如果你来自Java我会建议scala,如果你来自.net我建议f#

答案 2 :(得分:6)

我认为Haskell是我的秘密武器 - 这个工具让我比其他开发人员更有优势,并经常在我的咨询工作中找到使用它的地方。

例如,DSL现在在定制软件中非常热门。 Haskell非常适合这类工作。

如果这不是你想到的那种“商业”环境,那么某种多语言项目可能是最好的(我认为好的UI是Haskell的弱点之一)。我现在有一个项目,Haskell在后端运行作为快速的cgi“服务”(我倾向于不太喜欢'框架',并且真的不喜欢现在可用于Haskell的服务),服务由Flex(Adobe Flash Platform)前端提供。该项目的最终意图将作为财务规划援助以商业方式*出售给中小型企业。

我要说的最后一点是,虽然我个人 Haskell,但我认为它的FP一般提供最大的直接好处。为此,如果您发现自己正在关注另一种FP语言,例如F#,Scala或Erlang,并认为它会更合适,那么我说用它来运行。

*实际上,该项目将在内部使用至少一年,然后开始向外界开始营销。

答案 3 :(得分:6)

如果您正在谈论 Web应用程序开发,那么您选择的语言就像围绕它编写的用于Web开发的库一样成熟。

答案 4 :(得分:2)

如果您要进行网页开发,我建议您深入了解JavaScript的内部。
Javascript是一种动态的,弱类型的,基于原型的语言,具有一流的功能 它具有许多功能性,您可以使用V8,TraceMonkey或Windows Shell(但它运行JScr​​ipt)在非浏览器环境中运行它。

答案 5 :(得分:2)

有一个相当丰富的网络相关图书馆和少数商业用户的生态系统。我工作的公司使用Haskell作为安全市场中的Web应用程序。

查看图书馆,了解所提供的内容:http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

答案 6 :(得分:2)

有许多用于开发网站的Haskell库(Happstack,Kibro,Hack,Salvia,Turbinado);问题是很难知道哪些是好的。其中许多图书馆都很年轻。我希望随着这些库的成熟,这种情况在接下来的几年里会变得更好,并且随着这些库的记录变得更好而变得更加清晰。

与此同时,我会说Haskell是编写Web应用程序的好语言,前提是您愿意花一些时间了解这些库,并在可能达不到您的需求时对其进行改进。

答案 7 :(得分:2)

查看金晶的代码:http://github.com/nfjinjing/loli/tree/master是的,它仍然是实验性的。但它会让你睁开眼睛。

Haskell本身就足够了。不信任Java的人在需要保护政府数据时会使用Haskell(见http://www.galois.com)。

但是Haskell的Web框架还有待改进。所以它可能不是目前最富有成效的环境。但是......如果你掌握了它,那将是无尽的力量:)

答案 8 :(得分:2)

如果从长远和短期来看,Haskell是最好的选择。它有许多不同的Web开发,但它们有很多共性,例如所有框架都使用applicative functor进行表单创建,并且库是可以互换的。因此,如果你学习一个框架,很容易改变到其他框架,因为基本上数据库接口,渲染等技术/库在大多数时候是相同的。另一方面,即使您决定改用其他语言,也要从Haskell学到很多东西。你会受益于它。最后,Haskell值得学习。

作为对未来的投资,但也许不是为了做一些非常关键的事情,我认为程序框架(基于继续或不基于)是Web开发的未来,因为它们不那么复杂,而且代码是更加可维护和直观。例如: ocsigen (ocaml),海滨(smalltalk), coccoon (javascript),以及我自己的: mflow 用Haskell编写。

您是否曾在推文中看过三页Web应用程序? https://twitter.com/AGoCorona/status/329648864082677760

答案 9 :(得分:0)

现在,毫无疑问,haskell可用于商业网站开发,如左图所示 正在使用网络框架janrain的公司snap

值得注意的是,haskell(haskell 1.0)的第一个版本于1990年发布!看看当时的哈斯凯尔是怎样的,现在人们可以肯定地说有很多“烹饪”。