他十年前的书在前端圈人手一本,豆瓣评分9.1。现在,王者归来了!
Posted turingbooks
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了他十年前的书在前端圈人手一本,豆瓣评分9.1。现在,王者归来了!相关的知识,希望对你有一定的参考价值。
循着标题点进来的朋友,或许已经猜到图灵君说的「他」是谁了吧?
没错!他就是道格拉斯·克罗克福德(Douglas Crockford)——在前端圈里的名气可能比javascript之父Brendan Eich还大的老道。
道格拉斯·克罗克福德
图源:crockford.com
道格拉斯最大的成就——用他自己的话说——就是让世人相信,JavaScript这门语言居然还有好的一面!
2008年,时任雅虎Senior JavaScript架构师的道格拉斯,通过O'Reilly出版了JavaScript: The Good Parts,书名直译为「JavaScript:好的部分」(中文版名为《JavaScript语言精粹》)。因为封面上有一只蝴蝶,所以这本书被大家亲切地称为「蝴蝶书」。
蝴蝶书出版后大获成功,豆瓣获千人打分9.1分。说它影响了一整代前端人也不为过。
十多年来,道格拉斯成为JavaScript发展史的深度参与者。他认为JavaScript「仍然表面一团糟」,精粹变得越来越少,但留下来的那些精粹更显闪耀。
当萌生更新蝴蝶书的想法时,他却惊奇地发现自己和O'Reilly都不是那本书的版权所有者。雅虎才是!而雅虎早已销声匿迹了。
既然无法更新,那就写一本新书吧!这便有了图灵君今天要重点介绍的这本《JavaScript悟道》。
道格拉斯·克罗克福德 ————著
死月(朱凯迪)————译
虽然英文名为How JavaScript Works,但这绝非中规中矩讲JavaScript运行机制的书。
那么这究竟是怎样的一本奇书呢?图灵君愿称它为JavaScript葵花宝典。
道格拉斯在「导读」中这样写道:
编程语言的重要设计目标之一就是尽可能使其简洁、优雅、逻辑性强,没有各种奇怪的极端情况。然而事实上,JavaScript远没有达到这个目标。随着越来越多的特性加入,每一次新版的发布都会使其变得越来越糟糕。
我们应当尽量待在这门语言干净阳光的一面,这里已经有能让你写出好程序所需的一切了,不要让自己堕入无边黑洞。
寥寥数语,精辟地总结了道格拉斯对JavaScript又爱又恨的纠葛情感。诚然,JavaScript既有阳光面,也有黑暗面。如果你曾走过弯路、踩过深坑,如果你曾无数次在心里骂这门「烂语言」,那就捧起这本书,和道格拉斯一起痛并快乐地用好JavaScript吧!
来看看这本书都有什么内容。作为JSON之父,道格拉斯用特别的方式来呈现目录:
[
{"编号": 0, "章": "导读"},
{"编号": 1, "章": "命名"},
{"编号": 2, "章": "数值"},
{"编号": 3, "章": "高精度整数"},
{"编号": 4, "章": "高精度浮点数"},
{"编号": 5, "章": "高精度有理数"},
{"编号": 6, "章": "布尔类型"},
{"编号": 7, "章": "数组"},
{"编号": 8, "章": "对象"},
{"编号": 9, "章": "字符串"},
{"编号": 10, "章": "底型"},
{"编号": 11, "章": "语句"},
{"编号": 12, "章": "函数"},
{"编号": 13, "章": "生成器"},
{"编号": 14, "章": "异常"},
{"编号": 15, "章": "程序"},
{"编号": 16, "章": "this"},
{"编号": 17, "章": "非类实例对象"},
{"编号": 18, "章": "尾调用"},
{"编号": 19, "章": "纯度"},
{"编号": 20, "章": "事件化编程"},
{"编号": 21, "章": "日期"},
{"编号": 22, "章": "JSON"},
{"编号": 23, "章": "测试"},
{"编号": 24, "章": "优化"},
{"编号": 25, "章": "转译"},
{"编号": 26, "章": "分词"},
{"编号": 27, "章": "解析"},
{"编号": 28, "章": "代码生成"},
{"编号": 29, "章": "运行时"},
{"编号": 30, "章": "嚯!"},
{"编号": 31, "章": "结语"}
]
二十年真知灼见
在《JavaScript悟道》这本书中,道格拉斯分享了自己写好代码的「不传之法」:对于一门语言,只使用它能满足自己的最小集。
本书正是记录了他所使用的这个JavaScript最小集,以及到目前为止对这门语言的全部思考。是的,有些观点会令你惊呼!
未来的终极语言是什么模样
道格拉斯犀利地指出,JavaScript一定不是我们学习旅程的终点,而是引领我们抵达终极语言的过渡语言。
终极语言应该是全球通用、安全的。JavaScript的设计初衷是成为这样一门语言,可惜在其发展过程中,人们不停地给它「整容」,拼命地往其中注入各种新特性来防止它老化,或者说稳住其流行地位。
在本书中,道格拉斯用了数章篇幅来描绘他心目中的终极语言。他给它起了一个名字:Neo。
读完本书,或许你会发现,道格拉斯起的这个名字,和《黑客帝国》中的Neo有千丝万缕的联系。
道格拉斯与中国读者隔空对话
在书中,你会读到道格拉斯特意为中文版读者准备的内容。他回答了10位中国读者的提问。
他如何看待TypeScript?
他如何看待JavaScript在非前端领域的发展?
怎样才能具备创造一门热门语言的能力?
他是否信仰阿特伍德定律?
……
Wun More Thing
道格拉斯反复提到,JavaScript充满了各种奇怪的用法。他在书中详解了个中缘由,并给出了建议。堪称JavaScript版十万个为什么。
为什么JavaScript(以及大多数编程语言)不允许变量名中存在空格,以及为什么这是早应被打破的规则?
为什么JavaScript不擅长处理小数,尤其是与金钱相关的小数?
为什么你最好永远不要用某些比较运算符,比如==和!=?
为什么1 < 2 < 3 // true,而3 > 2 > 1 // false?
为什么"2" + 1 // "21",而"2" - 1 // 1?
以及……为什么one不应该拼作one,而应该拼作wun?!
总之,这本奇书将带你以全新的视角看待JavaScript这门你以为自己已经十分熟悉的语言。现在就下单,准备好大开眼界吧!
#留言·互动#
你在用JavaScript时踩过什么坑?
图灵君将从留言区选出3位幸运小伙伴,每人赠送《JavaScript悟道》1册。
统计截止时间:2021年7月20日
题图来源:Designed by starline / Freepik
喜欢这篇文章?点个“在看”吧~▼
以上是关于他十年前的书在前端圈人手一本,豆瓣评分9.1。现在,王者归来了!的主要内容,如果未能解决你的问题,请参考以下文章