Newlisp可以开发网站,有两个可以使用的framework,本文从其中一个开始Dragonfly
站点在:http://dragonfly.neocortex.io
为什么我用newlisp开发网站?
1. 并不是一定要高性能
因为很多应用都是网站的方式发布,易于升级,而并不是很多网站一定要具备高性能要求,一定要用C++写网站。
2. 脚本式编程容易理解和维护
Java, 太重了,做个网站搞上那么多开源框架。罗嗦的要命,脚本式编程容易修改,不存在编译时运行时的差别。ruby, php, python有它繁荣的道理,newlisp也是脚本语言。
3. 后端比重不大,学习成本不高
在web 2.0之后的年代,前端编程才是主要的工作量,后端解决一个基本的网页渲染,数据库读取,提供REST API即可。所以后端的代码比重不大,因此对于我这种前后端开发都很熟悉的人来讲,newlisp只是一个后端解决方案,学习成本不高,工作量不大。
4. 别忘了这是Lisp
因为是lisp,所以代码可以当作数据通过前端传递给后端,后端立刻执行。这意味着什么,意味着后端的运行逻辑是可以修改的。Wow! 因为这是lisp. 不需要担心安全问题,因为设计的时候可以防止。不能因为菜刀锋利就不用来做菜吧。
首先下载dragonfly,
https://dragonfly-newlisp.googlecode.com/files/dragonfly-newlisp_v070.zip
解压,进入example-site目录,假定当前目录所在位置是:
/opt/dragonfly-newlisp_v070/dragonfly-newlisp/example-site
修改.htaccess文件,将RewriteBase /改为从父目录开始的路径:
RewriteBase /dragonfly-newlisp/example-site
文档中描述的大意是:
父目录draongfly-newlisp将成为浏览器访问时候的应用程序名,比如http://localhost:8080/dragonfly-newlisp/example-site
但实际上URL应该是http://localhost:8080/
然后修改example-ste/dragonfly-framework/config.lsp文件,被注释的是原来的配置。
;(constant (global 'DOCUMENT_ROOT) (env "DOCUMENT_ROOT"))
(constant (global 'DOCUMENT_ROOT) "/opt/dragonfly-newlisp_v070/dragonfly-newlisp/example-site")
现在在example-site下启动网站
example-site$ ./newlispServer
If all goes well visit http://localhost:8080 in your browser
看到类似这样的界面: