【问题标题】:What are the main benefits of using Haskell for web developing? [closed]使用 Haskell 进行 Web 开发的主要好处是什么? [关闭]
【发布时间】:2012-04-09 13:22:50
【问题描述】:

我正在学习 Haskell for great good

我很喜欢 OOP 和各种类型的系统。我使用 Java 开发 webapps(Java EE、spring、Hibernate、struts 1.x),现在我经常使用 Python(pylons、django、sqlalchemy、pymongo)和 Javascript。我的个人生产力有了很大的提高:轻量级的方法、鸭式打字、很棒的迭代器、作为一等公民的功能、简单的语法和配置、pipdistribute 等快速工具(以及更多)帮助了我很多.

但我提高工作效率的第一个原因是Python 语言本身

使用 Haskell 进行 Web 开发的主要好处是什么? 例如,它的类型推断如何真正改进我的 Web 应用程序?到目前为止,我注意到当你用类型签名装饰你的函数时,你正在为你的程序添加很多语义。我希望所有这些努力都会以某种方式回来,以节省许多代码行并使其正常运行。我真的很喜欢类型和数据之间的明显区别,我开始了解它们是如何工作的,但我想要一些东西:P

不要误会我的意思,我刚开始学习 Haskell,所以 Maybe 我错过了一些很棒的东西,但我真的很想了解它的范例以及何时值得使用它。

【问题讨论】:

  • 你可能不了解它的工作原理的三分之二(我当然不明白),但是 Yesod Web 框架使用类型非常好。
  • @delnan Yesod(和this fragment)看起来是一个好的开始,谢谢。
  • 这可能与如何获得好处没有直接关系,但这是使用 Haskell 进行 web 应用程序开发的一个示例 - @987654323 @
  • 我有点困惑:类型推断意味着通常(90+% 的时间)您不需要编写类型签名。但是您说您“想要一些东西”,因为您必须将类型签名附加到所有内容(您不需要这样做)。
  • 也许我比你更困惑@amindfv :) 好吧,类型推断使我免于编写类型签名,但这是一个 internal (即语言本身)益处。但是外部的好处呢? @delnan 指出 Yesod,它可以保护我们的 webapp 免受恶意字符串(URL 类型的字符串不能有空格或“

标签: haskell


【解决方案1】:

大多数 Web 应用程序的目标是 statelesshandle concurrency well。扩展也很重要(Google SEO reasons, and user experience)。

Haskell 很好地处理了这些问题(尽管恕我直言,以更具学术性且可能不那么“人性化”的直观方式)。

之所以这么说是因为网络应用程序开发人员(与 node.js 相比)完全缺乏,而且传统的网络应用程序开发人员更专注于 OOP 思维框架,这可能相当困难。

我在尝试使用它时遇到了一些问题,您可以在下面的问题中看到:

How do I do automatic data serialization of data objects?

Handling incremental Data Modeling Changes in Functional Programming

【讨论】:

  • 顺便说一句,我并不是要放下 Haskell。我认为它是一种相当强大的语言。我只是无法全神贯注地让它为我谋生的 Web 应用程序开发提供生产力。
  • 我想你会在 2015 年底发现它的体验大不相同。Haskell 现在有一些非常强大的后端和前端 Web 框架(GHCJS 编译为 JavaScript)。如果您正在寻找具有类型安全性的 web-dev,Haskell 正在获得关注。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
相关资源
最近更新 更多