Haskell Web 开发的生态系统是什么?[已结束]

What is the ecosystem for Haskell web development? [closed]

提问人:deceze 提问时间:8/10/2009 最后编辑:Communitydeceze 更新时间:6/16/2015 访问量:19315

问:

受到这个问题和最近一件事的启发,我想知道 Haskell Web 开发涉及什么。

  • 是否有任何 Haskell Web 框架或模板引擎?
  • 托管 Haskell 站点将如何工作,是否有合适的 Web 服务器?
  • Haskell对于Web开发中通常使用的基于快速开发和原型制作的工作流程来说是否太复杂了?
  • 是否有现有 Haskell Web 应用程序的示例?
哈斯克尔

评论

11赞 Tom Lokhorst 8/10/2009
我不认为这是重复的。另一个问题是询问如何学习 Haskell 作为第一语言进行 Web 开发。这个问题专门询问存在哪些框架、模板引擎和 Web 服务器。也许这个问题可以重新设计?
2赞 deceze 8/10/2009
这就是为什么我把它从另一个问题中分支出来的原因,这个问题主要是获得答案和学习其他语言的建议。这个问题有不同的侧重点,特别是 Haskell 生态系统中以 Web 为中心的项目。:-/
7赞 CiscoIPPhone 8/10/2009
我希望这个打开
0赞 Tom Lokhorst 8/10/2009
@deceze 我稍微修改了你的问题。具体来说,我使标题与另一个问题更加不同。
0赞 deceze 8/10/2009
@Tom 谢谢!希望这能更好地区分它。

答:

18赞 Tom Lokhorst 8/10/2009 #1

首先,免责声明:我从未做过任何Haskell的Web开发,所以我不是凭经验说话的。

如果你看一下 Hackage 上的 Web 类别,就会发现有很多与 Web 相关的软件包。

我认为大多数Haskell的Web应用程序都运行在自定义服务器上(可能使用Apache或IIS的高级请求路由作为前端)。但是,也有一些 FastCGI 绑定。mod_proxy

最突出的 Haskell Web 服务器/框架/数据存储基础设施是 Happstack,它很有趣,原因有几个,最明显的是它将其所有状态存储在内存中并且不使用关系数据库。

另一个较新的 Web 服务器界面是 hack,除了 1 分钟的教程看起来很有趣之外,我对它知之甚少。

Haskell 中还有更多的 Web 服务器/框架,但这两个只是我所知道的。

7赞 Shaun 8/11/2009 #2

首先,该死的,如果那个“外遇”链接不是有史以来最有趣的事情之一!

现在,虽然我在另一个链接上发布了答案,但我认为 Haskell 网络土地上并没有发生太多事情。你有 Happstack,也许还有其他一些框架,它们似乎无处可去。然后你就有了FastCgi。

如果你像我一样,那么FastCgi可能足以满足你的大部分需求。我发现,大多数客户端并没有真正的规模问题(此外,它对 Ruby 的人来说已经足够好了,对吧)。

如果 FastCgi 不是您的速度......好吧,也许雅司病或升降机(分别为 Erlang 和 Scala)值得一看。

评论

0赞 Daniel 6/14/2019
Bone先生在这个问题上很努力。
9赞 Don Stewart 8/13/2009 #3
  • 是否有任何 Haskell Web 框架或模板引擎?

有许多 Web 框架。在 Web 类别中查找:http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

对于模板,HStringTemplate 似乎是品牌领导者: http://hackage.haskell.org/package/HStringTemplate

  • 托管 Haskell 站点将如何工作,是否有合适的 Web 服务器?

静态链接的二进制文件运行自己的 Web 服务器(例如 happstack-server 或其他 Haskell Web 服务器之一),Haskell 二进制文件与 Apache 通信,...几乎所有你能想到的组合。

  • Haskell对于Web开发中通常使用的基于快速开发和原型制作的工作流程来说是否太复杂了?

不。由于类型系统,您将获得更强大的保证,应用程序不会出现故障。

  • 是否有现有 Haskell Web 应用程序的示例?

hpaste 是 happstack 的简单演示。Tupil.com 整个业务都是Haskell的Web应用程序。 德意志银行去年在CUFP上发表了关于其内部Haskell网络框架(基于happstack)的演讲。

评论

0赞 Tom Lokhorst 8/13/2009
好吧,Tupil 还做了很多 iPhone 应用程序开发(在目标 C 中)。他们不只是做Haskell网络应用程序。
36赞 Phil 12/15/2009 #4

我在 Haskell 中完成了真正的生产 Web 应用程序。这是我使用的堆栈:

整个 Web 应用程序是一个单独的 haskell 程序,编译为本机代码 ghc。我编写了手动执行请求路由(和反向路由)的代码。

14赞 luntain 12/15/2009 #5

我使用 Happstack 为我们的本地 Intranet 创建了一个简单的 webapp/web服务。

  • 它将数据存储在内存中,并带有用于恢复的事务日志(Happstack的标准)。你不会在任何地方的代码中找到 SQL。
  • 没有模板。人们通常会用模板做什么,我在 Javascript 中做。只需获取 JSON 格式的数据,并将其放入 DOM 中即可。

只有 169 行 Haskell 代码,全部在 Main.hs 中,它们定义了服务器。剩下的是用于演示的 Javascript,以及一些用于测试的 Python。

它是开源的,你可以在GitHub上查看它,也许可以把它作为一个起点。

评论

1赞 Rayne 12/16/2009
第 82 行,你忘记了结束语。
10赞 luntain 12/17/2009
Haskell允许在标识符中使用引号。可悲的是,github 的语法突出显示落在了这一点上。