本文首发于http://www.javaeye.com/topic/474725

直到今天中午之前,我并没有打算要站出来炮轰这本《JavaScript征途》。因为在目前的技术出版形势下,原创作者面临了很多困难,出书并不易,而且 看得出该书作者(朱印宏,网名css8)技术还是ok的,长久以来在技术社区里也做了不少传播技术的工作。这年头,积攒人品不容易啊!所以一切原本只是停 留在51js论坛上随性而起的 一 些 评 论 而已。

然而这本书的作者对于善意批评所作出的连番回应,却令我大吃一惊,他对自己犯的多处低级错误不仅不以为耻、百般狡辩,还发出“没有其他意思……不是广告 ”,还不止一处 ,连参与讨论的一向儒雅和气的爱民 ,都唯有疯笑以对 。尤其是今天上午因为china-pub 上一位“5级评论员 ”提及了51js上的讨论,这有可能影响到该书的销售前景,于是css8就坐不住 了,明着或暗着说我“危言耸听”、“不厚道”、“偏激”、“动机不纯”、“扣硕大的黑帽子”、“无知傲慢”……还大喊冤枉。这种无耻行径使我感到不能不把这个争论公诸于众,以正视听。

既然决定要对作者及其书进行公开批评,不得不牵涉到那些给此书写推荐书评的人。包括:

* 蓝色理想网站 站长曾沐阳
* 《JavaScript王者归来》作者月影
* 51js超级版主Winter

在该书的宣传页上,你还能从推荐名单中找到若干经典论坛 和51js 的版主的名字。

蓝色理想网站及其经典论坛,还有51js,都公认是国内历史最悠久最有影响力的Web设计者、开发者社区网站之一。身为这些技术社区的版主、超级 版主、网站站长,你们对于许多开发者和技术学习者来说,是标杆性的权威。你们理应比普通开发者更有能力来鉴别一本书的水准,你们也更有责任像孔雀爱护自己 的羽毛一样爱护你们的声誉。你们的权威,不仅基于你们自己的技术水准,也基于社区整体的技术水准。因此你们这样的推荐可以说不仅代表你们自己,也代表了整 个技术社区。

但是现在,看看你们所做的,仅仅出于朋友之谊,或盛情难却,就为这样一本未经过严格技术评审,仅仅两个样张就充斥低级错误的书,写出那样的推荐, 你们如何对得起社区,对得起信任你们的开发者和学习者?诚然,这样一种吹捧风气,也不是web开发社区独有,但这次对js征途的推荐,blueidea论 坛和51js论坛的大小版主可谓倾巢出动,这样一种集体性的失态,若继续发展下去,后果实在堪忧!

月影同学,你真的希望这样质量的一本书和你的《JavaScript王者归来》相提并论吗?仅仅因为“知道css8你写这本书不容易”,你就“一 些不太明显的‘坑’也没有刻意说,或者有的时候不由自主地忽略掉”。你也知道“这些坑有一定经验的老鸟们固然一般不会掉进去,但初学者确实容易摔跤”,一 句“我之前也没考虑充分这些”你觉得能作为理由吗?

Winter同学,我特别要批评你,月影也许没仔细看样张,你既然看过样张,怎么还能说出“如果回到学JavaScript的时候,我一定会买这 本书”的昏话来?难道月影后来说的那些“坑”,你初学时就能腾挪避闪?初学者最忌什么?最忌就是一开始的基本概念出了差错,就好像欧阳锋练了掺过水的九阴 真经,纵然他武功盖世,也最终练成了个疯子。而css8居然能在书中写出“浮点数是以字符串的形式进行存储的”,这谬误实在是稀罕到闻所未闻。

还有经典论坛的青蛙版主,你光看了个目录就敢写书评 啊?你也知道“光从目录来评价一本书的好坏是有点主观过头了”,所以“鉴于这些,我只能从目录出发,从我个人的角度来说些什么”。甚至你的书评也有所保留,但是这些有用么?盛情难却之下,你还是被人当了枪手用。

还有51js超级版主Rimifon、客服果果等,你们在51js论坛里对多初级的问题都有问必答,这份对初学者的耐心我一直敬佩不已,自叹弗如。然而,今日却推荐这样一本可能有许多“坑”会让“初学者确实容易摔跤”的庸书,我实在无法理解诸位的心态。

最后曾沐阳,你作为一站之长,为blueidea付出多少心血,只有你自己清楚。今日却轻易的把自己的名声,还连带你一干版主的名声搭进去,值得吗?

其实平心而论,css8这本书未必是同类书中最差的一本,就样张而言,有些地方还是可以的。所以也许只能算一本庸书,但未到劣书之列。且他技术上 也是有一定实力。但是他有个很大的问题,就是不是踏踏实实的把书写好,而是凭借自己在社区混得开,人缘广厚,就找了blueidea和51js的众人为他 的书摇旗呐喊,炒作造势。你有那么多资源,你咋不找他们给做做技术评审?!!如果此书经过月影或Winter或任何一位51js上超级版主的技术审阅,我 相信绝对可以消灭大量的低级错误。

不是请人做技术审阅,而是邀人做虚头八脑的推荐,如果此书真的写得不错,譬如像月影的《JavaScript王者归来》,那也无伤大雅,然而事实正相反。结果不仅拖累了那些为义气和面子帮他写推荐的人,更害了他自己,好不容易积攒的人品这次怕就要毁于一旦。

作为我来说,我其实很不愿意做炮轰这个事情,在一些朋友的善意劝告下,我一度想偃旗息鼓了。但是css8对于批评不仅不知反省,还要死撑,最离谱的是居然还引经据典 妄图掩盖自己的错误。你自己犯错,你还要拿别人的经典著作给你垫背?是可忍孰不可忍。我觉得如果此事就无声无息下去,任由css8继续在技术社区里误导初学者,那无论作为51js技术社区的一员,作为blueidea BXNA 作者群的一员,还是作为技术图书作者译者群的一员,都说不过去。

能力越大,责任越大。这句话,不仅适用蜘蛛侠,不仅适用《功夫》中的神雕侠侣,也适用技术社区中的大侠们。月影、Winter、社区的版主们、曾站长,我今日愿为诸君之诤友,希望各位也能担负起自己在社区中的责任,不要令这样的情况继续下去了。

附,就该书的基本常识和概念方面的错误,及作者css8对于善意批评的无耻回应列举若干。

所有问题取自该书的样张:第一章 、第四章 ,粗体为我所标示。

引用
这个作用域链 (Box.prototype.constructor.constructor.prototype)很长,长得几乎能够让人背过气,它是什么玩意?

这里只是若干级的属性引用,和作用域链(scope chain)风牛马不相及。然而在爱民指出这个问题后,他的回复 是:

引用
“作用域(链)”通常是一 个运行期的概念。这话没错,我列出的一个长长的属性存取,实际上它是原型域链,爱民后半句也提到了,原型域与原型域链在 JavaScript中是一个很重要的概念,不知道二位专家认可吗?就这个话题咱们还可以继续讨论,我当时在写作时,也是考虑到这个JS特性才这样写。是 否正确,还有待专家指正。

这个回复罔顾左右而言它,明明写错了还要强辩“也是考虑到这个JS特性才这样写”,末了还“有待指正”,让人哭笑不得。更奇特的是,他又冒出来一 个“原型域与原型域链”,还栽赃给爱民(“爱民后半句也提到了……”),实际上只有作用域链(scope chain)和原型链(prototype chain),不知道他哪里杂交出来一个“原型域链”,基本概念之混乱如斯,还问“不知道二位专家认可吗”?我代表我和爱民两位专家告诉你我们绝不认可!

引用
只有当闭包体的外部引用被全部设置为 null 值时,该闭包才会被回收。当然,也容易引发垃圾泛滥,甚至出现内存外溢 的现象。

这段话本身前后连接就有问题,然而这里我并不是想说语文水平的问题。只说什么是“内存外溢”。作者难道是在说内存溢出(memory overflow)?

然而这里根本不干内存溢出什么事。内存溢出,如果有,那也是引擎实现的问题,跟闭包或者任何js语言特性有毛关系?

除非作者是把memory leak错译成了内存外溢。但是就算这样,我们也知道memory leak虽然跟闭包有关系,但是本质上并不是闭包造成的,而是引擎的bug,比如微软js引擎和dom对接实现上的bug。作者在这里没头没脑的来一句, 初学者不明,恐怕还真会以为闭包是这样危险的特性了。

在我指出这个问题后,css8又是怎么回答的呢,他义正词严的说 :

引用
是我的无知,还是你的傲慢,请你查阅一下《JavaScript权威指南》第5版第8章。

这可吓到我了。说老实话,《JavaScript权威指南》是人所共知的经典,不过我确实没从头到尾通读过,难道犀牛书里真有这种奇谈怪论?

然而当我下载了电子版仔细查阅后,我却实在气不打一处来。css8的荒谬已经到了无可救药的地步。

查JS权威指南第五版里从来没有一处提到过 memory overflow 。第八章,只有一段话提到了memory leak,全文如下:

8.8.4.2. Closures and memory leaks in Internet Explorer

Microsoft's Internet Explorer web browser uses a weak form of garbage collection for ActiveX objects and client-side DOM elements. These client-side objects are reference-counted and freed when their reference count reaches zero. This scheme fails when there are circular references, such as when a core JavaScript object refers to a document element and that document element has a property (such as an event handler) that refers back to the core JavaScript object.

This kind of circular reference frequently occurs when closures are used with client-side programming in IE. When you use a closure, remember that the call object of the enclosing function, including all function arguments and local variables, will last as long as the closure does. If any of those function arguments or local variables refer to a client-side object, you may be creating a memory leak.

连css8犯什么错误我都料到了,他居然还理直气壮的凑上来说他没错。本人是有点清高,但是不至于傲慢。不过在css8这种人面前,我不傲慢看来实在对不起观众。

引用
更为有趣的是:浮点数是以字符串的形式进行存储的。

基本概念的混乱其实是许多所谓给初学者写的书中常见的问题,有时候,一些整体不错的书里也难免会出现一两处。但是像这样有想象力的谬误实在是很稀 罕。对此css8偏不信邪,还找到了NC Zakas写的Profressional JavaScript for Web Developers来为他背书 :

引用
请你查阅一下《JavaScript高级程序设计》第2章,如果你没有书,告诉我,我复印给你看看。

好,我就去查了,看看原文:

引用
The interesting thing about this form of floating-point literal is that it is actually stored as a string until
it’s needed for calculation.

(这一段是斜体,大体是作者作为轶闻来说说)

我先姑且不论Zakas说的对不对——因为literal是否是保存到计算时再处理,还是预先就处理掉了,其实是由引擎决定的,而且我断言,现在 的主要引擎肯定是预处理时都处理掉了,有看过spidermonkey、javascriptcore、v8源码的同志都可以验证一下。此外Zakas在 这本书的第二版里已经把这段话删除了。

退一万步说,我们以这个第一版的说法为准,但人家讲的是literal啊。

literal是什么?可参见wikipedia条目: http://en.wikipedia.org/wiki/Literal_%28computer_science%29

我曾写过一篇讨论literal译名的文章也可参考:http://hax.javaeye.com/blog/160003

而且值得注意的是,在Zakas这本书同一页的下方特别用不同背景色且粗体标出:

引用
Floating-point values are stored in a 64-bit IEEE 754 format, meaning that decimal
values can have up to 17 decimal places. After that, the values are truncated, resulting
in small mathematical errors.

那么会不会可怜的css8是看了错误的译本导致犯下这样低级错误的呢?

于是我找到译本 一看,人家明明翻的是:

引用
浮点字面量的有趣之处在于,用它进行计算前,真正存储的是字符串。

这句话虽然翻译的不太好,但是也明确说了是浮点字面量,以及是在进行计算前。到了css8这里却被copy不能不走样的成了“浮点数是以字符串的 形式进行存储的”。更为有趣的是,他前一句还在说“浮点数一般都是64位数值”,后一句就成了“更为有趣的是:浮点数是以字符串的形式进行存储的。”这样 前后两句自相矛盾的叙述,他居然视而不见,还据“理”力争,我们实在不能不惊叹于他具有优异的前后兼容性。

就在我写这篇博客的同时,css8还又再次长篇大论 ,又是引用文献,又是扔出一段与javascript浑身不搭界的eeprom 的C代码,其囧其雷,令人叹为观止,我就不做分析了,各位可自行观赏之。

更多有趣的问题,请看完整的讨论记录:http://bbs.51js.com/viewthread.php?tid=85328&extra=page%3D1&page=1

最后我要指出的是,其实一开始我想提出的,倒是他书的写法,而不是这些基本的常识和概念错谬。比如我提出要:

区分:真生动 和 装出来的生动。
区分:口语化 和 啰哩叭嗦。
区分:循循善诱 和 堆砌内容。

此外他的两个样张里有时候过分武断地出现全称判断如“任何语言都……”,或没来由的一会儿夸赞一会儿贬斥某个浏览器,如“IE,没有什么好说的 了,一个狂妄的巨人”、“IE 却是用户体验最好的浏览器之一”、“据说……Opera浏览器……瑕疵也非常明显”,这些褒贬似乎随心所欲,评论者追问一句,他就回说“对不起,请你自己 动手试一试”,还自比于丹 ;有时候却又出现“这在普通开发中好像没有多大实际价值”、“好像这在实际开发中很少去考虑”,甚至“至于谁对谁错,看来只有根据具体情况而定了”这样后现代的无厘头之语。

不过,现在我已经不想就这些问题,以及如何为初学者写书这个大题目来与他争辩。因为一个犯下基本的常识概念错谬都要百般抵赖的人,我们能指望和他讨论一些更带有主观色彩的问题吗?

附送css8语录摘要(粗体为我所加):

引用

关于《JavaScript征途》这本书,质量是有保证的,不仅仅针对初学者,对于进阶者和高级读者来说也应有用。事实会证明这些,就让我们试目以待

本书是一本好书。不然也不会班门弄斧,在这儿找骂。当然,好书是不怕骂的……我也非常理性的面对51js中几个网友的叼难 ……当然,由于愤青或者酸葡萄心理 骂书,我也管不着,但是骂只能显示骂者的卑鄙。

你引出了这么多语句,已经说明了你的用心 ,但是我又非常认真的阅读、斟酌了一番,没有发现什么技术和表述问题……最好是你直接明说了,反正我还没有看出什么问题?

我可以负责任的说,“质量是绝对有保证的,不仅仅针对初学者,对于进阶者和高级读者来说一样非常受用。”,这话一点没有自吹自擂,我敢于在这里再重复一遍,我敢于对于我写的这本书负全责……在当前严酷的图书市场和读书环境下,我能够用近一年的时间非常认真 的写作一本书,可以说是非常罕见的……有人从毛选中挑出了很多错别字,我在《JavaScript权威指南》中也挑出了不下20处的技术和印刷错误,……如果使用放大镜 仔细读,可能会发现一些小问题 ,当然作为作者的我和出版社都希望这本书是完美无缺的,也真诚的希望大家刻意 挑错,以利于我们改正。

本书最大特点就是性情中书,情感和思想比较盛行 ,如果你是一位技术高手,可能不习惯这种口水味 ,但是这正是广大初学者所需要的

我估计你是一位技术熟练者,有过深刻初学者的经历,但是这不能够代表现在的大部分初学者 ……历史会再次证明这个观点:越是骂得厉害的图书,市场肯定错不了。

飞思是国内IT图书的品牌,你竟然如此下结论,看来你对于IT图书市场了解不是很深,遗憾。

我的文笔在圈内是数得着,作为一位老的技术人员,老的技术写作人员,我还是很自信我的语言。至于你读起来是另一种味,或者读起来不适应,可能是你的口味问题

电子工业出版社是四大名社,飞思是国内IT图书品牌,本书策划编辑是国内最著名的编辑,获得多项大奖,策划了很多经典图书,我就纳闷了你为什么还有这个偏见,或者是你不够了解,或者是“一书障目”?

我不想与你在这里打口水战 ,现在没有时间和精力。我不会因为你说什么而怨恨 ,当然也不会在意这些流言蜚语

最后,容我辩解一下:在追求技术严谨性和通俗性时,我多选择了后者,所以很多忽略了技术的严谨性,很多语言经不起专家的推敲,实在抱歉。不过,我是这样认为的:把技术写得更通俗、随和一些,往往读者更喜欢阅读。

先声明一下,发下面这个图没有其他意思,这不是广告,也不是怂恿。它是一位读者在论坛里发的帖子,我也是刚刚发现,原来在互动出版网买书还有这么大的实惠,以前还真的不知道。现在我发出来这个截图,只是想告诉那些有意购买本书的网友,建议不妨试一试。

本书有错误码?有,hax帮助指出了……但是,如hax所言,错误随处皆是 吗?这个就未必了,hax的言论未免让人感觉危言耸听 ……我统计了hax指出的所谓31处错误 ,真正算上技术错误的,也很寥寥,不过几个罢了……但是,真的如同爱民那样去分析,就会好吗?这个也未必。本书不是迂腐的学术专著 ,本书是通俗的科普读物 。如果有人非要想把书中带有个性的、主观色彩的语言 硬要往严谨的学术上靠,这个显得很不厚道 了,有本事 ,你去一个字一个字的死扣 扣《大话设计模式》或者《大话设计存储》。脑白金火了,大家都骂脑白金,但是脑白金不会因为被骂而萎靡不振,反而更受用户欢迎。 ……拿几个错误来说事儿,只能显示你的偏激。如果就技术话题进行讨论本书,也就罢了,但是有的人就是动机不纯 ,除了叫嚣着在这里骂 ,反而还倒咬我一口 ,甚至还跑到外面吆喝 ,实在可笑,你以为你在外面呐喊几声,本书就没有市场了。市场自有市场的规律,读者自有读者的选择。

hax的言过其辞,我不想多论。我强忍着怒火 ,仅就他所谓的错误从技术上与大家讨论。不然,因为hax的一席话,用一顶硕大的黑帽子扣 在本书的头上,实在冤枉

“据说”不是瞎想……让我拿出证据,我只能回敬:对不起,请你自己动手试一试。
你的这种言论,让我想起了于丹的《于丹论语心得》。于丹的书出来时,当时国内有十几个中国古代文学专家联名上书,甚至于起诉,说于丹言论偏离史 实,有损《论语》的形象。但是,此事后来也无趣不了了之,于丹的《于丹论语心得 》仍然是大家最爱看的书,那些专家们的《论语》解读也不知道被尘封在图书馆中多少年了。

书要有情感,只有作者有情感,要让书易读、易解,首先要解放作者的思想

本来昨天这事儿就过去就算了。我也懒得理会了。但是今天在互动上看到有人发言,说清初学者在买书之前来看看hax和爱民的帖子。这话有点不地道 ,如果真是书的错误 ,我也认了,但是很多指责都是主观 的,如果保持沉默,说明我认可了hax的指责 ,很冤枉

hax指出的几个错误,我可以接受,但是,凭什么说我要接受你的所有无理指责这是什么世道51js不是黑帮 ,为什么还要指责无辜劝和的版主

但是,这些都不要紧,争论的本质是要证明真理,不管谁对谁错,先请个别人 不要到处扣帽子,以人品 论事儿。

最后的最后,再附送css8最新发表的《与淘宝阿当的聊天 》。偶也是淘宝ued blog 的常客,与怿飞、小马等也有一面之缘,倒是没听说过这个阿当哦。

引用
阿 当  21:24:11
老朱,看到你在51js上的那张贴了,哈哈哈哈
阿 当  21:24:13
太搞了
阿 当  21:24:27
http://bbs.51js.com/viewthread.p ... page%3D1&page=5
是这个吧?
样吧  21:26:12
什么意思?
阿 当  21:26:56
我说你们的斗嘴 很有意思,呵
样吧  21:27:21

样吧  21:27:29
你是怎么认为的?
阿 当  21:27:33
我在淘宝。淘宝的同事 刚也在说这贴,哈哈
阿 当  21:28:03
哈,我看这个贴子最大的感觉就是中国人的陋习 又来了,喜欢掐架。就像以前重文轻理,文人相轻一样,现在重理轻文,理人相轻,哈哈
阿 当  21:28:11
我其实非常支持你
阿 当  21:28:26
相信 你的写作水平
阿 当  21:28:36
而且也相信 你知识的深度。
样吧  21:29:01
你从旁观者的视角分析一下这个争斗,包括你们同事的评论?
阿 当  21:29:01
我非常同意你的观点——中国市场上太需要性情中人 的书了
阿 当  21:29:24
我只说我的观点,哈哈

样吧  21:29:40
呵呵,好的
阿 当  21:29:42
初学者实在太需要一些感性 的书了
阿 当  21:30:00
知道他们会在什么地方困惑
阿 当  21:30:20
而且会用一种不生硬的方式讲解。
阿 当  21:30:52
看完这样的书,远比看一本api大全那样的犀牛书收获大得多
样吧  21:31:09
呵呵,过奖了
阿 当  21:33:12
我非常支持这样写作的人,我相信这样的书才是真正的好书 ,能够帮助人成长 的书,而且是快速成长。写自己主观认识的书,远比写一本api介绍性质的书难很多,而且因为都是主观认识,所以难免有些地方会遭一些挑刺的同行 反驳,这个应该是一开始就应做好心理准备的。
样吧  21:34:12
是的,你说得很正确
阿 当  21:36:00
我相信这样的书并不会因为少数吃不着葡萄说葡萄酸的人恶意 攻击而影响他的销售 。群众的眼睛是雪亮的,特别是对于那些真正需要“学习”的人。技术领域是门科学,不是拉帮接派 的地方,也不是论资排辈的地方,这个领域其实非常需要你这样的作家,喜欢研究,而且乐于布道善于布道的作家。
样吧  21:36:40
呵呵,谢谢理解。

阿 当  21:37:04
我相信它的销路一定会很好,而且真正这本书的读者,一定会给它一个好口碑。
样吧  21:37:44
但愿吧,毕竟我和出版社投入的精力和时间已经非常大了

阿 当  21:41:59
我觉得你完全没有必要和论坛里的那些人较真!直接无视他们 就好了。你越是反驳,哪怕你特别注意自己的措辞,一直表现得非常有礼貌 ,但那些人并不会领情。你没看出来吗?就算你一直耐心地解释下去,他们也一定不会因为你的解释而改变自己的主意,其实他们一开始就只是抱着找碴的心态 来的。他们有不满,他们自己出不了书,他们觉得自己很牛X,他们只是找你出气。你其实完全可以不必理会他们的,你越是理会他们,反而越显得不够自信。
样吧  21:44:50
是这样的,一些技术问题可以在讨论中越挣越明,另一个问题是他给书扣一个大黑帽子,并到处散播,如果你不去理他,反而不好。
在争论中,虽然很受伤,但是也可以让路人知道是咋回事,话语权并非都在他那边。
当然这个争论很伤神的,浪费时间,不过也是很值得的
阿 当  21:47:10
我想抱持嫉妒之心的人还是多于理性之人的 ,这样的争论,可能更多没吃着葡萄的人,并不会客观地看待你们的争论,而是直接跟着起哄说葡萄酸了。
阿 当  21:47:30
与其这样,还不如不争了,让他们自讨没趣。
样吧  21:49:15
没关系,我不怕起哄。关于几个技术话题,等我有时间了,我还想与他辩论一下,关于语言攻击就不管他了。
阿 当  21:50:12
哈哈哈,你这样的个性还真是可爱,哈哈。我支持你,老朱,哈哈

最后的最后的最后,是我写的一些评论原样照录,以作备份。

引用

出现错误其实不可怕,牛逼如john resig,写的blog里有时也会犯点低级错误。但是一本书,仅仅两个样张出现那么多错误或至少是不严谨处,就说明该书没有经过认真的技术审阅。月影和 winter同志我不知道是不是出于面子因素不好意思指出这本书的问题,只说不适合高手。但是作者还说“质量是绝对有保证的,不仅仅针对初学者,对于进阶 者和高级读者来说一样非常受用。”这种话,如果是出版社为了销量而自我吹嘘,我也能够理解。但是作者自己说出来,就未免有点托大。

实际上此书就这两个样张来看,就不适合初学者看。最典型的第一章,书好不好,看第一章就知道大概。第一章本是引领章节,但是作者上来没头没脑的大 杂烩,从罗列一些名词、概念,到js解析这样完全不适合初学者的话题,哪里见得到条理?给出的例子也完全没考虑到读者的接受程度。给我的感觉,作者只是想 到哪里写到哪里,没有经过梳理和裁剪。书写厚不难,难的是写薄。我不知道这样的第一章是怎么通过责编的,当然考虑到出版社是飞思,在技术图书领域的名声一 向不咋地。某人的评价是:“飞思的书我看来是误人子弟。国内很多书就是游离于这个档次,所以如果看了就很容易成为永久地业余程序员。”我说句不好听的,楼 主这个第一章,业余味道就很重。

这两个样张的某些部分(例如讲类型自动转换的)还是可以的,也许其他部分会比较好,也许作者只是虽然已经写了很多书,但是就是不会写书的第一 章……总之,我还不至于给它贴上滥书的标签。看得出,作者的技术水平还是ok的。但是技术水平不等于技术写作水平。作者很希望能写得比较幽默和轻松。最近 有几本JS书也是如此,但是显然作者的这方面水平有待提高。比如我说真生动和装生动是有差别的。当然这是主观感受,作者一定不认可,我也没办法。但是凡事 就怕比较。请和之前出的那两本比较吧。

作者写的书也不少了,我纳闷为什么找飞思?作者下次还是找个好点的出版社,至少有策划和责编会帮你把关,而不像飞思这种估计只会教你怎么忽悠和自吹自擂(虽然王婆卖瓜总是必要的,但是不能只会炒作)。

引用
引用
首先声明,本书是经过严格的编审程序一关关过的,并非你们想象得那样糊弄和随意。

凡事声明就有用吗?严格不严格是靠嘴说的吗?可能过程并不随意,大家也很努力和辛苦,但是这不是评价标尺。

我随便列了一些问题你都觉得没问题,其实这并不奇怪。除了态度之外(这个话题另说),因为人总有盲区,如果一开始知道有问题,自然就不会这么写。我也不敢说我写的东西都没问题。实际上我在本论坛也有说错被抓出来的情况。

之所以人会犯错误,所以才要技术评审。然而这本书的两个样张里我随意看了一遍都有不下30处问题,你要告诉我这就是“严格的编审”,你说能让人信服吗?

就这点而言,此论坛的某些同志,比如月影、winter等,我希望你们要发发言,不要因为面子问题不声不响,这样其实是害了朋友(如果css8是你们的朋友的话)。

引用
我可以负责任的说,“质量是绝对有保证的,不仅仅针对初学者,对于进阶者和高级读者来说一样非常受用。”,这话一点没有自吹自擂,我敢于在这里再重复一遍,我敢于对于我写的这本书负全责。

嘿嘿,你写的书,当然要你负责。难道还要我负责不成?

再者,偶属于高级读者了吧(或者我已经不属于你的“读者群”,因而不计入),至少我不受用。请winter、月影等高级读者现身,说说你们受用不受用。

引用
如果你经常买书,如果你经常看技术图书,你会明白我的话意,在当前严酷的图书市场和读书环境下,我能够用近一年的时间非常认真的写作一本书,可以说是非常罕见的,这个市场我是非常清楚的。作为一位多年的IT技术作者,我比谁都清楚IT图书的市情。

“我好,是因为别人比我更差”,您是想说这个意思吗?技术图书市场的情况糟糕,人所共知。但是这不是作者为自己开脱的理由。如果你跟一个学生说, 你写的作文不理想,学生回答:但是我很认真啊,我花了一天时间了,其他同学都10分钟就乱写一气的。你要怎么对他说呢?是跟他说,对不起,我错了,你写得 很好!

当然偶不是自比你的老师,您写了这么多书,只有别人叫你老师的份。我只想说,如果作者是因为清楚行情,所以认为这样水准就已经是鹤立鸡群了,那不好意思,我只能说那只能算鸡立麻雀群。

引用
有人从毛选中挑出了很多错 别字,我在《JavaScript权威指南》中也挑出了不下20处的技术和印刷错误,当然本书也不可能完美无瑕。如果使用放大镜仔细读,可能会发现一些小 问题,当然作为作者的我和出版社都希望这本书是完美无缺的,也真诚的希望大家刻意挑错,以利于我们改正。

我有挑你错别字吗?我有挑你印刷错误吗?(除非你跟我说我挑出来的全都是编辑改错的和印刷印错的)
我有要求你完美无暇吗?我只是粗略的浏览一遍,这样就算拿放大镜仔细读了?
“真诚的希望大家刻意挑错”,言下之意是——凡是挑错就是刻意的而已罢。但是我“刻意”的挑您的错别字、印刷错误了没?您真够真诚的哦。

引用
本书最大特点就是性情中书,情感和思想比较盛行,如果你是一位技术高手,可能不习惯这种口水味,但是这正是广大初学者所需要的,请你能够理解,现在的初学者最害怕冰冷的语言和过于简洁得难于理解的思想。

主观问题我就不多说了,因为客观问题你也当看不到,更不要说来跟你探讨这些了。而且你认为初学者就是需要吃吃你的口水,那就更没啥好说的。
但是,我说此书不适合初学者,根本没有以你的文字差来作为理由。

引用
我不知道你是不是初学者?

是人都是由初学者过来的。我所庆幸的是,我从一开始就没看任何一本这种所谓为初学者写的书。

引用
什么是初学者?出版社、编辑和作者比谁都清楚,整天与书和读者打交道,连这个最基本的问题都不明白,那就没法说了。

如果出版社、编辑、作者都清楚,那为什么还会有那么多误人子弟的滥书?刚刚还说市况问题多多,这厢又说都明白。难不成就飞思和你是属于出淤泥而不染?

其实确实某些出版社、编辑和作者都明白,明白的是:初学者最好忽悠!

技术图书界就是这样滴。这里我又要批评本论坛的某些同志,你们看了个目录就真敢写书评啊!还有一句此书不一定适合技术高手,但是适合初学者——我知道你们不想趟这个混水,所以来一句不适合高手就脱了干系,但是那些初学者怎么办?特别是那些相信你们的初学者?

举例来说,初学者最忌什么?最忌就是一开始的基本概念和技术词汇出了偏差。这就要求,越是为初学者写的书,越是应该严谨从事。这里我拿偶的老上 级,本版常客,也是我的好友aimingoo来举例,希望他不要介意(偶就是知道他气量大所以才敢说滴,嘿嘿)。他在他的那本书中对closure(闭 包)术语的解说就有问题,连累一干粉丝就closure的定义争论不休。实际上,反而是高手们对于这种小节可以稍做忽略,因为aimingoo对于js元 编程的思想和实践就够我们研究一壶了,词汇问题就纯属枝节了。饶是如此,closure还算是个疑难概念,但是本书作者居然能说出“浮点数是以字符串的形 式进行存储的”,吾只有张口结舌了。

引用
我估计你是一位技术熟练者,有过深刻初学者的经历,但是这不能够代表现在的大部分初学者。

真厉害,一下就把我划出了大多数,归纳为一小撮了。

引用
所以你所谓的“就不适合初学者看”这个观点还真不敢苟同,只有看本书的市场才能够说明问题,历史会再次证明这个观点:越是骂得厉害的图书,市场肯定错不了。

历史早就证明:初学者最好忽悠。

越是骂得厉害的图书,市场肯定错不了。那是当然的,因为脑白金的市场就不错。

引用
记住,真正购买本书的人不是经常在这里晃悠的人,而是那些对于JavaScript技术非常饥渴的广大初学者。

我当然知道这一点,那就是:我批评也是白批评。经常在这里晃悠的,自然不会被忽悠。

所以我只是这两天抽风,在这里没事找事,给winter、月影还有本版版主等同志添点乱而已。

因为那些初学者活该要吃药的。就好象业界都知道技术培训市场的问题,但是说了也没用,该上当的还是要上当。

大家都心知肚明心照不宣,只是不愿意说出来罢了。何况技术圈子就那么大,抬头不见低头见,真的死掐,万一下次跳槽到一个单位咋办?万一我下次出书,人家也不给面子来死掐我……

引用
至于,第一章是大杂烩,是 的,这个没有错,第一章具有前瞻性,它不是初学者的学习第一步,更像一章概览,目的很明确,就是让读者能够快速领略 JavaScript技术精华部分。不要求读者去理解,相当于英语中的泛读。也许你没有仔细看看第一章的题引,它已经说明了本章的目标,很明确。

我只问一个问题,你第一章里扔出了js解析、词法分析、语法分析这样的重磅精华炸弹,你认为初学者需要学习这样的知识吗?如果需要,你后面哪个章节展开介绍了?如果不需要,那你扔出此精华的目的何在?

引用
“国内很多书就是游离于这个档次,所以如果看了就很容易成为永久地业余程序员”,这个是你的偏见,我不想与你理论,直接去认真读书和学习的人才能够体味其中的甘苦。

首先,这句话不是我说的,而是Tin(http://tin.zztin.com/)说的,您和飞思如一定要对号入座,群殴单挑都请找他。

不过我是有同感滴。国内技术书,常见急功近利、粗制滥造、剪刀浆糊、误人子弟,这是大家的共同感觉,背后当然有一些深层次原因,连你自己都说“严酷的图书市场”。可是一涉及到自己,竟就又变成了偏见了。

当然,不少人,不管看什么书,其实注定是要成为永久的业余程序员的。然而,人注定是要死的,并不是我生产的奶粉就可以掺杂“三花聚顶向您请安”的理由。

引用
“我说句不好听的,楼主这个第一章,业余味道就很重。”,我很不理解,你在上面刚说了第一章起步过大,不适合初学者,现在又说太业余,难道第一章非要板起面孔说技术就是专业吗?

唉,都说了“这是主观感受,作者一定不认可,我也没办法。”
这些话本来就是不好听的,而且又是一个主观评价,所以你不爱听,那我收回好了吧。楼主绝对是专业水准!专业到“据说”,专业到“至于谁对谁错,看来只有根据具体情况而定了。”

引用
飞思是国内IT图书的品牌,你竟然如此下结论,看来你对于IT图书市场了解不是很深,遗憾。

原来批评飞思的,就是“对于IT图书市场了解不是很深”,嘿嘿嘿。
其实飞思也不是没出过好书,比如《java与模式》(是飞思出的吧)我就很喜欢。但是这是个案,飞思主要是出什么类型书的,相信你比我清楚。

不过涅,我还要撇清一下(我真是没志气啊),我只是转载别人的话,你所谓“了解不是很深”的其实是这帮人:http://groups.google.com/group/B ... c6f4660544?hl=zh-CN

引用
我的文笔在圈内是数得着,作为一位老的技术人员,老的技术写作人员,我还是很自信我的语言。至于你读起来是另一种味,或者读起来不适应,可能是你的口味问题,当然我的文笔还需要更上一层楼,让语言渐变得更平滑,让每位读者(包括你)都读起来很愉快。

是我不适应!一定是我不适应。我是一小撮,我居然不知道作者是文笔了得,圈内数得着,老资格的技术写作人员!在我如此不明事理的“刻意”找茬下,作者还能有“让语言渐变得更平滑”之宏愿,还要让我更愉快,我惭愧得泪奔啊!不!我一定要愉快滴泪奔,不能辜负作者的凛然大义。

引用
电子工业出版社是四大名社,飞思是国内IT图书品牌,本书策划编辑是国内最著名的编辑,获得多项大奖,策划了很多经典图书,我就纳闷了你为什么还有这个偏见,或者是你不够了解,或者是“一书障目”?

四大名社、IT图书品牌、著名编辑、又获奖又经典,但是我就是不认帐,难怪你纳闷。

但是我也纳闷,我只是就看到的样张提出问题,关名社、名牌、名编什么事情?您要我了解什么?您一定要我了解原来此书是出自名社、名牌、名编?否则我对此书就不能说三道四了哦?

如果您只是对我对于飞思的一些看法不爽,那么如您所愿,我现在觉得,这书如果有什么问题,大概主要还是您自己的问题,跟飞思无关哪!

引用
css8同志,其实我已经 很克制地在评论了。尤其是,我从来没有否定过你的技术水平。从一开始我就肯定你的技术水平和技术视野是ok的。我甚至都没有质疑你的态度,尽管这么些个低 级错误直接就反映了一切。我只是把问题归结于,你的写作水平需要提高,和出版社没有尽到技术评审的责任。但是看看你的回复,有一点点反省吗?还在强词夺 理,死不认错。真要我把问题一个一个说出来?到那个地步,我是不会给你留口德的。

我不知道是谁故意要把一个正常的书评(难道只有吹捧的才算正常书评吗)引向口水战。尤其是你的回复透露出一些阴戾的气息。又说不怨恨,又暗指所有对你的批评都是“流言蜚语”。

我早先还没有注意到之前你反击一些批评者时所做的,现在才注意到winter都把一些信息给删掉了。我现在想想,也许是我不应该来碰你的。因为这个圈子里有不少作者其实就是这样,容不得别人一点点批评,哪怕这批评已经大大的留有余地。

不过已经评论到这个份上,我就转个某技术出版社(你所谓四大名社之一吧)作译者群内部论坛里的评论作为结束,希望对你有所触动:

“现在这种人太多了:有一定的技术水平,做过不少事,但真要写书向别人教授技术,就立马暴露出了基本功不足的问题。出错不可怕,怕的是死不认账……XXX以前批评过一些圈内人喜欢互相吹捧的不良现象。这正是一例。”

引用
例子本身其实没问题,但是注释就太随意,高手一目十行这种地方当然是忽略了,但是你考虑一个新手去读这一段呢?

……

不是我要抬杠。今天如果你是一个面向高端的书,我才不来挑这种问题。但是既然说是给初学者看,那你就这样折腾初学者?

什么叫初学者?初学者就是会拿着一两句话反复琢磨,奉为经典,如果觉得有看不明白,不会认为作者有问题,而是总先认为自己有问题,一定要找出一个合理解释的,结果走火入魔……而没想到这全缘于作者漫不经心的随便一注释。

引用
引用
l 计算需要对象,于是就产生了数据。
l 计算需要效率,于是就产生了类型。
l 计算需要控制,于是就产生了变量。

我为什么要列出这个?

爱民你还给他分析,给他建议,你还真好脾气,我是根本嗤之以鼻。其实一眼看出,他想冒充大师,弄点金玉良言出来,他根本不管讲的东西有没有道理,有没有逻辑,只是追求一个形式。这种大师语录体,不是人人能干的。没有金刚钻就不要揽瓷器活。

引用
嘿,你就继续白乎下去吧。说老实话,我也不指望啥,因为你书都出了,难道还要你跟大伙说,不行,我得把书收回去回炉重炼一下。你答应,飞思也不答应啊。

我只希望,所有作者在写书,特别是为初学者写书的时候,需记得作为引路人的责任,出版社不给认真做技术评审,你自己找人review啊。各位大牛,在写书评的时候,也不要只顾面子,忘记了有多少后进一直拿你们当指路明灯啊!

还有,你也别捧我敬业,今天已经有n个人来骂我不务正业了,还拖了爱民下水。想想也是,俺手头的项目停了4个月,不赶紧开工,还在这里陪着吃口水,真是不明事理啊。

引用
至于其他部分,如自比于丹啦,为对Opera的离奇言论辩解啦,自称喜欢情感泛滥的写作方式啦……我就不做回应了。

我倒是要劝一劝月影、winter等同志,你们这种劝和、做做老好人的态度,得到什么回应了?人家根本不领你的情。

我很实际的说,如果我一开始不是善意的话,只要揪住他几处低级错误,早就可以把他打得爬不起来,何苦还要先肯定他的技术能力和技术视野。但是他后来的所作所为,实在让我惊讶。

在今天以前,我每写一篇批评文章,都提醒自己,你自己以前也说了不少错话,也有犯低级错误被人指出很不爽的时候。

然而今天他的那些回复,已经超出了可以原谅的范围了。技术不行可以练,犯了错误可以改,但如果心胸狭窄不知反省,那可就难了。

我很真诚的问一句,月影,难道你希望你的书和这个人的书相提并论?

声明:本文欢迎转载,但转载时请保留原样,勿断章取义。

炮轰《JavaScript征途》,兼批技术社区的吹捧之风相关推荐

  1. 给本体ONT技术社区的第一封公开信-涉及到不少区块链技术知识

    给本体ONT技术社区的第一封公开信-涉及到不少区块链技术知识 共识是区块链的核心机制,在一系列的区块链的发展历史当中,PoW/PoS/BFT等系列的共识算法都在各自的应用场景发挥了不同作用.在本体的第 ...

  2. 十年中文技术社区风雨之路 今晚4位老炮畅聊过去未来

    "中国人离信息高速公路还有多远?",这个曾引发无数人遐想的问题,在1995年中关村的一块广告牌上,世人得到了一个另类的答案--"向北1500米". 这块广告牌所 ...

  3. 在技术社区以外的博文中插入代码(把代码转换到 Html 文本)

    [2019 - 01 - 27 更新]发布 CodeToHtml V 1.2 版本.下载链接: https://files.cnblogs.com/files/hoodlum1980/CodeToHt ...

  4. 影响 5000 万开发者,GitHub 与 CSDN 掌舵人对话技术社区未来

    作者 | 卢鸫翔 责编 | 屠敏 2018年6月伊始,微软宣布将以75亿美元的价格收购热门在线代码分享和协作平台GitHub.如今近5个月的时间过去,我们终于等到了官宣,微软已于上周五正式完成收购Gi ...

  5. web前端技术社区分享

    web前端技术社区分享 一.国外的前端技术网站:    1. 名称:W3C: 网址:http://www.w3.org/ 理由:前端技术的规范标准几乎都是W3C制定的  2.名称:ECMA 网址:ht ...

  6. webhub123 前端技术社区和技术交流学习网站导航

    整理了学习前端技术可以参考学习和技术交流的一些网站集合,全部收录到 webhub123 前端技术社区和技术交流学习网站导航http://​www.webhub123.com/#/home/detail ...

  7. 传智播客技术社区_播客与网络技术的未来

    传智播客技术社区 Episode zero? We recorded a test episode of The Versioning Show, and had so much fun doing ...

  8. 除了打通各类知识平台的激励系统,他们还想做国际领先的区块链技术社区

    Watson 渡鸦区块链专栏记者 谈国鹏于2004年从东南大学计算机专业毕业.毕业之后,在思科(Cisco)工作了八年.于2011年决定离职自主创业,先后做了两个创业项目,其中包括社交网络邻居网,做到 ...

  9. IoTeX 对话 高校区块链技术社区:物联网区块链的超级落地应用在哪里?

    IoTeX 对话 高校区块链技术社区:物联网区块链的超级落地应用在哪里? 原创: Raullen Chai  IoTeX社区 8月17日下午,IoTeX联合创始人Raullen做客"高校区块 ...

最新文章

  1. 聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!...
  2. python输入语句-python2 和 pyhton3 输入语句写法
  3. nagios出现乱码
  4. 插件化框架DL源码的简单解析
  5. 转:shell awk
  6. spring 文件变化监听_Spring新变化
  7. SQL逗号分隔的字段统计(摘自网络)
  8. 转载:JAVA获取时间戳,哪个更快
  9. idea项目结构树状展示_「软件项目管理入门」(26)如何做功能结构设计?
  10. python中a* b是什么意思_Python中的a+=b和a=a+b之间的区别是什么?
  11. matlab 删掉空行,在MATLAB中使用XLSWRITE:如何删除空单元格?
  12. ILSpy查看dll内容
  13. ps42k20服务器出现问题_天高客户端访问软件出现“服务器操作系统原因”问题解决方法...
  14. 计算机应用 课件 .doc,《计算机应用基础》课件36915.doc
  15. VC安装驱动详细解释
  16. 计算机二级1px等于多少厘米,px和pt换算(1px等于多少pt)
  17. csSEnet注意力网络
  18. 2-5.多进程、多线程、异步携程
  19. 学习关于Bootstrap的感悟和体会
  20. MPAndroidChart3使用详解4:BarChart(柱形图)

热门文章

  1. Rxjava 总结的比较
  2. 景观生态学原理| 5 景观动态与模拟
  3. 【原创】谈谈34后自己工作的心态
  4. java中文乱码 例子_Java中文转码的例子,用来对付乱码
  5. Android将内容复制到剪切板
  6. **海量搜索解决方案_Spring Data Solr [篇1/共3篇]*
  7. 分享网站关键词布局的小技巧
  8. 从零开始入门pwn(一):pwn的介绍以及部分前置知识
  9. 8.一键生成微信个人专属数据报告(了解你的微信社交历史)
  10. ubuntu系统codeblock汉化