用于Web应用程序开发的Lisp或Haskell

时间:2010-02-20 00:03:17

标签: web-applications haskell common-lisp

我正在考虑学习一种函数式编程语言。我决定构建一个中型Web应用程序。

我缩小了对Haskell和Common Lisp的选择范围。

Web应用程序需要与某些关系数据库(MySQL,Firebird或Postgres)连接,并且必须在Linux上运行。显然,它必须与Web服务器软件很好地连接。我没有使用函数式语言的经验,我的专业是C,C ++,PHP和JavaScript。

哪一种更适合这种用途?为什么?

我不确定这个问题是否应该标记为主观?它真的不是“哪种语言更好”,而是“哪种语言更适合这一特定任务”

5 个答案:

答案 0 :(得分:10)

每一种有价值的语言都为网络应用提供了大量的库。 Haskell也不例外,该语言有100多个Web库。

库的可用性应该是您的主要考虑因素(除了需要高水平的并发性)。

你可以在这里找到这个东西的Haskell库:

所有可以安装:

$ cabal install $ foo

答案 1 :(得分:6)

'Common Lisp'并不是一种真正的功能语言。它具有函数式语言的元素,但同样包括对命令式和面向对象编程的支持。程序通常是混合使用的。

通常,Common Lisp和Haskell是非常不同的语言。

如果你想学习高级函数式编程,那么Haskell会更合适。

使用数据库在Common Lisp中编写Web应用程序并在Linux上运行是可能的,并且已经完成。

答案 2 :(得分:5)

Lisp在网络上有着悠久的历史。 Yahoo Stores最初是用Lisp编写的。

答案 3 :(得分:5)

在你的位置上,我会选择Haskell有三个原因:

  • 相当容易学习
  • Hackage,它提供了许多可能会执行大量所需操作的库,包括HAppS,它为服务器应用程序提供了许多功能
  • 很棒的社区。他们的IRC频道很棒。

答案 4 :(得分:1)

如果你的主要考虑因素是在功能技术和网络功能之间找到一个最佳点,我会发现很难击败F#,因为它已经完成了所有的.NET网络内容。这是一个大量的预烘烤,生产强化代码随时为您服务。你可以用它来做MVC - 如果你不想在Windows上运行并且有一个开创性的精神(我认为你考虑过这个问题),那么在Mono上用F#尝试一个MVC就会真的出现!我看到那个组合!

我不知道Lisp - 但与Haskell相比,F#在使用功能语言编写的Web应用程序方面会更有效率...我喜欢Haskell,但是对于你想做的事你必须看作F#作为第一个选项,IMO。