在新闻这两个Haskell的Web框架最近有耶索德 (0.8)和快 (0.4)。
这是相当明显,耶索德目前支持超过捕捉更多的功能。 但是,我不能忍受耶索德用于其HTML,CSS和Javascript的语法。
所以,我想了解我会丢失,如果我用快去代替。 举例来说,看起来并不像数据库的支持是存在的。 怎么样的会议? 其他特性?
在新闻这两个Haskell的Web框架最近有耶索德 (0.8)和快 (0.4)。
这是相当明显,耶索德目前支持超过捕捉更多的功能。 但是,我不能忍受耶索德用于其HTML,CSS和Javascript的语法。
所以,我想了解我会丢失,如果我用快去代替。 举例来说,看起来并不像数据库的支持是存在的。 怎么样的会议? 其他特性?
披露:我是快的领先开发商之一。
首先,我们来谈谈快是什么。 眼下捕捉小组负责维护hackage五个不同的项目有:卡芯,卡扣服务器,抢劫,捕捉,和xmlhtml。 卡服务器是公开的卡扣核心定义的API上的Web服务器。 抢劫是一个模板系统。 xmlhtml是一个XML / HTML解析,并通过抢劫使用的渲染库。 快照是一个总括项目,胶合它们放在一起,并提供强大的snaplets API,使得web应用程序可组合和模块化。
耶索德有对hackage项目的主机。 大多数(全部?)他们都列在耶索德类别 。 一些著名的人都耶索德芯,经编,持久和村庄。
哈斯克尔Web开发的现实是,它是更异或选择比似乎察觉。 在一般的项目都非常松耦合和相当互换。 你可以建立一个网站,使用经(在耶索德球队的Web服务器),抢劫(对齐球队的模板系统),和酸状态(Happstack项目的持久性系统)。 你也可以使用卡扣服务器村庄或持续性。
这就是说,这两个项目肯定有一定的差异。 我可以客观地指出,最大的区别是,耶索德项目通常大量使用模板哈斯克尔和quasiquoting创建简洁的DSL,而捕捉项目坚持有利于组合性建筑组合子库。 只是我能想到的将朝着捕捉主观偏见的任何其他方面的差异。 这两个项目命名的伞包显然会做出具体的选择对于上述组件,这些选择将在项目的依赖有所体现。 但仍然并不意味着你不能在不同的东西拉,并使用它。
快确实有会议和认证 ,接口几个数据库,和漂亮的表单处理( 这里和这里 ),使用消化,函子 ,包括用于任意嵌套动态调整大小的列表预包装的支持。 这些只是一些的可插拔snaplets的不断发展的生态 。 这些会议和认证snaplets都写在一个方式,是后端无关。 因此,与胶水代码量小,你应该能够与几乎任何持久化系统,您能想到的使用它。 今后,将捕捉经常坚持此策略成为可能。
在大多数情况下我想捕捉的VS耶索德VS Happstack的选择功能少的问题,更是个人喜好之一。 每当有人说,框架的一个不具有的东西,另一个人有,大部分时间它会很容易通过导入必要的包从另一个框架中缺失的功能来拉。
编辑:对于三大哈斯克尔Web框架的详细比较看看我最近的博客文章 。 在使用一些普遍的规律粗糙的(但可能更有用)的对比,看看我的Haskell的Web框架比较矩阵
公平的警告:我耶索德的首席开发人员。
我不知道你不喜欢的JavaScript语法:它是纯JavaScript和变量代换。 至于CSS耶索德现在有卢修斯,让您也可以使用纯CSS。 对于HTML,你可以很容易地使用你想要的任何其他库,包括海斯特(什么快使用)。 这就是说,它是一个有点滑稽的事情在CSS / JavaScript语法跳过耶索德,当捕捉甚至没有为它的语法。 你肯定欢迎他们的只是静态文件的解决方案。
耶索德带有认证/授权,类型安全的URL,窗口小部件,电子邮件和所有的地方(面包屑,消息最终目的地)一堆小东西无缝支持。 另外,耶索德具有相当丰富的插件等许多事情上的意见和降价,以及几个大的现实世界的代码库包在为例子来接。 如果任何这些都是吸引你,你可能要检查你的选择支持他们。
给小村庄,你可能最终会喜欢它试戴。 在表面层次的负反应的情况并不少见。 然而,实际上使用的村庄没有人抱怨。
另外,为什么不使用Happstack? 仅仅因为他们是不是“新闻”并不意味着他们没有一个坚实的框架。
你可能指的是旧版本的耶索德。 最新版本耶索德对HTML,JavaScript和CSS语法平原。
耶索德的模板库村庄的HTML语法是纯HTML完全打开和关闭标签和所有正常的HTML属性。 是的,你可以省略结束标记和使用快捷键id和class属性。 但你不必。 你可以继续写纯HTML。
不仅如此,但HTML模板可以驻留在不同的文件中,就像在管理单元的模板库大盗。
Java脚本的模板(朱利)是纯JavaScript文件,也居住在单独的文件。
CSS的模板确实有不同的语法,但最近耶索德的版本现在也提供了普通的CSS语法。
如果你有抢劫走,你不会有类型安全的URL。
在海斯特HTML模板从硬盘读取每次。 耶索德编译所有模板直接到可执行文件。 没有文件从硬盘读取。 因此,反应的速度要快得多。 你可以看到自己的基准。
在耶索德您可以创建一个很好的配合部件。 捕捉完全不与小部件处理。 你将不得不推出自己的。