WordPress宣布迁移到Node.js


WordPress的母公司Automattic的首席执行官Matt Mullenweg最近宣布WordPress.com正开始从PHP向JavaScript,特别是Node.js迁移,这引起了很多人的兴奋。为什么世界第一的内容管理系统会做出如此重大的改变?这会对互联网上7400多万个WordPress网站产生负面影响吗?

什么是node.js?

js是一个单线程,非阻塞,开源JavaScript运行时环境。它也是互联网上发展最快的项目之一,最初由Ryan Dahl和Joyent的一个开发团队于2009年创建。它由谷歌Chrome的V8 JavaScript运行时提供支持,并使用一个非阻塞,事件驱动的输入/输出系统,可以让您快速创建快速,高效和可扩展的应用程序。

js特别适合数据密集型的实时应用程序。它在分布式设备上也能很好地发挥作用。使用Node.js,您可以为服务器和JavaScript创建应用程序,就像使用Python等其他编程语言一样。JavaScript对于这种环境是理想的,因为它已经为客户端开发人员所熟知,并且它能够泰然自若地处理I/O应用程序。目前,JavaScript主要用作一种轻量级语言,一旦网页加载,浏览器就会对其进行解释。

为什么要从PHP转到Node.js?

如果PHP这么多年来一直坚如磐石,那么Node.js为WordPress做了哪些具体的事情促使了这种改变呢?具体地说,它提供了以下优点:

  • node.js速度很快。js是异步的,这有助于它创建非常快的I/O。使用阻塞的同步系统速度较慢,因为必须依次为每个请求提供服务。
  • js是围绕现代计算体系结构构建的。它不受几十年历史遗留代码的阻碍。
  • JavaScript是一种现代语言,可以通过多种方式进行塑造和扩展。
  • Node.js“代言”JSON,允许开发人员从web浏览器通过服务器到数据库使用单一语法。
  • js使事件循环在服务器上可用。您可以快速编写应用程序来完成诸如将数据库连接到功能强大的WebAPI之类的事情。

Node适应了快速变化的Internet的需求,它的移动性越来越强。网络正变得无处不在,从家电到服装,我们都看到了它的实现。node.js更多suited to that environment than PHP

两大挑战

当Matt Mullenweg成为CEO of Automattic2014年1月,他意识到WordPress项目面临两大挑战:

  • 缺乏资金
  • 当前技术的局限性

这是促使他和自动化团队考虑新方法的第二个原因。目前的代码库帮助平台迅速发展--目前,互联网上25%的网站都使用WordPress。它功能强大,运行灵活,价格便宜。

向后兼容性

然而,其中一个缺点是行政管理方面的问题。Mullenweg感觉到strengths of WordPress were also creating weaknesses对于WP-Admin--WordPress的管理部门--他们需要一个新的未来计划。

其中一个主要的挑战是他们需要远离向后兼容性以获得一个新的开始,然而这个平台的优势之一一直是它兼容每一个版本。相比之下,其他一些流行的内容管理系统,如Drupal,经常打破向后兼容性,以便能够使用最新的技术。它并不总是让用户感到高兴,但它使平台保持了前沿。

世界各地的捐助者

超过120个贡献者在多个月的时间里共同努力应对这一挑战,结果就是Calypso。Project Calypso was in-house effort在Automattic重新思考WordPress的代码库,看看它可以改进的地方。添加Node.js是很自然的,但是组织中很少有团队成员是很强的JavaScript编码人员。然而,通过反复试验,他们开始取得成功,而最初的一小撮开发人员grew to 127 with more than 26,000 commits

100%开源

Calypso是100%开源的,使用node.js和react.js中的库编写。React.js,最初由Facebook的开发人员创建,用于构建可在多种平台上运行的用户界面,用于面向用户的前端。

使用Node.js来制作后端。它完全由每个人都可以使用的开放API驱动。单页应用程序(SPA)runs in the client,利用多个JavaScript模块。

REST API

Calypso完全由开放的表示状态传输(REST)API驱动,每个人都可以使用这些API。open API意味着您可以通过Calypso管理您的任何站点。它以几乎即时加载的页面而迅速发展,现在您可以使用诸如统计和通知之类的社交功能。

多站点管理

WordPress的优势之一是能够在同一个数据库上运行多个网站。然而,管理许多博客可能是令人望而生畏的。Calypso可以让您从一个管理屏幕上管理许多WordPress站点,而不是任何台式电脑,智能手机或移动设备。

目前,Calypso已经部署在WordPress.com上,这个网站上有很多免费的WordPress博客。WordPress.com到底有多大?考虑these numbers。2014年:

  • 超过1800万个新的博客被创建--大约每天5万个
  • 发布的帖子超过5.5亿条,相当于每天150万条
  • 4700万个帖子来自移动设备

自托管的WordPress站点

如果您有一个自托管的WordPress站点,您仍然可以通过Jetpack插件利用Node.js的开发。要使它工作,你必须有一个WordPress.com帐户。喷气背包connects to WordPress.com,允许您:

  • 编辑和管理您的所有博客
  • 管理页面,帖子,主题,菜单,插件和各种设置
  • 快速编写和编辑文章

Macintosh OS X也有一个应用程序,其他平台如Windows也将很快发布。

未知水域

WordPress正在进入未知的水域吗?不完全是。有一些博客平台已经广泛使用Node.js。其中一个例子是Ghost,它在2012年发布时被一些热心的支持者称为“WordPress杀手”。Ghost最初是用Brekink和Handlebars语义模板引擎构建的,Brekink是一个轻量级JavaScript框架,使用Underscore.js作为其单个JavaScript库。然后,开发人员过渡到用于客户端的ember.js平台和用于服务器的node.js平台,同时保留用于数据库的SQL。

向前迈出的第一步

Calypso是WordPress.com从PHP和MySQL的安全港湾中继续前进的第一步。实际上,站点正在成为API的客户端,类似于任何使用API的应用程序。这使得移动计算环境的速度更快,重量更轻。

有了Calypso和Node.js,最终用户可以期望在WordPress上获得更好的体验--页面加载速度更快,响应更快。同时在自己的博客上担任网站管理员的用户将受益于以下新工具:

  • 多站点管理
  • 桌面博客
  • 统计和分析
  • 网站安全
  • 现场监测
  • 通过CDN传输图像
  • 令人惊叹的幻灯片
  • 提高共享能力

虽然这些功能将允许很大一部分运行自托管博客的普通用户使用Jetpack来替换他们当前的大部分插件,但高级用户将需要更多的功能以及调整设置和配置的能力。出于这个原因,高级用户将更有可能继续使用他们的大多数插件。

PHP和Node.js的未来

WordPress的广大世界都想知道Calypso是否预示着未来的事情。所有的WordPress最终都能在Node.js上运行吗?根据Mullenweg的说法,Calypso展示了什么是可能的。在一个interview with Venture Beat,他说他认为服务器端和客户端背后的技术很可能会分裂。PHP在服务器端仍占主导地位,但Calypso和JavaScript(很像Node.js)是客户端的未来之路。

node.js的实现是否意味着PHP的丧钟敲响?如果是这样,还需要一段时间。PHP是一匹强悍的赛马,13年来一直带着WordPress在赛道上驰骋。

最终接管

Node.js最终可能会取代PHP--它已经取得了巨大的进展:

此时,Calypso是一个带有仪表板的管理区域。它实际上是react.js和Node.js的组合,它们位于服务器上,以生成Web页面。然后它通过一个REST API与WordPress站点进行对话,而该站点仍然是用PHP编写的。

然而,计算的未来是移动的,Node.js显然是分布式设备和Internet of Things前进的道路还不完全清楚,但可以预期Node.js将在很长一段时间内占据主导地位。

运行Node.js应用程序?确保检查我的Node.js Cheat Sheet