受这个问题和最近的事情启发,我想知道Haskell Web开发涉及什么。
- 是否有Haskell Web框架或模板引擎?
- 托管Haskell网站将如何工作,是否有合适的Web服务器?
- 对于通常用于Web开发的常规快速开发和基于原型的工作流程,Haskell是否过于复杂?
- 是否有现有Haskell Web应用程序的示例?
Answers:
首先,免责声明:我从未做过Haskell Web开发,所以我不会凭经验说话。
如果您在Hackage上查看Web类别,则有很多与Web相关的软件包。
我认为大多数Haskell Web应用程序都在自定义服务器上运行(可能使用Apachemod_proxy
或IIS的Advanced Request Routing作为前端)。但是,也有一些FastCGI绑定。
Haskell最著名的webserver / framework / datastorage基础结构是Happstack,其有趣的原因有很多,最明显的是它将所有状态存储在内存中,并且不使用关系数据库。
另一个较新的Web服务器界面是hack,除了1分钟的教程看起来很有趣之外,我对其了解不多。
Haskell中还有更多的网络服务器/框架,但这两个只是我脑海中最清楚的部分。
我已经在Haskell中完成了实际的生产Web应用程序。这是我使用的堆栈:
整个Web应用程序是一个单独的haskell程序,已编译为本地代码ghc。我编写了代码来手动执行请求路由(和反向路由)。
有许多Web框架。在“ Web”类别中查找:http : //hackage.haskell.org/packages/archive/pkg-list.html#cat :web
对于模板,HStringTemplate似乎是品牌领导者:http ://hackage.haskell.org/package/HStringTemplate
运行自己的Web服务器(例如happstack-server或其他Haskell Web服务器之一)的静态链接的二进制文件,与Apache对话的Haskell二进制文件,...几乎可以想到的每种组合。
不会。由于类型系统,您将获得更强大的保证,以确保应用程序不会出现故障。
hpaste是happstack的简单演示。Tupil.com的整个业务是Haskell Web应用程序。德意志银行去年在CUFP上发表了有关其内部Haskell Web框架(基于happstack)的演讲。
首先,该死的链接是否不是有史以来最有趣的事情之一!
现在,虽然我在另一个链接上发布了答案,但是我认为Haskell网站上没有发生太多事情。您已经有了Happstack,也许还有其他一些似乎没有用的框架。然后,您有了FastCgi。
如果您喜欢我,那么FastCgi可能足以满足您的大多数需求。我发现,大多数客户并没有真正的规模问题(此外,它对Ruby人士来说足够好了,对)。
如果FastCgi不是您的速度...那么,也许偏航或升降(分别是Erlang和Scala)值得一看。