【问题标题】:state of web development using functional programming language使用函数式编程语言的 Web 开发状态
【发布时间】:2010-11-16 20:00:42
【问题描述】:

我正在考虑为我的 Web 开发宠物项目放弃 Ruby on Rails,并使用函数式编程语言(有或没有框架)。
并不是说 RoR 有什么问题,但我只是想学点别的东西,这似乎是学习函数式编程的好方法。
我知道几个框架(Scala 的 Lift 和 Smalltalk 的 Seaside),而且我知道还有与 Web 相关的 Haskell 库可用。最后,我想一切都可以从头开始编写。
我假设这些框架/库中将缺少大部分 RoR 高级功能,并且我预计必须处理更多低级问题,这将使开发过程变得更慢并且可能更复杂。
不过,这些选项之间必须有一条更简单的路径。
您能分享您的经验和建议吗?

谢谢。

【问题讨论】:

    标签: functional-programming


    【解决方案1】:

    在 haskell 中,您可以定义复杂的想法。这里有一些关于 haskell web 开发的想法:

    1) 如果您希望大部分代码已经编写和测试,请使用 HAppS。

    2) 如果您想在生成原始 html 后向页面添加一些功能丰富的内容,请使用 Parsec

    3) 创建你自己的 monad 来封装你在开发过程中可能遇到的所有重复

    4) 您还可以使用 hackage 上提供的一些 MANY 软件包来减少您认为在 ruby​​ 中“高级”的任务。 Ruby 没有柯里化 =D

    PS:无论谁提到保罗·格雷厄姆,他在每个人都只使用 C 的时候开发了他的网络应用程序。他们无法访问我们今天使用的 php、ror、java 和 .net。

    【讨论】:

    • -1 Parsec 用于“生成原始 html 后页面的功能丰富的内容”:不,这不是 Parsec 的目的。 “创建你自己的 monad 来封装你在开发过程中可能遇到的所有重复”太模糊了。事实上,整个答案太模糊了。
    【解决方案2】:

    我和编写 AntiWeb http://hoytech.com/antiweb/ 的人一起参加了一个 Lisp 用户组。 写 Let Over Lambda http://letoverlambda.com/ 的同一个人。至少可以说是聪明人。

    虽然我没有尝试过(我打算),但我认为它是一款优质产品。这个网站在上面运行http://public.youtranscript.com/

    【讨论】:

      【解决方案3】:

      号称世界上最快的 Web 服务器是用 Common Lisp 编写的。查看Teepeedee。它还有一个用于生成动态内容的 Lisp 框架。

      【讨论】:

        【解决方案4】:

        我忍不住想起了 Paul Grahams 关于他如何成功地创办了一家基于 Lisp 的 Web 开发公司的故事。原来是他的秘密武器;没有其他人这样做,而且他能够比其他人更快地推出新功能,从而领先竞争对手两步。

        所以,为了你的灵感,我给你:

        超越平均水平
        http://www.paulgraham.com/avg.html

        【讨论】:

        • ... 当然,这会产生 arc,这是一种带有 Web 框架的 Lisp 方言。一种很好的方言,但强制执行的 html 样式很快让我失望。
        • 如果你走 Lisp 路径,值得考虑使用带有 noir 框架的 Clojure - webnoir.org
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-23
        相关资源
        最近更新 更多