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

Web applications 用于web应用程序开发的Lisp或Haskell,web-applications,haskell,common-lisp,Web Applications,Haskell,Common Lisp,我正在考虑学习函数式编程语言。我决定构建一个中型web应用程序 我把选择范围缩小到Haskell和Common Lisp Web应用程序需要连接到一些关系数据库(MySQL、Firebird或Postgres),并且必须在Linux上运行。显然,它必须与web服务器软件进行良好的接口。我没有函数语言的经验,我的专业是C,C++,PHP和JavaScript。 此用途首选哪一种?为什么 我不确定这个问题是否应该标记为主观?这并不是“哪种语言更好”,而是“哪种语言更适合这个特定任务”Lisp在Web

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

我把选择范围缩小到Haskell和Common Lisp

Web应用程序需要连接到一些关系数据库(MySQL、Firebird或Postgres),并且必须在Linux上运行。显然,它必须与web服务器软件进行良好的接口。我没有函数语言的经验,我的专业是C,C++,PHP和JavaScript。 此用途首选哪一种?为什么


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

Lisp在Web上有着很好的历史。Yahoo Stores最初是用Lisp编写的。

如果你的首要考虑是在功能技术和web功能之间找到一个平衡点,我会发现很难击败F#,因为它包含了所有.NET web内容。这是一个庞大的预烘焙,生产硬化代码在您的处置。你可以用它来做MVC——如果你不想在windows上运行,也不想拥有开创性的精神(考虑到这个问题,我想你会这么做),那么在Mono上尝试用F#做MVC真的是太棒了!我喜欢看那组合


我不懂Lisp——但与Haskell相比,F#会更高效,因为它可以用函数式语言编写web应用程序。。。我喜欢哈斯凯尔,但在我看来,为了你想做的事,你必须把F作为第一选择。

在你的位置上,我选择哈斯凯尔有三个原因:

  • 相当容易学
  • ,它提供了许多库,这些库可以做很多您想要做的事情,包括,它为服务器应用程序提供了许多功能
  • 伟大的社区。他们的IRC频道很棒

    • “Common Lisp”并不是真正的函数式语言。它具有函数式语言的元素,但同样包括对命令式和面向对象编程的支持。程序通常是用这些混合体编写的

      一般来说,公共Lisp和Haskell是非常不同的语言

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


      使用数据库在Linux上用Common Lisp编写web应用程序是可能的,而且已经完成了。

      每一种值得称道的语言都为web应用程序提供了大量的库。Haskell也不例外,该语言有100多个web库

      库的可用性应该是您的主要考虑因素(而不是对高级别并发性的需求)

      您可以在此处找到这些内容的Haskell库:

      • 网络框架:
      • (我推荐hdbc)
      • 模板引擎:
      • JSON处理:
      • 网络服务器:
      • -身份验证/会话/编码/
      所有设备都可以安装在以下位置:


      $cabal install$foo

      别忘了把F#作为一个选项。Javascript很适合作为函数式语言使用。如果你看看米兰·巴布什科夫的个人资料,很明显他更喜欢Linux作为平台,这使得F#完全是一个无用的建议。@camcann:F#在Mono()上运行得非常好,甚至可以在XSP.NET()上运行。@Lucas-Jones:它可以运行,是的,但我不确定是否“非常好”。我多次听到了解F#和/或OCaml的人对Mono表示严重保留,我的印象是,与.NET相比,Mono一开始的性能很差。当然,这总比什么都没有好,但在我看来,如果你希望主要使用Linux,那么F#似乎是一个糟糕的选择。关于“相当容易学”:Haskell确实是一种非常小且非常常规的语言(与Java或C++相比),但我并不认为它简单。惰性评估和概念纯度可能不是Haskell特有的,但在能够在Haskell中做任何事情之前,您仍然需要学习如何使用它们。我会比SealedSun更进一步,并说:对于大多数人来说,Haskell通常太难完成事情。别傻了。对于来自主流命令式语言的人来说,Haskell可能非常不熟悉,但是学习足够多的知识来学习并做一些事情并不是什么大不了的事。要真正开始学习可能需要更长的时间,但如果有人真的想学习,这一点都不难。在Haskell习惯性地工作涉及到如此多的语法糖分,我真的很惊讶没有糖尿病。做任何IO至少需要对单子、懒散和咖喱有一个粗略的了解。即使是从“主流命令式语言”(Lisper在这里,顺便说一句,这似乎是你这些天职业上能得到的最远离主流的语言)中也可以了解到这一点,但这里唯一完全荒谬的事情是你声称“这一点都不难”重新思考许多人对Mono上的编程.F#的基本假设是可行的,但并没有它所能做到的那么好。说“Fix tail call support for F#”正在进行中。你不说为什么F#更好,你坚持它。当我研究它时,很多F#东西似乎有点粗糙--.NET集成在纸面上听起来不错,但试图在函数语言中使用非常非函数库通常是一种受虐行为。如果我需要用F#编写一个非平凡的应用程序,我可能会考虑移植现有的OCaml库,而不是使用.NET的东西。。。在这一点上,我想知道为什么不直接使用OCaml并使用它呢?我认为.NET框架中已经存在的大量预烘焙的面向web的代码是研究F#的一个重要因素。我应该更清楚,我没有使用LISP的经验(但如果LISP用web功能扼杀了它,我会非常惊讶)。作为对唐的回应:这就是为什么F#值得一看(我没说它更好)。