孙卫琴:我为什么要写《Java面向对象编程》

 孙卫琴:我为什么要写《Java面向对象编程》

    特约作者:孙卫琴  策划 & 设计 & 制作:李大微

 当《精通Struts》《精通Hibernate》倍受欢迎后,有许多读者希望我继续写一本关于Spring技术的书,因为他们深信我写的书清晰易懂,可以帮助他们快速掌握一本新的热门技术。

 假如我有三头六臂和五个脑袋,我当然希望把Java领域的所有技术写个遍,当读者津津有味的享受我的劳动成果时,我也可以把自己的书铺成垫子,美美地在自己的功劳薄上睡大觉。

 可惜,实际情况是,我写书的速度与技术翻新的速度相比,简直就像乌龟和兔子赛跑。当《精通Struts》出版不久,Struts升级到1.2,幸亏我写书时就高瞻远瞩,在书中按照Struts1.2 API所写,使得《精通Struts》时隔三年,依然深受欢迎。另一方面,在Web框架层涌现了许多与Struts分庭抗礼的技术,比如JSF、Tapestry和Webwork等,我就来不及一一邀请它们作为我书中的主人公了。

 再说《精通Hibernate》出版不久,Hibernate就升级到3.0,而我的书是基于Hibernate2.0。我在写书时花了许多笔墨探讨对象持久化的思想,展示数据访问中各种关键的性能问题和并发问题,然后提供通用的解决方案,而Hibernate则是提供了这种解决方案的一种具体实现。按照这样的思路来写作,《精通Hibernate》不再是单纯的工具手册,而是富有思想性的阐述对象持久化层的著作,因此《精通Hibernate》具有了长久的生命力。另一方面,在对象持久化层,各种新技术风起云涌,比如Cayenne、Kodo、EasyDBO、OBJ和JDO等,我就来不及一一给它们著书立传了。

 如今的Java世界就像我们诸子百家思想荟萃的春秋战国时代,各种新的设计模式和软件包层出不穷。在开发工具方面,过去JBuilder很流行,现在Eclipse脱颖而出;在框架方面,先是重量级的EJB2.0,接着是由Hibernate和Spring主导的轻量级框架,目前吸取了各种框架优点的SUN的EJB3.0即将展露头角;在Web框架层,人们先是关注如何在Web服务器端运用象Struts这样的框架来加速软件的开发,现在人们的注意力逐渐转到了客户端,着眼于如何创建出丰富多彩的互动的客户界面,在这方面,Ajax独领风骚。清朝诗人赵翼云:“江山代有才人出,各领风骚数百年”。我想说,在Java领域,“西方时出新技术,各领风骚个把年”。

 在Java技术风云变化的表象中,不知道大家有没有发现一个最显著的共性——那就是所有的新技术都来源于西方,而我们则是被动的追随者。当一种技术还没有来得及充分消化吸收,新的技术又接踵而至。由于长期对基本技术消化不良,基础不扎实,就不可能具备独自创造的能力。我们中国人都自以为自己很聪明,为什么大多数程序员对Java技术都谈不上精通呢,个人觉得主要有以下原因:
(1)我们在智商上并没有先天的优势,当然也没有劣势。每个国家都有聪明人和笨蛋,彼此彼此。
(2)我们在实际开发项目时,只关注如何运用现成的工具软件和第三方软件包来完成项目,多数人对那些工具软件和第三方软件包本身的构成没有兴趣。投其说好,计算机书籍市场上介绍如何使用工具软件的书占多数。
(3)西方的新技术出现后,它是用英语来描述的,经过翻译传到国内,由于翻译水平参次不齐,使得本来简洁明了的思想变得含混晦涩,甚至让人误解。象侯捷、熊节和潘爱民这样的优秀的翻译家和作家为数不多。
(4)在我们技术领域,受商业化的影响,有浮躁的气息。技术商业广告误导我们,只要你能口若悬河的谈论那些最新出现的技术名词(千篇一律是几个英文单词的缩写),你就会看上去象把握了技术潮流。

 当我在创作《Tomcat》《精通Struts》《精通Hibernate》时,翻阅了不少英文书籍。我仔细阅读了Hibernate的创始人Gavid King的《Hibernate in action》,我深刻的意识到这位大师之所以能写出这样的软件,得益于扎实的Java技术功底。Hibernate建立在一系列的Java基础知识之上,要学习Hibernate,你必须熟悉Java对象模型、对象的生命周期、缓存、不可变类与可变类的概念,以及Java集合框架等。Hibernate本身运用了诸如工厂模式等优秀的设计模式。

 当我写完《精通Hibernate》,思考下一步写什么的时候,出发点是能写一本让读者和自己都一劳永逸的书,最好是一本抵得上十本的书。我想到专门写一本融汇了面向对象思想、Java语法、虚拟机运行原理、设计模式和性能优化的Java书。如果读者掌握了这些内容,再去掌握新的Java框架和软件包就会驾轻就熟,甚至无师自通。对此,我曾经在JavaThinker论坛上发了一个贴子:“我是不是有必要写一本Java基础编程方面的书? ”,许多热心的网友参与了讨论,网址如下:
http://www.javathinker.org/bbs/topic.jsp?db=7&topic=3

 网友tywo45为我想得很周到,他说:“我上两天心里还在捉磨着孙小姐会不会写一本J2SE方面的书。没想到今天就看到这个帖子了(挺巧合的)。Java书籍我看的比较多,好一点的有《Java2核心编程》影印第六版《Thinking in Java》中文版第二版。其它的书感觉上有点杂而不系统,就我个人而言对我帮助最大的是《Java2核心编程》影印版清华大学出版的,现在国外已有第七版的了。所以如果要出J2SE方面的书的话,就应该效仿这本书,讲深刻一点。让人真正认识编译器的内部的一些工作,而不是只讲一些语法,因为语法已经不大成为问题了。还有就是注重一些编程思想及思路。如果真要出版一本好一点的J2SE方面的书,估计难度比你前面四本书要大!”。

 汇总了众多网友的意见,再结合我个人的想法,我开始满怀信心的创作《Java面向对象编程》。tywo45真知灼见,预计写这本书难度较大。确实如此,为了写出一本富于思想性,具有灵魂的书,我动用了所有的思维细胞。我必须首先自己一针见血的抓住面向对象思想的本质,然后再考虑如何用简单易懂的语言和贴切的例子来阐述它们。而且我必须把Java的各个层面:面向对象思想、Java语法、虚拟机运行原理、设计模式和性能优化等有机的融合在一起。此外,我在增加书的趣味性方面下了一番功夫,让读者通过一些形象的例子和图片来轻松的掌握知识。

 有一位好心的网友曾建议我翻译英文书,他说“译好书岂不是更省时间?也不会被人说'抄袭' ”。但我还是喜欢自己写,因为这才能更大的发挥我在创作方面的才能:提纲挈领的把握某种技术,再按照咱们中国人的思维去演绎它。我不承认自己“抄袭”了什么东西,但我承认我创作的性质是:把西方的Java技术进行地道的中文本地化,帮助程序员们透彻的消化吸收Java技术,这是咱们将来可能会自己有所发明创造的基础。在这方面,《Java与模式》的作者阎宏开创了先河,他把设计模式与中国古典文化巧妙的揉合到一起,使本书成为脍炙人口的散发着独特的思想火化的作品。 【点此参与讨论】

2006/6/19
孙卫琴

 
    
 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值