- JavaScript悟道
- (美)道格拉斯·克羅克福德
- 1704字
- 2021-07-28 17:49:44
譯者序
少小摘得即為通,
而立手作毋自明。
夏蟲度伏難度九,
阡陌知雨不知春。
道爺雖道是語精,
聽者但聽須首靈。
泱泱巧匠閱此序,
清人自清迷人迷。
這是我的編程之路啟蒙讀物。
我從 2002 年開始接觸 JavaScript。那個時候我尚在讀小學,接觸的途徑是流傳在商店里的各種名為《網頁特效大寶庫》之類的光盤。當時,我只會在 FrontPage 中寫 HTML,并不懂 JavaScript,代碼都是從“大寶庫”中復制粘貼的。從此,這些炫酷的鼠標跟隨特效、下雪特效就在我心中種下了一顆不知名的種子。
之后 5 年,我在搗鼓 ASP。這段時間里的 JavaScript 也還在“縫縫補補”。我真正開始使用 JavaScript 寫代碼是在 2007 年,在 jQuery 發布一段時間之后。也正是因為 jQuery,我至今對于原生的 Web API 并不那么熟悉,接觸并知道 ECMAScript 規范也是在 2013 年前后,所以說我是一個“野路子 JavaScripter”一點兒也不錯。
JavaScript 從 1995 年面世以來持續高速發展,尤其在近幾年爆炸式地發展。道格拉斯在 2008 年寫了第 1 版的《JavaScript 語言精粹》,經過趙澤欣(小馬)和鄢學鹍(三七)前輩們的翻譯,幾乎成了現如今 JavaScript 從業者的必讀之物之一。
作為一個后端工程師,我很高興 Node.js 的出現讓 JavaScript 的發展之路與我有了交集。JavaScript 以它獨特的魅力成了一門隨處可見的語言,甚至早在 2008 年就有工程師杰夫·阿特伍德提出了阿特伍德定律:
任何可以使用 JavaScript 來編寫的應用,最終都會由 JavaScript 編寫。
雖然可以把阿特伍德定律看成一段調侃,但它也體現了 JavaScript 的便捷、易用與流行。
誠然,JavaScript 并不完美,《JavaScript 語言精粹》的厚度也遠不及《JavaScript 高級程序設計》的厚度,但這些問題仍無法阻止 JavaScript 成為現如今的熱門語言之一。道格拉斯深知這一點,所以他痛恨并深愛著 JavaScript 這門語言,用淵博的知識與幽默的文筆“罵罵咧咧”地寫完了本書。
剛接到本書的翻譯工作時,我是惴惴不安的,生怕翻譯不出它的神韻。好在最后我還是勉強完成了,雖不完美,但盡了我最大的努力去保持本書的原汁原味。而且在翻譯的過程中,我得到了很多提升,也知道了挺多奇聞軼事。例如,JSON 是在奇普·莫寧斯達家后方的一間棚子中被發現的;又如,愛迪生發明的留聲機原型在唱針每轉一圈時就會發出一聲怪音;再如,曼哈頓大街上的洛克希劇院最開始是以接待員統一的褲子為噱頭的;還有,最初的羅馬歷一年只有 10 個月,剩下的日子全叫“冬季”。
道格拉斯自身也非常有特色,對于認定的理兒非常執著,特立獨行。他堅持認為 one 應該按照發音寫作 wun,并且在整本書中都是這樣做的。受其感染,我也盡可能地為一些單詞想出了特立獨行的翻譯,即使它們可能已經有約定俗成的中文翻譯了。例如,我會將 truthy 翻譯為“幻真”,falsy 翻譯成“幻假”,是不是很夢幻呢?
除了奇聞軼事、特立獨行,書中還有挺多值得品味的 JavaScript 干貨和吐槽。道格拉斯幫我們復習了 JavaScript 中數值的一些原理(IEEE 754),并引申出了高精度數值的思想;介紹了各種 JavaScript 類型背后的思想,如幾種基本類型、對象、函數等;還講了 JSON 等背后的小故事。道格拉斯寫本書的用心不止于此,他還介紹了 JavaScript 語言層面之外的一些內容,涉及計算機科學和軟件工程中的各個領域,如測試、優化和編程語言等。最后,他還不忘再次回歸點題,調侃 JavaScript 一番。
至于吐槽,的確充滿了道格拉斯的個人主觀色彩。如果對于一些觀點有強烈認同感,大家一定會產生共鳴;而如果一些觀點與你的不一致,大可一笑置之。甚至在本書翻譯的時候,賀師俊(Hax)前輩還開玩笑地說:
孔子作春秋,大義微言,所以需要注釋來闡發。道格拉斯過于言簡意賅,以至于大家不清楚他到底站在哪邊。你盡量不要加注,保持原汁原味,然后單獨出個評注版。你自己、我,然后再找一個人,可以湊成三家注了。
如果真的可以,我其實很樂意做這么一件事,頗有“易中天品三國”的味道。
總之,本書非常有意思,我自己在翻譯的時候就有這種感覺。更多的信息還是等大家自己來發現吧,相信你們不會失望的。
最后,我非常感謝 JavaScript 這門神奇的語言,感謝 Node.js 這個運行時讓我有機會深入接觸 JavaScript。感謝給本書中文版寫推薦語的同行們,感謝在計算機之路上給我啟蒙的王震老師。感謝我的妻子,她的支持是對我最大的鼓勵,如果不是她,本書的問世也許會更晚。感謝我的父母在我的背后默默支持我的事業。從我小時候起,他們就一直支持我的夢想,這才讓我能在編程領域一路走下來。最后,感謝圖靈公司的岳新欣女士約我翻譯本書,感謝本書的編輯謝婷婷和楊琳在翻譯中的幫助。
死月
2021 年 2 月于杭州
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- Mastering Ext JS(Second Edition)
- JavaScript從入門到精通(微視頻精編版)
- Android項目開發入門教程
- Learning RxJava
- Visual C++數字圖像模式識別技術詳解
- Visual Basic程序設計(第3版):學習指導與練習
- C語言程序設計
- MATLAB應用與實驗教程
- 零基礎學Java(第4版)
- 快速念咒:MySQL入門指南與進階實戰
- PHP+Ajax+jQuery網站開發項目式教程
- Zabbix Performance Tuning
- Android Development Tools for Eclipse
- ASP.NET求職寶典