Node与Express开发
上QQ阅读APP看书,第一时间看更新

第1章 初识Express

1.1 JavaScript革命

在介绍本书的主要内容之前,我首先介绍一些背景知识和历史沿革,也就是谈一谈JavaScript和Node。

JavaScript的时代真的来临了。最开始它只是一种粗陋的客户端脚本语言,但现在它不仅是客户端普遍使用的脚本语言,甚至还因为Node的出现最终成为了服务器端脚本语言。

全部由JavaScript组成的技术栈前景非常明朗:不再需要环境切换!你再也不需要从JavaScript的思维模式切换到PHP、C#、Ruby或Python(或其他任何服务器端语言)。此外,它还让前端工程师一跃进入了服务器端编程领域。当然,这并不是说服务器端编程只和语言有关,仍然有很多东西需要学习。但有了JavaScript,至少语言不再是障碍了。

这本书是为所有看到JavaScript技术栈前景的人而写的。你或许是一个想积累后端开发经验的前端工程师,或许是一个经验丰富的后端开发人员,像我一样想把JavaScript作为自己的服务器端编程语言选择之一。

如果你和我一样做了很长时间的软件工程师,一定见证过很多语言、框架和API的兴起。其中有些已经销声匿迹,还有些已经陈旧过时了。你或许会对自己快速学习新语言、新系统的能力引以为傲。每遇到一种新语言,你都会觉得更熟悉一些:有些是在大学学习的语言里见过,有些是在你几年前的工作中见过。持有这种观点当然会感觉很好,但也会让人感到厌倦。有时你只是想完成某件事情,而不想为此再学习一种全新的技术,或者重新使用尘封了几个月甚至几年的技术。

起初,JavaScript看起来并不可能胜出,当时我的想法亦是如此。如果三年前有人说我不仅会选择JavaScript作为我的语言,还会就此写一本书,我一定会认为他是个疯子。对JavaScript,我曾经抱有和大家一样的偏见,觉得它只是个“玩具”,是给业余选手和一知半解的人随意使用的语言。老实说,JavaScript确实降低了业余选手进入的门槛,也有很多充斥着各种问题的JavaScript代码,这损坏了JavaScript的名声。用句通俗的话说,即“不是游戏太差,而是玩家太烂”。

很可惜,人们对JavaScript持有这种偏见,这使得人们没能发现这门语言的强大、灵活和优雅。许多人现在才刚刚开始认真看待JavaScript,而这门语言在1996年前后就已经出现了(尽管很多有吸引力的特性是在2005年加上的)。

因为你已经在阅读这本书,所以你应该没有那种偏见。或许是像我一样,有偏见的阶段已经过去了,也或许是从一开始根本就没有对它抱有偏见。无论是哪种情况,你都是幸运的,我殷切地期待着向你介绍Express,而Express这种技术正是由于一种令人愉悦又惊喜的语言才成为可能。

2009年,人们早已经认识到JavaScript作为浏览器脚本语言非常强大,具有很强的表现能力,这时,Ryan Dahl看到了JavaScript作为服务器端语言的潜力,于是Node诞生了。这是一个互联网技术生机勃勃的时代。Ruby(和RoR)吸收了学院派计算机科学的一些伟大思想,并结合了自有的一些新想法,推出了一种更快捷的网站及Web应用程序构建方式。微软也通过奋勇作战在互联网时代争得了一席之地,借助.NET取得了惊人的成就,它不仅借鉴了Ruby和JavaScript的优点,还从Java犯的错误中吸取了经验,并充分吸收了学术殿堂中的精髓。

徜徉在互联网技术中令人感到兴奋,到处都是令人惊奇的新想法(或者复兴的旧思想)。现在的创新精神和新鲜事物比过去的这许多年要更强、更多。