Lisp - 它对Web编程/应用程序(交互式)有用吗?红宝石的方式是? php的方式是什么?

时间:2011-04-30 10:44:27

标签: ruby common-lisp

Lisp是否适用于Web编程/应用程序(交互式),ruby和php的方式是什么?

需要考虑的事项是:

  • 易用性
  • 部署能力
  • 难度(特别是初学者编程)

(编辑) 在阅读Paul Graham's essay之后,我特别指的是Common Lisp。将是我的第一个编程语言。在这方面。这样做是否合适?

我听说Clojure的宏功能没有Common Lisp那么强大,这就是我为什么要学习Clojure的原因。它教授编程并且非常强大。

5 个答案:

答案 0 :(得分:11)

Lisp是一个语言家族,而不是一种语言。为了回答你的问题,是的,各种Lisp方言都存在Web框架,比如Common {@ UnCommon Web和PLT Racket(方言方言)也在他们的网站上有一个教程:

http://docs.racket-lang.org/continue/

但是,目前正在进行大量网络开发的一种Lisp方言是Clojure,因为它可以利用现有的Java库和基础设施。这是一个项目列表,并不全面:

还有更多,但我想你明白了。至于野外的Clojure网络应用程序,Clojure学习网站4Clojure就是一个例子,您可以查看GitHub上的源代码(我偶尔会对此做出贡献):

正如您所看到的,在Clojure和Web开发方面有很多进展。它可能并不总是顺利航行,但人们正在努力使体验更好。利用现有的Java基础架构确实有其优势,例如部署到Google App Engine等的可能性:

http://www.infoq.com/articles/deadline-clojure-appengine

希望有点回答你的问题...

答案 1 :(得分:7)

我几乎没有PHP或Ruby的经验。但是,我可以说使用Hunchentoot,CL-WHO和众多数据库后端之一编写Web应用程序非常容易(后现代,CL-SQLite,CLSQL,甚至像USerial或Rucksack这样的简单序列化库)。

还有像Uncommon Web或Weblocks这样的框架,但我还没有尝试过。

答案 2 :(得分:2)

来自Kent Pitman

的有趣引用
  

“...请不要认为Lisp仅适用于动画和图形,AI,生物信息学,B2B和电子商务,数据挖掘,EDA /半导体应用,专家系统,财务,智能代理,知识管理,机械CAD,建模与仿真,自然语言,优化,研究,风险分析,调度,电信和Web创作,仅仅因为这些是他们碰巧列出的唯一内容。“

而且,看,“网络创作”甚至将其列入名单!

Lisp适用于Web编程,因为它非常灵活,构成Lisp表单的s表达式与HTML有很好的相似之处。要了解我的意思,请查看Lisp for the Web。请注意他如何编写一个宏来基本上创建一个特定于域的语言来创建网页 - 而不是定义函数,他现在定义页面!这个DSL概念在他正在使用的CL-WHO库中也很明显,它可以让你编写成为HTML的Lisp。

Paul Graham成功地推出了自己的解决方案,同时创造了后来成为Yahoo!存储在Common Lisp中(之后更成功writing about it),从那时起many packages如雨后春笋般涌现。

Weblocks是Common Lisp Web框架,在我看来目前最具动力。 a video of it being discussed处有Twin Cities Lisp user group。 UCW非常相似,但我现在看不到很多动作(如果我只是在错误的地方看,请原谅我)。 The blog post on why the creator made Weblocks非常具有启发性:他基本上写了足够多的Lisp,这样他就再也不用处理HTML,AJAX和JavaScript了。这可能是一种夸大其词,但他甚至可以做一些这样的事实应该回答你的问题。

答案 3 :(得分:0)

这是自以为是的,但问题的性质也是如此,所以这是我的看法。

推荐初学者编程以使用函数式语言,尤其是Lisp。

关于函数式语言,特别是Clojure的概念更先进,它为您提供了强大的功能,在您开始进行Web开发的第一步中,您可能不需要这些概念。

因为你是初学者,那么我的答案是 no ,Lisps 像Ruby和PHP一样容易学习和使用。

答案 4 :(得分:0)

对于Web应用程序,框架是重要的考虑因素而不是语言。如果语言非常强大但没有良好的Web框架,那么开发Web应用程序会立即变得困难并且面临许多已知的复杂性。

想想没有铁路框架的红宝石,人们开始喜欢铁路框架。这和java一样,只使用没有Jsp的Servlet或其他开发Web应用程序的框架会很糟糕。

现在来到你的观点,易于使用永远相对 - 我无法在LISP系列中找到任何端到端框架,如ruby或python。但我发现Clojure减少了服务器端的复杂性。部署 - 它取决于服务器,而不是java服务器需要war或ear文件的语言。学习 - 它也是相对的,但有时候工具有助于调试或思考。但是大多数lisp系列都没有很好的调试选项。