LAMP与MEAN比较


LAMP是传统Web开发堆栈,是Linux Apache MySQL和PHP/Python的简称,而MEAN是MongoDB、ExpressJS,AngularJS和Node.js。该文对这两种开发栈进行了比较:

Web服务器
在MEAN开发栈中,Web服务器是由Node.js提供,而在LAMP则是由Apache提供. Node.js因为是完全非堵塞和基于事件的,这能大幅度提高应用程序性能,(banq注:非堵塞的Nginx已经替代了Apache)。

数据源
MEAN中数据库是MongoDB(非关系数据库) ,而 LAMP使用 MySQL (关系数据库) ,这两者非常不同,从现有的SQL数据库迁移到非关系数据库需要大量的考虑,包括消除不必要的对象属性冗余,还可能会需要一个定制的软件套件来完成。然而,一旦这样做以后,数据库的数据检索将会快得多。

关系数据库支持高度复杂的结构化查询,其非常适合执行复杂的计算与数据。非关系数据库擅长管理运营数据,如系统中的对象的列表。表结构的缺乏反而让我们可以对象进行流式定义,这就不涉及到大量的代码更改,通过消除复杂的查询需要,我们能够获得一个比关系数据库更加有效率的系统。


代码
MEAN利用Express.js 和 AngularJS驱动web页面展示和控制界面流程,在LAMP中是PHP或 Python, Express.js 作为控制层指导应用流程,并且和AngularJS进行数据传输, Express.js非常轻量,会简化后端架构,而AngularJS作为一个纯粹客户端表现层可以容易地嵌入任何Web浏览器或应用中,当然,前后端统一为Javascript语言也是一大好处,意味着前端开发人员能够自己独立跟踪调试一个问题。

操作系统
任何技术堆栈的首选其操作系统的限制。而LAMP锁定了Linux操作系统(当然Apache MySQL PHP也可以在windows等下运行),而MEAN没有这样的限制。Linux仍然是一个不错的选择,但决不是唯一的,NodeJS可以运行在任何操作系统。(banq注:这条有点偏激)