前几天我正在考虑这个问题,并想看看SO社区对这个问题的看法。
现在看来,Common Lisp作为一个网络开发平台受到了一些关注,而且有充分的理由(我相信你已经确信了)。
我想知道如何以类似于PHP的方式在共享环境中使用库。
如果我设置像SBCL这样的内容来解释像Python或PHP这样的FASL文件,那么使用库的最佳方式是什么(例如clsql)。
大多数都是asdf可安装库,但每次请求时都需要和安装库是一个愚蠢的开销。
请记住这是共享托管;最好是......
1)安装库的系统范围副本以供应用程序使用;减少空间,但使用正确版本的库可能会出现问题。
2)允许用户(通过控制面板)为自己安装本地副本;更多空间,没有版本问题。
3)告诉他们将它包装到模块中并像Python一样按需加载它(我不确定是否/如何使用Lisp完成)。只是能够加载库以供使用将是最好的选择,但我不认为它们中的很多都是以这种方式使用的。
无论如何,希望听到你的意见,谢谢。
答案 0 :(得分:2)
我会用两种方式来看待它:
为每个请求启动一个Lisp
这样,Lisp是一个保存的图像,加载了所有必需的库和数据会好得多。但这种方法对我来说并不是很有希望。
运行一个Lisp并让前端(Web浏览器,另一个Web服务器......)连接到它
通过这种方式,您可以启动已保存的图像或一次加载一堆内容并提供请求的Lisp。
我喜欢在部署方案中使用已保存的图像/应用程序。它们可以快速启动,包含所有必需的软件,并且独立于库更改。
因此,提供包含必要软件的预配置Lisp图像或让用户配置和保存图像可能很有用。