官术网_书友最值得收藏!

第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年加上的)。

因為你已經在閱讀這本書,所以你應該沒有那種偏見?;蛟S是像我一樣,有偏見的階段已經過去了,也或許是從一開始根本就沒有對它抱有偏見。無論是哪種情況,你都是幸運的,我殷切地期待著向你介紹Express,而Express這種技術正是由于一種令人愉悅又驚喜的語言才成為可能。

2009年,人們早已經認識到JavaScript作為瀏覽器腳本語言非常強大,具有很強的表現能力,這時,Ryan Dahl看到了JavaScript作為服務器端語言的潛力,于是Node誕生了。這是一個互聯網技術生機勃勃的時代。Ruby(和RoR)吸收了學院派計算機科學的一些偉大思想,并結合了自有的一些新想法,推出了一種更快捷的網站及Web應用程序構建方式。微軟也通過奮勇作戰在互聯網時代爭得了一席之地,借助.NET取得了驚人的成就,它不僅借鑒了Ruby和JavaScript的優點,還從Java犯的錯誤中吸取了經驗,并充分吸收了學術殿堂中的精髓。

徜徉在互聯網技術中令人感到興奮,到處都是令人驚奇的新想法(或者復興的舊思想)。現在的創新精神和新鮮事物比過去的這許多年要更強、更多。

主站蜘蛛池模板: 安吉县| 营口市| 五家渠市| 桐梓县| 石首市| 黄陵县| 冷水江市| 东兰县| 南乐县| 鄂尔多斯市| 锦州市| 育儿| 宣武区| 石渠县| 湖州市| 秀山| 会宁县| 申扎县| 绥滨县| 彝良县| 建昌县| 镇康县| 普陀区| 新乐市| 灵璧县| 尉犁县| 宁化县| 西盟| 汉寿县| 两当县| 牙克石市| 德保县| 裕民县| 万全县| 汶川县| 姚安县| 阳泉市| 郎溪县| 大田县| 什邡市| 宜良县|