﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-goldrain-文章分类-转载</title><link>http://www.blogjava.net/goldrain/category/2297.html</link><description>面向对象，面向属性，面向业务</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:32:07 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:32:07 GMT</pubDate><ttl>60</ttl><item><title>[转载]与Java相关的四十个名字</title><link>http://www.blogjava.net/goldrain/articles/11385.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Sun, 28 Aug 2005 12:04:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/articles/11385.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/11385.html</wfw:comment><comments>http://www.blogjava.net/goldrain/articles/11385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/11385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/11385.html</trackback:ping><description><![CDATA[<P>·[转载]与Java相关的四十个名字&nbsp;&nbsp;&nbsp;&nbsp; -|brooks 发表于 2005-8-20 16:17:00&nbsp; <BR>&nbsp;</P>
<P>原文地址<BR>与Java相关的四十个名字 <BR>十大事件</P>
<P>1990－1994：Java缘起<BR>文/孟岩</P>
<P>Larry Wall说，优秀程序员应有的三个特点:懒惰、急躁和傲慢。Java就是诞生在一群懒惰、急躁而傲慢的程序天才之中。<BR>1990年12月，Sun的工程师Patrick Naughton被当时糟糕的Sun C++工具折磨的快疯了。他大声抱怨，并威胁要离开Sun转投当时在Steve Jobs领导之下的NeXT公司。领导层为了留住他，给他一个机会，启动了一个叫做Stealth（秘密行动）的项目。随着James Gosling等人的加入，这个项目更名为Green。其目标是使用C++为嵌入式设备开发一种新的基础平台技术，James Gosling本人负责开发一个SGML编辑器。正如人们事后分析的那样，这位天才的程序员太懒惰，所以没有把C++学好，开发中碰了一头包;太急躁——所以不愿意停下来读读Scott Meyers的新书《Effective C++》;太傲慢——所以轻易地决定开发一中新的编程语言。他把这种语言命名为C++++--，意思是C++“加上一些好东西，减去一些坏东西”。显然这个糟糕的名字不可能长命百岁，很快这种颇受同伴喜爱的小语言被命名为Oak。<BR>到了1992年9月，Oak语言连同Green OS和一些应用程序一起发布在称做Start 7的小设备上，从而使之有了第一次精彩的亮相。随后，Sun开了一家名为FirstPerson的公司，整个团队被转移到这家公司里研发机顶盒，以投标时代华纳公司的一个项目。这帮天才被技术狂热所鼓舞，开发出了一个高交互性的设备，结果没想到时代华纳公司和有线电视服务商并不愿意用户拥有那么大的控制权，从而在竞标之战中败给了SGI。Oak的锋芒之锐，竟然把客户都给吓懵了。Sun沮丧地关闭了FirstPerson，召回了整个团队。事实证明，传统行业中那些脑满肥肠的保守主义者是腐朽没落的。回去！回到激情澎湃的IT产业，抓住互联网的大潮，这才是出路！1994年，Oak被命名为Java，针对互联网的新一轮开发如火如荼，一切已经就绪，熔岩在地下奔流，火山即将喷发。</P>
<P><BR>1995: Java香浓世界<BR>文/马伟</P>
<P>1995年，Sun正式对外公布了Java，并且发布了JDK 1.0。这种外形酷似C++，却包含一颗Smalltalk般纯洁的面向对象之心的全新程序设计语言及其平台，几乎在一夜之间就成为软件产业的新宠儿。Java当时仅仅被用来为网站制作一些动态应用,诸如动画图片之类，但这仍然引起了很多Web开发者们的注意，他们非常渴望有一种安全的语言，可以在静态的HTML网页上制作动画图片。Sun最终把Java集成到NetScape浏览器。同时因为它具有“只写一次，随处运行”的特性，而引起了很多开发者的注意，他们可以再也不用为了使程序能够在不同型号的硬件上运行而耗费大量的时间来编译代码了。<BR>当时的Web浏览器的出现也为Java的出现起到了很好的推动作用，通过Java和Web浏览器的结合，人们似乎看到了什么，有人甚至预言PC将在一两年内退出历史的舞台，取而代之的是基于Java的浏览器应用程序，通过网络计算设备来进行应用。Java的出现为当时的软件产业带来了无限的遐想。</P>
<P><BR>1996：Java大跃进，盟主地位就此定<BR>文/马伟</P>
<P>SUN在1996年一开始首先成立了JavaSoft组织，并在1月23日正式发布自己的Java 1.0，作为20世纪业界出现的最重要的技术之一，Java引起了编程世界的革命。直到现在，Java仍然是互联网上最流行的语言。<BR>在Sun正式发布Java 1.0之后，Java这门新生的语言就拥有了自己的会议——JavaOne，这次会议初试啼音就吸引了600多名参与者。除了拥有这么多的积极参与者来进行Java的开发之外，各大知名公司也纷纷向Sun申请Java的许可。一时间，NetScape、惠普、IBM、Oralce、Sybase甚至当时刚推出Windows 95的微软都是Java的追随者。<BR>Java的应用就像是世界上的顶级玩家们组成的一个公开联盟，告诉全世界我们大家就是都在用着Java。也正是因为如此，Java也找到了自己的归宿。现在的J2EE已经成为中大型企业级应用的标准，成为承接数据库和Web之间的一个重要桥梁。<BR>当年Java的机会实在太多了，以至于很难知道到底该做什么。最终Java在应用服务器市场获得了难以取代的地位，也确定了J2EE的发展方向，并且仍将延续下去。</P>
<P><BR>1997-2001:&nbsp; 微软与Sun的Java官司<BR>文/孟岩</P>
<P>Java诞生的1995年，正是微软在软件产业地位达到巅峰的时代，Windows 95发布时的风光场面给人们留下的深刻印象至今难忘。尽管如此，作为最卓越的技术领袖，比尔?盖茨仍然敏锐地注意到Java。当他了解了Java的一些细节之后，给予了这样的评价:“Java是很长时间以来最优秀的程序设计语言。”基于此，微软于1996年3月申请并获得了Java许可证。微软对于Java的这一热情态度在当时大大提高了人们对Java的兴趣和信心，但也有不少人担心微软会依靠自己强大的影响力在标准之外另立标准，从而破坏Java的纯洁性。<BR>果然，从1997年发布Visual J++的第一个版本开始，微软就开始在Java中掺入自己的私有扩展。这毫无疑问引起Sun的高度重视。1997年10月，Sun向美国加州地方法院起诉微软公司违反两公司就微软使用Java技术所签定的合同，指控微软公司在自己的Java产品中做了“不恰当的修改”，违反了合同中承诺向用户提供Java兼容产品的条款。这一官司旷日持久，直到2001年1月双方达成和解，微软将继续提供采用Sun开发的Java技术的现有产品（包括测试版）。不过，Sun有限制地仅对包括Java 1.1.4的微软产品提供许可。到了2001年7月，微软公布新版的Windows XP将不再支持Sun的JVM，并且推出了.NET平台与Java分庭抗礼。<BR>现在回过头去看，当时的这一场官司对Java世界产生了深远的影响。如果没有这一场官司，也许很多Java程序员都在使用Visual J++，基于WFC开发Windows客户端程序，同时不得不面对被两个不同的事实标准所分裂的Java世界。</P>
<P><BR>1998：Java 2平台发布<BR>文/陶文</P>
<P>1998年，Java 2平台正式发布。经过了三年时间的发展、热热闹闹的攻关宣传、红红火火的众厂商的热情参与，Sun终于知道Java适合干什么了。对比Java刚发明时的技术定位，与Java的戏剧性触“网”的那段历史，Java 2平台的发布可真算得上是有的放矢了。根据官方的文档，Java 2是Sun意识到“one size doesn’t fit all”之后，把最初的Java技术打包成三个版本的产物，也就是著名的J2ME、J2SE、J2EE。<BR>之所以说Java自从Java 2平台发布之后，进入了现代。那是因为之前的历史怎么看来都和现在程序员日常开发使用的技术无什么关系，比如Applet，已经很少有人使用了。Java 2之后的历史就不一样了，至少人们在推崇轻量级开发，猛批EJB时还不时会引用J2EE这个词是如何诞生的。而Java 2的三大版本中，除了J2EE得到了长足发展和广泛使用之外，J2ME也在手机市场上取得了遍地开花的结果。相较之下，J2SE难免落寞，只剩SWT这个血统不纯的家伙在Rich Client回归的时代吸引着人们的眼球了。无论今天看来当时的Java 2有多么的不成熟，至少经过市场和时间的检验，Java 2规划出来的三大方向把Java技术指向了光明的方向是勿庸置疑的。</P>
<P><BR>1998：JCP成立并正式运作，<BR>Java开源社群开始蓬勃发展<BR>文/黄海波</P>
<P>1998年，JCP组织成立，并且开始把握Java的发展方向。JCP组织的开放性，不但使得所有对Java感兴趣的商业公司可以参与Java的发展，更重要的是JCP允许个人、非盈利组织、学校等加入，这就给Java带来了巨大的活力。随之兴起的Java开源运动的最大贡献是实现和鼓励了知识共享，在众多热情的开源程序员们的努力和分享下，很多原先只被商业公司掌握的技术、思想和产品可以被所有需要的开发人员免费或者以较低的价格获得使用权, 并通过开放源代码更容易的获得反馈和改进意见从而进一步演化发展。我们知道，所谓知识不是孤立发展认知，而是人们的经验，认识是思考交流和积累的产物。而开源运动所带来的开放、反馈、交流的风气正是符合人类社会知识形成和发展的规律。<BR>开源运动起源于西方的发达国家，有其现实背景和文化根源。1990年代可以说是IT产业的一个黄金时代。信息时代的兴起对IT人员，特别是软件人员有着巨大的需求。而软件开发又是一种类似艺术创作的脑力活动，和所有的艺术家、作家们一样，在作品打上自己的印记并流传在世界上是每一个创作人员的梦想。互联网时代下的高收入的舒适生活，早九晚五的编写公司的代码并不能满足很多有激情的软件开发人员的梦想，再加上西方传统的基督教文化中十分推崇的分享和交流，开源的出现和兴起也就水到渠成了。今天，开源运动已经不仅仅是一些个人天才程序员们的游乐园地，而是发展成为一项开源软件产业。</P>
<P><BR>1998：WebLogic打开J2EE的魔匣<BR>文/霍泰稳</P>
<P>Java语言的出现使得互联网络有了良好的交互性能，但这些很“酷”的技术仅被人们认为是一些小花招，它还无法消除企业级用户对它的怀疑。1998年，BEA公司宣布收购WebLogic公司，并接着推出由Sun公司第一个授权使用J2EE许可证的WebLogic Server应用服务器，这个Java版的AppServer一推出就引起业界极大的兴趣。WebLoigc Server以其对标准的支持、强悍的运算能力和安全的架构设计等特性也很快征服了那些怀疑J2EE应用的人们。推出市场后不到一年，WebLogic Server就成为业内第一Java应用服务器。<BR>这里我们援引一些当时著名咨询公司的调查数据来说明问题，“在IDC的报告中，BEA在应用服务器和交易服务器领域市场份额第一；在Gartner的报告中，BEA WebLogic Server拥有业内最广泛的EJB应用安装基础；在Giga Group的报告中，BEA WebLogic Server市场份额占32%”。<BR>因为应用服务器市场极大的发展潜力，在WebLogic Server之后，其它的很多公司也推出了自己的AppServer，如IBM的WebSphere、Sun公司的iPlanet等，逐渐地应用服务器取代了传统意义上的各类中间件，成为企业应用的基础平台。应用服务器的出现使得Java有了真正意义上的发展。<BR>&nbsp;</P>
<P>2002-2004: Sun与微软的法律碰撞最终以喜剧收场<BR>文/恶魔</P>
<P>2003年4月2 日，Sun与微软达成16亿美元的法律和解。如果不是晚了一天，许多人会以为这是一个在4月1日愚人节开的玩笑。尽管当时所有人都像是看到“太阳从西边出来了”那样张大了嘴巴，但这的确是事实。<BR>根据两家公司达成的版权协议，双方会为采用对方的技术而支付专利费用，微软向Sun提前支付3.5亿美元使用费，Sun则承诺，如果Sun集成微软的某些技术，也会向微软付款。<BR>毫无疑问，“私下了结”的方式对双方而言都是最好的结果。就在协议签署的当天，在美国旧金山由Sun和微软为“抛弃十年恩怨、携手合作“举行的新闻发布会上，尽管比尔?盖茨没有到场，但这并没有防碍现场看起来异常轻松的气氛。麦克尼利和鲍尔默各自穿了一件密歇根州底特律“Red Wings”曲棍球队的运动服，并谈及了一起在哈佛大学读书的经历，麦克尼利还说:“当时我们两人是非常要好的朋友，当然我们也有吵架的时候。”人与人当然可能成为终生的知己，但是公司与公司之间有的只能是利益上的分分合合。</P>
<P><BR>2000-2004: JBoss和Eclipse<BR>——Java开源软件的王者<BR>文/莫映</P>
<P>Java和开源几乎就是天生的一对，这可以从无比兴盛繁荣的Java开源软件社区得到佐证。目前最有影响力的Java开源软件项目，要数JBoss和Eclipse。可以说，几乎所有的Java开发人员都获多或少的听到过或接触和使用过它们。前者是目前最优秀、应用最为广泛的企业级开源J2EE应用服务器，后者是功能完全可以替代商业产品的Java IDE。二者的覆盖功能之全、支持工具之广、子项目之多，几乎可以仅凭借它俩来完成企业应用的开发构建到部署实施的全过程，而软件开发者和客户也都可以最大程度上享受高质量，高可靠Java开源软件所带来的低成本优势。<BR>JBoss和Eclipse的巨大成功，几乎令各自领域的商用竞争者抓狂，其中BEA的WebLogic和IBM的WebSphere在商业利润上受到JBoss的巨大侵蚀，而Borland的JBuilder、JetBrains的IDEA等诸多优秀的商用开发工具也不得不面对Eclipse独大的现实。JBoss的CEO兼创始人 Marc Fleury曾直言不讳地表示，希望占据市场主导地位。“我们希望打败IBM，成为中间件领域里最大的厂商。”JBoss在4.0以前还只是以一个Group存在，盈利手段主要靠服务和销售文档。但在最近，JBoss已经发展成为一个有限公司，并吸纳多家风险投资，专注于获取利润为目标之一的第二代开源软件模式（JBoss自己称为“Professional Open Source”）的创新和运营。这区别于以理论研究为爱好的学院型开源或大公司为基础的非盈利组织开源，如Linux和Apache。当然JBoss的这种运营方式势必会导致更多的代码控制和专有修改权，但按JBoss的说法是这样更能获得企业客户的信赖。JBoss的这种模式是否能获得成功还要我们拭目以待。<BR>不管JBoss和Eclipse的未来发展如何，JBoss和Eclipse的成功已经让我们看到了Java开源软件的威力，祝愿它们一路走好。</P>
<P><BR>2004：Java 5.0<BR>文/莫映</P>
<P>2004年9月30日，代号为“Tiger”，研发历时近三年的J2SE 5.0发布正式版本，这是Java平台历来发布版本中改动面波及最大的一次。<BR>纵观Tiger，“Ease of development”是其核心主题，这一点着重体现于语言特性上的改进，这在很大程度上，简化了开发人员日常的编程任务，以往一些琐碎的手工劳动都代之以轻松自然，而又安全可靠的自动化实现。其中的注解功能，以及随之而来的声明式编程，还对构筑于J2SE 5.0之上的J2EE 5.0产生了巨大影响。尽管Tiger在语言特性上做了很大的动作，但作为Java技术的基础支撑，这些改动都是深思熟虑的结果。<BR>Tiger发布至今也有大半年了，那么Sun又是如何规划J2SE的未来蓝图的呢？据悉，J2SE的下两个版本分别是代号为“Mustang”的J2SE 6.0和代号为“Dolphin”的J2SE 7.0，预计Mustang将于明年发布。在吸取了Tiger研发周期过长的教训之后，Sun副总裁Graham Hamilton表示，Mustang的发布周期将不会那么长。并且，Sun还将“Becoming more open” 作为Mustang的主题之一。未来JCP对Java技术的影响将会愈加深入，而整个研发过程也将会愈加透明。Mustang在正式发布前的内部版本也会陆续见诸于众，如此，广大Java开发者便可以更加及时的了解到Java发展的最新情况。在语言层面上的扩展依然会比较谨慎，比如像AOP这样的当下热门技术，依然不太可能会见诸其中。据Hamilton所言，一个有可能被引入的语法特性被称作“friends”import机制，它将使由多个包组成的大型项目变得易于管理。</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>十大人物</P>
<P>James Gosling : Java之父<BR>文/陶文</P>
<P>作为Java之父，James Gosling的名字可谓是耳熟能详。当人们评论一种编程语言时，总喜欢捎带着把下蛋的母鸡一起带上。Java做为中国的编程语言学习者餐桌上有限的那么几样餐点中的流行款式，自然是让James Gosling风光不已。虽然James Gosling现在已经不是领导Java发展潮流的领军人物了，做为Sun的开发者产品组的CTO，怎么算来也是身居高位了，俗事缠身吧，但是这并不妨碍其对于Java一如既往的爱护，表达着各式各样鲜明的观点，引发一场又一场的争论。<BR>James Gosling是很爱Java的——是啊，哪有当父母的不爱自己的孩子的呢。James Gosling也是很爱Sun的——是啊，哪有当领导的不爱自己的公司的呢。于是我们在批评.NET的安全性的队伍前头，在褒扬Java性能的队伍前头，在抨击SWT开倒车的队伍前头，在给NetBeans大唱赞歌的队伍前头，我们都看到了James Gosling的身影。无论对错、偏见或者固执，至少说明了Gosling的鲜明个性丝毫没有受到年龄的影响。也许也只有这种天才而偏执的人物才能创造出Java这般伟大的语言来吧。<BR>&nbsp;</P>
<P>Bill Joy : 软件业的爱迪生<BR>文/徐昊</P>
<P>Joy生于1954年，1982年与Vinod Khosla, Scott McNealy和Andy Bechtolsheim一起创建了Sun Microsystems，并从那时起担任首席科学家，直到2003年离开。他是一位令人崇敬的软件天才，他在软件和硬件的历史上留下了无数令人仰止的传奇。<BR>在上个世纪80年代早期，DARPA与BBN达成协议，准备将Vinton Cerf和Bob Kahn设计的TCP/IP协议添加到Berkeley UNIX中。Bill Joy被委派来完成这项任务，然而他却拒绝将BBN的TCP/IP协议栈添加到BSD中，因为在他的眼中BBN的TCP/IP实现还远不够好，于是他就写了一个高性能的TCP/IP协议栈。John Gage回忆道，“BBN和DARPA签署了巨额合同来实现TCP/IP协议，然而他们的员工所编写的代码远没有一个研究生所做的好。于是他们邀请Bill Joy参加他们的一个会议，这位研究生穿着一件T-Shirt就出现了，他们询问他，‘你是如何做到的呢？’Bill回答说，‘这是非常简单的一件事，你读一下协议然后就可以编码了’”。除了TCP/IP协议，基于分页的虚拟内存系统最早也是由Bill Joy添加到Berkeley UNIX内核当中的。同时他还是vi、csh、早期Pascal编译器的作者。<BR>关于Bill Joy惊人的软件才能流传最广的一个传奇是，据说他在上研究生的时候，想看看自己能不能写一个操作系统出来，于是就在三天里写了一个非常简陋，但是可以使用的Unix系统, 传说就是BSD的前身。虽然如此夸张的才情令人难以置信，但是考虑到主角是Bill Joy，还是有一定的可信度的。Bill Joy硕士毕业之后，决定到工业界发展，于是就到了当时只有一间办公室的Sun, 他作为主要设计者参与了SPARC微处理器的设计，负责设计最为关键的一部分电路。这样兼精软硬件的天才实在是让人不得不佩服啊。1995年，Sun发布了轰动世界的Java语言。当然，Bill Joy对Java也作出了不少的贡献，首先是JINI——一种针对分布式服务的基础连接技术。任何可以内嵌JVM的电子设备都可以通过JINI相互连接；JXTA是基于Java的P2P协议，允许互联网上的软件进行点对点交流和协作。<BR>这个其貌不扬的瘦高个，有着凌乱的亚麻色头发，被《财富》杂志誉为“网络时代的爱迪生”的技术狂人，在短短的二十年间，创造了无数令人心动的软件。在MIT的BBS上曾有一个帖子，说微软电话面试有一道题，问“Who do you think is the best coder, and why?”虽然回复的帖子中大家都声明列举的best coder排名不分先后，然而大多数人仍把Bill Joy列在第一位，或许可以从一个侧面验证Bill Joy在广大Programmer心目中的地位吧。</P>
<P><BR>Joshua Bloch :&nbsp; Java 2 元勋<BR>文/莫映</P>
<P>早在1996年，适逢Java刚刚崭露头角，年内好事连连。先是1月份发布JDK 1.0，然后是5月底在旧金山召开首届JavaOne大会，年末又是JDK 1.1紧跟其后。正是在Java技术如火如荼、大展拳脚的背景之下，Joshua Bloch来到了Sun，开始了他带领Java社区步入“迦南美地”的漫长历程。 <BR>很快，他被从安全组调入核心平台组，从事底层API设计。至此以后，每逢JDK的重大版本发布，总能在其中见到Joshua的“妙笔”。JDK 1.1中的java.math、1.4中的assertions，还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的Jolt大奖。到了J2SE 5.0研发阶段，身为平台组构架师的Joshua接掌了Tiger大旗，其核心地位已然无人可以替代。作为Tiger的代言人和领路人，没有谁比Joshua更清楚Tiger。相信大家一定还记得Joshua当年仿效英国诗人William Blake所做的咏Tiger诗八首，优雅的笔调，透出大师深厚底蕴的同时，也道出了Tiger的几大重要特性，这些特性是自JDK 1.1引入Inner Class以来，Java最大的语法改进。<BR>Java风雨十年，从JDK 1.1到J2SE 5.0，Joshua实在功不可没。难怪有人戏言，假如将James Gosling比作Java之父，那么Joshua就是一手将Java “哺育”成人的Java之母。Joshua对Java的贡献还不止于JDK，提起他的大作《Effective Java》（Addison Wesley, 2001），相信Java粉丝们一定耳熟能详。该书荣膺2002年度Jolt大奖，且备受James Gosling推崇。书中57条颇具实用价值的经验规则，来自Joshua多年来在JDK开发工作中，尤其是Collections Framework设计中的实践心得，各个有理有据，剖析深入，也足见其深厚功力。该书对Java社群的影响，犹如C++社群中的《Effective C++》。Joshua对JCP的贡献也不小。他是JSR201和JSR175的领导者，前者包含了Tiger四大语言特性，后者则为Java提供了元数据支持。此外，他还是JSR166的发起人之一（该JSR由Doug Lea领导），并且是许多其他JSR的参与者。Joshua目前是JCP为数不多的几个执行委员会成员之一。<BR>Joshua Bloch给人的印象是谦逊平和，行事低调而不喜抛头露面，一个典型的技术人员和实干家。不过即便如此，也丝毫不会减弱他对Java技术的卓越贡献和对Java社区的绝对影响力。有人说，如果他能更彰显一些，就很有可能成为Java开发者中的领军人物，就有如Don Box之于微软社群。<BR>2004年7月初，就在Tiger发布在即之时，就在Jusha Bloch刚刚荣获Sun“杰出工程师（Distinguished Engineer）”的称号之时，他突然离开Sun而去了正值发展态势迅猛的Google。当他离开Sun的消息在TSS发布之后，众多拥趸表达了怀念与不舍之情。一年过去了，我们还没有获知Joshua的任何近闻，似乎又是他行事低调的一贯作风所致，不知他在Google状况如何。希望Joshua依然能继续“摩西未尽的事业”，以他的影响力推动Java社群继续前行。据称，《Effective Java》的下一版会加入Java 5.0的部分，让我们翘首以待吧。</P>
<P><BR>Bruce Eckel : 功勋卓著的机会主义分子<BR>文/孟岩</P>
<P>Bruce Eckel原本是一位普通的汇编程序员。不知道是什么因缘际会，他转行去写计算机技术图书，却在此大红大紫。他成功的秘诀不外乎两点：超人的表达能力和捕捉机会的能力。他最早的一本书是1990年代初期的《C++ Inside &amp; Out》，随后，在1995年他写出了改变自己命运的《Thinking in C++》。如果说这本书充分表现了他作为优秀技术作家的一面，那么随后他写作《Thinking in Java》并因此步入顶级技术作家行列，则体现了他作为优秀的机会主义分子善于捕捉机会的另一面。写作中擅长举浅显直接的小例子来说明问题，语言生动，娓娓道来，特别适合于缺乏实践经验的初学者。因此《Thinking in Java》俨然成为天字第一号的Java教科书，对Java的普及与发展发挥着不可忽略的作用。不过公允地说，Bruce Eckel的书欠深刻。比如在“Thinking in…”系列中对设计模式的解说就有失大师水准。这一方面是因为书的定位非常清晰，另一方面也是因为Bruce太过分心赶潮流，未能深入之故。TIJ之后，他预言Python将火，就匆匆跑去写了半本《Thinking in Python》。后来Python并未如期而旺，于是他也就把书稿撂在那里不过问了，机会主义的一面暴露无遗。我们也可以善意的猜测一下，他的下一个投机对象会是什么呢？Ruby？.NET？MDA？总之，是什么我都不奇怪。</P>
<P><BR>Rickard Oberg :J2EE奇才<BR>文/熊节</P>
<P>Oberg的作品很多，流行的代码生成工具XDoclet和MVC框架WebWork都出自他的手笔。这两个框架有一个共同的特点，即它们的功能虽然简单，但设计都非常优雅灵活，能够很方便地扩展新功能甚至移植到新环境下使用。优雅的设计源自Oberg的过人才华，简单的功能则折射出他玩世不恭的人生态度。正是这两种特质的融合，才造就了这个不世出的奇才。<BR>1999年，JDK 1.3发布，其中带来了一个重要的新特性：动态代理（Dynamic Proxy）。当所有人都还在对这项新技术的用途感到迷惑时，Oberg发现用它便可以轻松攻克EJB容器实现中的一些难关。这一发现的产物就是一本《Mastering RMI》，以及大名鼎鼎的JBoss应用服务器。但Oberg很快又让世人见识了他的玩世不恭。由于和总经理Marc Fleury在经营理念上不合，Oberg抱怨“法国的天空总让我感到压抑”，甩手离开了自己一手打造的JBoss。此后的几年里，他和老友Hani Suleiman不断地对JBoss的“专业开源”模式和Marc Fleury的商人味道冷嘲热讽，让众人为他的孩子气扼腕叹息。<BR>2002年10月，微软推出Petstore示例应用的.NET版本，并宣称其性能比Java Petstore高出数倍。正是Oberg深入分析这个示例应用的源代码，在第一时间指出它大量运用了SQL Server专有的特性，性能对比根本不具参考价值。后来Oberg又先后关注了AOP和IoC容器，两者都成为了J2EE架构的新宠。<BR>&nbsp;</P>
<P>Doug Lea : 世界上对Java影响力最大的个人<BR>文/KIT</P>
<P>如果IT的历史，是以人为主体串接起来的话，那么肯定少不了Doug Lea。这个鼻梁挂着眼镜，留着德王威廉二世的胡子，脸上永远挂着谦逊腼腆笑容，服务于纽约州立大学Oswego分校计算器科学系的老大爷。<BR>说他是这个世界上对Java影响力最大的个人，一点也不为过。因为两次Java历史上的大变革，他都间接或直接的扮演了举足轻重的脚色。一次是由JDK 1.1到JDK 1.2，JDK1.2很重要的一项新创举就是Collections，其Collection的概念可以说承袭自Doug Lea于1995年发布的第一个被广泛应用的collections；一次是2004年所推出的Tiger。Tiger广纳了15项JSRs(Java Specification Requests)的语法及标准，其中一项便是JSR-166。JSR-166是来自于Doug编写的util.concurrent包。<BR>值得一提的是: Doug Lea也是JCP (Java小区项目)中的一员。<BR>Doug是一个无私的人，他深知分享知识和分享苹果是不一样的，苹果会越分越少，而自己的知识并不会因为给了别人就减少了，知识的分享更能激荡出不一样的火花。《Effective J***A》这本Java经典之作的作者Joshua Blosh便在书中特别感谢Doug是此书中许多构想的共鸣板，感谢Doug大方分享丰富而又宝贵的知识。这位并发编程的大师级人物的下一步，将会带给Java怎样的冲击，不禁令人屏息以待。</P>
<P><BR>Scott McNealy :SUN十年来的掌舵者<BR>文/KIT</P>
<P>McNealy，Sun的CEO、总裁兼董事长。他曾经狂傲的说:“摧毁微软是我们每个人的任务。”这位英勇的硅谷英雄，似乎带头起义，试图组织一个反微软阵线联盟，以对抗微软这股庞大的托拉斯恶势力。他时常口出惊人之语，在公开场合大肆的批评微软，并曾经说微软的.NET是.NOT。<BR>Scott McNealy先后毕业于哈佛大学及史丹佛大学，分别持有经济学学士学位及企管硕士。1982年MBA毕业的他和三个同学共同合伙创建了Sun，并于1984年成为Sun的执行官。“要么吞了别人，不然就被别人吞了”是Scott McNealy的名言录之一。他擅长以信念带动员工，鼓舞士气。极富自信的他，对于认定的事，总是坚持自己的想法，因此有人形容他是一个刚愎自用的决策者。<BR>身为Sun这艘船的掌舵者，Scott McNealy能够看多远，Sun就能走多远。Scott McNealy认为将来软件界是一个只有服务，没有产品的世代。他希望打造出Sun不是一个纯靠硬件赚钱的公司。从Open Source到Open Solaris，Sun希望可以成为提供整合性解决方案的服务厂商。Solaris 10 + UltraSPARC是否可以像Scott McNealy希望的是下一匹世纪黑马呢？Sun是否能以股价来证明华尔街分析师及普罗大众的诽短流长？Scott McNealy是否能带领着Sun成为继微软之后的下一个巨人，一场场IT界的争霸战值得我们拭目以待。</P>
<P><BR>Rod Johnson : 用一本书改变了Java世界的人<BR>文/ 刘铁锋</P>
<P>Rod在悉尼大学不仅获得了计算机学位，同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前，他还获得了音乐学的博士学位。有着相当丰富的C/C++技术背景的Rod早在1996年就开始了对Java服务器端技术的研究。他是一个在保险、电子商务和金融行业有着丰富经验的技术顾问，同时也是JSR-154（Servlet 2.4）和JDO 2.0的规范专家、JCP的积极成员。<BR>真正引起了人们的注意的，是在2002年Rod Johnson根据多年经验撰写的《Expert One-on-One J2EE Design and Development》。其中对正统J2EE架构的臃肿、低效的质疑，引发了人们对正统J2EE的反思。这本书也体现了Rod Johnson对技术的态度，技术的选择应该基于实证或是自身的经验，而不是任何形式的偶像崇拜或者门户之见。正是这本书真正地改变了Java世界。基于这本书的代码，Rod Johnson创建了轻量级的容器Spring。Spring的出现，使得正统J2EE架构一统天下的局面被打破。基于Struts+Hibernate+Spring的J2EE架构也逐渐得到人们的认可，甚至在大型的项目架构中也逐渐开始应用。<BR>Rod Johnson的新作《Expert One-on-one J2EE Development without JEB》则更让人吃惊，单单“Without EJB”一词就会让大多数J2EE架构师大跌眼镜了。不过Rod Johnson可能仅仅是想通过“Without EJB”一词表明应该放开门户之见。这也是Rod Johnson一贯的作风，。也许正是这种思想，促使得Rod Johnson创建了Spring，真正改变了Java世界。</P>
<P>&nbsp;</P>
<P>Alan Kay :Java的精神先锋<BR>文/徐昊</P>
<P>Sun的官方Java教材中有一句话，说Java是“C++的语法与Smalltalk语义的结合”。而Smalltalk的创造者就是Alan Kay。<BR>Alan Kay于1970年加入Xerox公司的Palo Alto研究中心。早在70年代初期，Alan Kay等人开发了世界上第二个面向对象语言Smalltalk，因此，Alan Kay被誉为Smalltalk之父。2003年，Alan Key因为在面向对象程序设计上的杰出贡献，获得了有计算机界的诺贝尔奖之称的ACM Turing Award。<BR>Alan Kay成名于Smapltalk和OOP，而Java虽然在语言上类似于C，但是在语义上非常接近Smalltalk，很多Java中的设计思想在Alan Kay的文献中找到根源，也有些人将Alan Kay尊为Java思想的先驱。不过遗憾的是似乎Alan Kay老先生对Java并不买账，反倒攻击说Java是存在致命缺陷的编程语言，Java的成功不是由于Java本身的内在价值，而是其商业化的成功。Alan Kay欣赏的是Lisp，他认为Lisp是软件的麦克斯韦方程，其中的许多想法是软件工程和计算机科学的一部分。看来拥有Alan Kay这样一位重量级的Java先驱仍是我们Java一厢情愿的单恋吧。</P>
<P>&nbsp;</P>
<P>Kent Beck : 领导的敏捷潮<BR>文：刘铁锋</P>
<P>Beck全家似乎都弥漫着技术的味道。生长在硅谷, 有着一个对无线电痴迷的祖父，以及一个电器工程师父亲。从小就引导Kent Beck成为了业余无线电爱好者。<BR>在俄勒冈州大学读本科期间，Kent Beck就开始研究起模式。然而在他最终拿到计算机学位之前，他却是在计算机和音乐中交替学习。似乎Java大师都能够有这样的能耐，另一Java大牛Rod Johnson同样也拥有音乐学的博士学位。<BR>Kent Beck一直倡导软件开发的模式定义。早在1993年，他就和Grady Booch（UML之父）发起了一个团队进行这个方面的研究。虽然著有了《Smalltalk Best Practice Patterns》一书，但这可能并不是Kent Beck最大的贡献。他于1996年在DaimlerChrysler启动的关于软件开发的项目，才真正地影响后来的软件开发。这次的杰作就是XP（极限编程）的方法学。<BR>和软件开发大师Martin Fowler合著的《Planning Extreme Programming》可谓是关于XP的奠基之作。从此，一系列的作品如《Test Driven Development: By Example》，《Extreme Programming Explained: Embrace Change》让更多的人领略到了极限编程的精髓，也逐步导致了极限编程的流行。<BR>Kent Beck的贡献远不仅如此。对于众多的Java程序员来说，他和Erich Gamma共同打造的JUnit，意义更加重大。也许正式这个简单而又强大的工具，让众多的程序员更加认可和信赖极限编程，从而引起了Java敏捷开发的狂潮吧。</P>
<P><BR>&nbsp;十大产品</P>
<P>Sun JDK :Java的基石<BR>文/莫映</P>
<P>众所周知，流传于市的JDK不单Sun一家，比如IBM的JDK、BEA的JRocket、GNU的GCJ，以及如Kaffe这样的开源实现，不一而足。但是，根正苗红的Sun官方JDK一直以来都是备受瞩目的主流，它对Java社区的影响也是举足轻重。<BR>1996年1月，Sun在成立了JavaSoft部门之后，推出了JDK 1.0，这是Sun JDK（Java Development Kit）的首个正式版本;当年12月，JDK1.1出炉。该版除了对前序版本部分特性做了改进以外，重写了AWT，采用了新的事件模型。1998年12月，JDK 1.2正式发布。此时的类库日臻完善，API已从当初的200个类发展到了1600个类。在1.2版本中引入了用100%纯Java代码写就的Swing，同时，Sun将Java更名为Java 2。<BR>1999年，Java 技术形成了J2SE、J2EE和J2ME三大格局。Sun向世人公布了Java HotSpot性能引擎技术的研究成果。HotSpot旨在进一步改善JVM性能，提高Java ByteCode的产生品质，加快Java应用程序的执行速度。J2SE 1.3发布于2000年；2002年2月间，J2SE 1.4问世，这是有JCP参与以来首个J2SE的发行版本。2004年9月30日，代号为“Tiger”的J2SE 5.0终于出笼了，这次发布被誉为Java平台历来发布中特性变动最大的一次。包括泛型在内的若干重大语法改进、元数据支持，包括多线程、JDBC在内的多项类库改进，都令广大Java程序员激动不已。自此，Sun的官方JDK（J2SE Development Kit）已经步入了一个新的高度。</P>
<P>&nbsp;</P>
<P>Eclipse :以架构赢天下<BR>文/恶魔</P>
<P>IBM是在2001年以4000万美元种子基金成立Eclipse联盟，并且捐赠了不少程序代码。如今，该组织有91个会员，包含许多全球最大的软件商。根据Evans Data公司的资料，Eclipse是目前最受欢迎的Java开发工具。 <BR>Java厂商若要共同对抗微软，彼此之间就要有共同的开发工具才行。 <BR>在Eclipse平台上，程序员可使用好几种不同的语言。在前端方面，用户可整合多种工具来撰写Plug-in程序或Unit Test。Eclipse最大的特色就在于其完全开放的体系结构，这代表任何人都可下载并修改程序代码，给Eclipse写插件，让它做任何你能想到的事情，即所谓“Design for everything but nothing in particular”。<BR>Eclipse基金会的架构比较特别，反映出企业现今对于开放原始码计划也越来越积极主动。Eclipse不像一般开放源码软件容许个人的捐献程序，该基金会是由厂商主导。不论是董事会成员或者是程序赞助者几乎都来自于独立软件开发商(ISVs)的员工。 <BR>Eclipse首席执行官Mike Milinkovich说，这种厂商会员制是特意设计的；他说Eclispe软件开发快速就是因为会员制的关系，同时又加上开放源码开发模式的临门一脚。这与一般透过标准组织的做法全然不同。 这其实正好验证了一句老话:“开放即标准”。</P>
<P><BR>JUnit/Ant : 让Java自动化的绝代双骄<BR>文/刘铁锋</P>
<P>在Java程序员必备的工具中，共 同拥有且交口称赞的恐怕就非JUnit、Ant莫属了。一个是单元测试的神兵利器，一个是编译部署的不二之选，它们让Java的开发更简单。<BR>JUnit由XP和TDD的创始人、软件大师Kent Back以及Eclipse架构师之一、设计模式之父Erich Gamma共同打造。名家的手笔和理念使得JUnit简单而强大，它将Java程序员代入了测试驱动开发的时代。JUnit连任了2001、2002年“Java World编辑选择奖”以及2003年“Java World最佳测试工具”和2003年“Java Pro最佳Java测试工具”等众多奖项，深受Java程序员好评。<BR>Ant是开源项目的典范，它让IDE的功能更加强大，从Sun的NetBeans到JBuilder,主流的IDE中处处都有它的身影。“Another Neat Tool”原是它的本名，但这已经渐渐不为人知。它彻底地让部署自动化，而程序员需要做的仅仅是几条简单的配置命令。和JUnit一样，Ant也荣获了众多的殊荣:2003年JavaWorld“最有用的Java社区开发的技术编辑选择奖”, 2003年Java Pro“最有价值的Java部署技术读者选择奖”，2003年“JDJ编辑选择奖”，也让Ant受到的多方的认可。<BR>Ant对JUnit的全面集成,则使得一切都变得更加完美。只需简单地配置，从自动测试到报告生成，从编译到打包部署均可自动完成。强大的功能，简单的配置，让Java程序员高枕无忧。实可谓让Java自动化的绝代双骄。</P>
<P>Websphere : 活吞市场的大鲸<BR>文/jini</P>
<P>1999年， IBM与Novell签订合作协议，成功地提供电子商务的解决方案给予原先使用NetWare的用户。同年更是推出了WebSphere Application Server 3.0，并且推出WebSphere Studio与VisualAge for Java让工程师可以快速开发相关的程序。2001年，IBM更是宣布将应用服务器、开发工具整合在一起，与DB2、 Tivoli及Lotus结合成为一套共通解决方案，如今、IBM更是并入了Rational Rose ( UML tools )让开发流程更是完整化。<BR>Sun在Web Services的策略方面远远落后于微软与IBM, 当他们手拉手在研订Web Services规范, 加上IBM买硬件送软件或是买WebSphere送DB2的策略让企业大佬们纷纷转向IBM的阵营, Sun才惊觉大势已去。WebSphere复杂的安装，深奥的设定，难以理解的出错讯息不断地挑战开发者的耐心与毅力。<BR>IBM如今已经不是将WebSphere定义为单一产品，它已经是一个平台的代名词。它里面的产品目前包含了应用服务器、商业整合、电子商务、 数据讯息管理、网络串流、软件开发流程、系统管理、无线语音等等。非常多样化,也让企业界愿意相信WebSphere可以带给他们一套完整的解决方案。同时, IBM也在推广SOA的概念, 简单来说, 利用Web Service的耦合性与工作流程的整合, 为企业内部打造以服务为导向的架构。<BR>IBM捐献出Eclipse带给Java开发人员对IDE的重新掌握。未来是否会捐献出WebSphere的哪一个部分成为OpenSources, 或许, 又是改写Java世界的时刻了。</P>
<P>&nbsp;</P>
<P>WebLogic : 技术人的最爱<BR>文/jini</P>
<P>1995年, BEA成立了, 初期以Tuxedo数据转换的产品为基础, 成长之迅速是历年来最强的企业。 1998年, BEA推出以Java为基础的网络解决方案, 提供了完整的中间层架构, 更同时支持EJB 1.0 及微软的COM组件, 方便的管理接口掳掠了工程师的心。 在IBM和Oracle尚未准备好迎击的时候, BEA已经席卷企业应用平台的市场。 WebLogic无论在市场领先度与技术领导性与策略远观性都优于当年的所有应用服务器厂商。<BR>如今WebLogic不仅仅是应用平台服务器的名称, 而是BEA对于整个企业解决方案的总称, 无论是WebLogic Portal或是WebLogic Integration配合着Workshop开发环境, 来自微软的UI开发团队让Workshop几乎达到所见即所得。 接着, 在下一个版本之中, BEA的BeeHive开放源代码计划将释出中间层控件的开发模块, 并且与Eclipse合作共同打造新一代的开发环境。 如此强而有力的技术支持, 更是让顾客愿意使用WebLogic平台的最大原因。<BR>代号为“Diablo”的 WebLogic Server 9.0小恶魔已经出现了, 目前虽然仅仅是BETA版, 以Portlet 方式打造的管理接口与完整且美妙的WebServices支持, 实在很难找到可以挑剔的地方, 虽然去年被IBM的技术性推销超越了市场占有率, 不过接下来SOA的平台竞争现在才开始, BEA的LOGO也加入“Think liquid”并且推出新的AquaLogic平台做为数据服务平台, 可见, Java的应用服务器的战争, 还会继续进行着。</P>
<P>&nbsp;</P>
<P>JBuilder : Java开发工具的王者<BR>文/刘铁锋</P>
<P>Java的开发工具中,最出名的莫过于Borland公司的JBuilder了。对于一些没有弄清楚开发工具与JDK的区别的Java入门者来说，JBuilder就如同Visual C++之于C++，以为JBuilder就是Java的全部。比起捆绑在服务器上销售的JDeveloper，JBuilder应该是唯一的仅靠自身的实力而占领了大部分市场的Java商用开发工具了。而JBuilder作为Java 开发工具的王者，其夺冠之路并非一帆风顺。直到Java的天才Blake Stone成为JBuilder的Architect之后，JBuilder 2.0以及3.0才逐渐推出。2000年3月14日，JBuilder 3.5的推出别具意义，它成为了业界第一个用纯Java打造的开发工具，也风靡了整个Java开发工具市场。在同年11月份推出的JBuilder 4.0乘胜追击，冲破了50%的市场占有率，成为了真正Java开发工具的王者。<BR>Borland以每半年左右推出一个新版本的速度，让众多的对手倒在了沙场。而Microsoft因为与Sun的官司，也使得一个强大的对手退出了战争。2001年，加入了对企业协作支持的JBuilder 5以及强化了团队开发工具的JBuilder 6打败了最后一个对手Visual Age For Java。2002年JBuilder 7推出之后，再也没有其他厂商与JBuilder竞争。<BR>孤独的王者并没有停下脚步，在2003年到2005年间，JBuilder也仍然延续了其半年一个版本的速度，推出了8、9、10、2005四个版本。强大的功能以及持续的改进，也让Java程序员多了一分对能够在开发工具市场上与Microsoft血拼十数年的Borland的敬仰。</P>
<P>&nbsp;</P>
<P>Oracle : Java人永远的情结<BR>文/熊节</P>
<P>在林林总总的数据库之中，有一种尤其令人又爱又恨、印象深刻，那就是关系型数据库市场的“大佬”——Oracle。<BR>从公司的角度，Oracle和Sun有着诸多相似之处，例如：两家公司都拥有一位个性鲜明的CEO。早在Java诞生之初的1995年，Oracle就紧随NetScape从而第二个获得了Java许可证。从那以后，Oracle对Java的鼎力支持是Java能够在企业应用领域大获成功的重要原因之一。<BR>所有J2EE程序员都知道，Oracle的JDBC驱动虽然与Oracle数据库配合良好，但在不少地方使用了专有特性。其中最为著名的就是“CLOB/BLOB问题”，诸如此类的问题给开发者带来了很多麻烦。为了同时兼顾不同的数据库，他们不得不经常把自己的一个DAO（数据访问对象）写成两份版本：针对Oracle的版本和针对其他数据库的版本。有不少人为了开发便利，舍弃了数据库之间的可移植性，将自己的产品绑定在Oracle的专有特性上。<BR>Oracle提供的Java开发工具也与此大同小异。不管是数据库内置的Java支持还是JDeveloper IDE， Oracle的Java工具都和Oracle数据库有着千丝万缕的联系。看起来，只要Oracle还是数据库市场上的“头牌”，了解、学习Oracle的专有特性，周旋于Oracle特有的问题和解决方案之中，就将仍旧是J2EE程序员在数据库基础和SQL之外的必修功课。对Oracle的爱与恨，也将仍旧是Java人心头一个难解的情结。</P>
<P>&nbsp;</P>
<P>Struts、Hibernate : 让官方框架相形失色的产品<BR>文/刘铁锋</P>
<P>好的框架能够让项目的开发和维护更加便捷和顺利。相比Sun官方标准的迟钝以及固执，开源框架也更得到Java程序员的共鸣。Struts以及Hibernate就是这样一类产品，它们简单、优雅，更让官方的产品相形失色。<BR>谈起Struts，不可避免地就要提及MVC（Model-View-Controller）的理念。而准确地讲，MVC的提出却最早源于JSP的标准。在1998年10月7号，Sun发布的JSP的0.92的规范中提出的Model 2就是MVC的原型。在1999年12月Java World的大会中，Gavind Seshadri的文章最早阐述了Model 2就是一种MVC的架构，同时也提及了MVC架构是一种最好的开发方法。2000年3月，由Craig McClanahan发布的Struts成为了最早支持MVC的框架。Struts在设计上虽然存在一些诟病，但是不可否认的是，它使得Java Web应用的开发更加简洁和清晰，也让更多的程序员爱上了Java，并开始遗忘官方的JSP。时至今日，比起如WebWork、Tapestry以及Sun官方的JSF，Struts或多或少存在些不足，但是众多成功项目的实施，仍然使其牢牢占据的Java Web应用框架的首位。<BR>Hibernate则在某种程度上改变了人们对构建J2EE的思路。相比其EJB的Entity Bean的映射技术，Hibernate则显得更加简洁和强大。五分钟就能把Hibernate跑起来，让更多的Java程序员享受到了开发的乐趣。第15届Jolt大奖中，最优秀数据库、框架以及组件的奖项中，Hibernate当仁不让获得头筹；不仅如此， Hibernate甚至还影响了官方的标准。在众多Java程序员翘首以待的EJB 3.0的规范中，Hibernate得到了支持。<BR>Java开源的繁荣不仅让众多Java的开发者享受到了更多的便利，甚至影响了官方的标准。恐怕这也是作为Java人独有的乐趣之一吧。</P>
<P>&nbsp;</P>
<P>PetStore : J2EE人的必修课<BR>文/陶文</P>
<P>很少有一个例子项目如PetStore这 般广为人知，而这很大程度上要归功于Sun很“英明”地把PetStore做成一个只展示架构而在性能调优上留下了大大余地的例子。围绕着性能话题，产生了颇为有趣的厂商之间以及平台之间的Pet Wars。除去这些关于性能的流言蜚语乃至中伤，PetStore在展示J2EE1.3平台的架构、演示什么叫分层方面还是有着很大的功劳的。而且PetStore在架构方面的丰富性使得其成为J2EE的那些轻量级小兄弟们展示自身的一个必选科目。<BR>不谈那些围绕PetStore的口水，那些数不尽的盗版，PetStore给开发新手带来的最重大的影响，我想应该是架构的观念而不是性能，也不是业务。做为一种技术的Demo，这无可非议。但是如果你是一个新手，跟着PetStore亦步亦趋地学习J2EE开发，难免会陷入过度设计、华而不实之类的困境。围绕着.NET的PetStore的克隆PetShop展开的架构与性能的大讨论，是不是也在促使我们学习新技术时应该以解决问题为导向呢？特别是当你想把一个如PetStore这般的Sample Project的技术照搬到你的现实世界的Real Project来时。</P>
<P>&nbsp;</P>
<P>十大组织</P>
<P>Sun : 因为Java而永被荣光<BR>文/孟岩</P>
<P>Sun是1980年代初期由斯坦福大学三位年轻学生创立的公司。与一般人的印象不同，“SUN”的本意并不是企图剽窃天上那颗温暖的恒星的威名，而是“斯坦福大学网络”的意思。Sun在“前Java”时代就因为SPARC芯片、Solaris操作系统和“网络就是计算机”的口号而为人所知。1990年12月，Sun启动了一个看上去没什么意思的嵌入式软件项目。然而，基于C++的开发很快遇到了麻烦。一个创新型技术公司的特色立刻显示出来，一群天才不是去深入C++，而是另辟蹊径，发明了Java。这个传奇故事已经尽人皆知，但是其中所包含的精神却始终令人望空凝思。<BR>Java的发明，使得Sun真正有机会在软件的历史天空中放射出太阳的光芒。Sun发明了Java，并且在长达十年的时间里始终走在Java大潮的最前端。Sun是Java的老家，是Java慈爱的母亲，这一切任何人都改变不了。虽然Sun似乎没能够从Java中获得应有的金钱回报，但这丝毫没有挫伤Sun对于Java的母爱，还有对于Java大潮的舍我其谁的领导气概。<BR>所有人都迷恋富有的感觉，但是也迟早会意识到钱不是世上最宝贵的东西。这个世界并不缺少会赚钱的公司，但是能够靠着创新型技术推动整个世界进步的公司却是凤毛麟角。Sun应该感到骄傲，他们将因为Java而在历史的天空里发射出太阳的光芒。</P>
<P>&nbsp;</P>
<P>IBM : Java经济的最大受益人<BR>文/恶魔</P>
<P>Sun公司是Java的发明人，但IBM却是Java最大的受益者。是IBM抢占了利润丰厚的应用服务器市场的头把交椅，是IBM在Java技术上投入最多的金钱，拥有最大的影响力和最好的开发者社区。可以毫不夸张地说，Java使IBM的软件体系得到复兴，在某种意义上，甚至可以说，是Java创造了这种复兴。Java之后又来了Linux，这种建造在不属于自己的平台上以获得成功的理念更是变得非常有影响力。正是这种理念铸就了今天IBM “按需计算，服务为王”的王者风范。<BR>2004年三月，IBM以Java的解放者的姿态借机向Sun发难。IBM公司负责新兴技术的副总裁史密斯在一封公开信中表示，IBM愿意与Sun合作成立一个项目，意在通过开放源代码开发模式管理Java的开发工作。<BR>墙内开花，墙外香。面对IBM的成功，到底是谁妒嫉呢？或许去程序的社区中逛逛聊聊，明眼人是不难发现事实真相的。也许Sun应该好好向IBM学习经营之道。尽管利润额不如硬件及服务部门，但IBM软件部门的利润率是最高的——高达85%的利润率足以令人惊叹。在最近的一个季度里，IBM软件部的利润率上升了8%，其中WebSphere产品组的利润率上升了14%。<BR>正是IBM在开源和Java上的全身心地投入又秉承开放性的原则，今日的Java才能以日进千里的速度将许多竞争对手远远抛在后面。Java 10年，IBM功不可没。</P>
<P>&nbsp;</P>
<P>BEA : 用AppServer影响Java阵营<BR>文/霍泰稳</P>
<P>十年前诞生的Java并不是一开始 就那么引人注目的，虽然用Applet也曾为互联网络带来一抹亮色，但毕竟只是Toy。在企业级应用市场上，Java一直没有什么起色，虽然Java的支持者一直在鼓吹它有着大型企业级应用的强悍功能。过高的期望与低能的产品，一时间颇让人怀疑Java的路是否已经走到了尽头？可以说是WebLogic Server的出现逐渐打消了人们的顾虑，BEA公司慧眼独具在2001年收购的这个产品将人们的目光吸引到电信、金融、政府等Java企业级应用方面，WebLogic Server以其优良的性能让人们看到Java应用广阔的未来。虽然随后在Java应用服务器方面出现了像IBM公司的WebSpere、开源软件JBoss等Java应用服务器，但WebLogic Server几乎占领世界前500强所有企业的应用服务器市场地位依然无法撼动。<BR>Java现在已经不单纯是一个语言，从另一方面它也代表着开放与创新。很多以Java产品为基础的公司或者从事Java开发的程序员骨子里都有着开放与创新的烙印，BEA公司的发展深深地印证了这一点。与合作伙伴的密切合作向Java社区贡献产品基础源代码、加入权威开源组织参与Java标准的制定等证实着BEA的开放，而其产品从WebLogic Server一种拓展到WebLogic Platform、WebLogic Portal、WebLogic Workshop等其它领域又证实着它的创新能力。</P>
<P>&nbsp;</P>
<P>Oracle : 早起的鸟儿有虫吃<BR>文/孟岩<BR>Oracle的老板拉里?艾利森是有名的混世魔王和花花公子，所以尽管他也是软件产业成功人士的代表，却绝不是程序员们心目中的英雄，程序员们毕竟不是央视《对话》节目里群众演员，没必要为了节目需要而对权贵财阀们做出一副贱骨头状。但是，任何人都不能不钦佩Oracle在技术上的前瞻性和坚决性。Oracle是1996年获得Java许可证的，紧接着就大胆地将Java作为战略性的发展方向而予以全面支持。要知道当时Java的前景并不是十分确定的，而Oracle的坚决投入，使得它在后来的Java世界中抢得一席之地。1998年9月发布的Oracle 8i为数据库用户提供了全方位的Java支持。Oracle 8i成为第一个完全整合了本地Java运行时环境的数据库，开发者用Java就可以编写Oracle的存储过程，这意味着可以仅在Oracle数据库中就完成几乎全部的应用开发。J2EE兴起后，Oracle更是有心进入开发工具市场，因而购买了JBuilder的源码，并在此基础上开发出JDeveloper。如今Oracle除了数据库稳居第一之外，在Java开发工具世界里也自成一派。这一切不能不归功于当初的眼光远大。</P>
<P><BR>Apache : 开源软件的品牌保证<BR>文/陶文</P>
<P>Java程序员的日常工具箱中，我们可以发现Ant、Tomcat、Log4、Lucene这些鼎鼎大名的开源产品。而它们的共同点在于，都是由Apache Software Foundation社群中杰出的开发者开发的开源项目。Apache这个名字在Java的世界中实在太出名了，以至于“Apache”这六个字母成为开源项目品质保证的代名词。Apache是自由开源的一面旗帜，其Apache License更是成为商业友好的License的首选，只SourceForge上就有1000多个以Apache License授权的项目，其流行程度可见一斑。<BR>但是，如我们所知，Apache最早闻名IT界是靠高性能的Web服务器，其历史甚至和Java一样长。Apache对于Java的偏爱，以及其发展的速度也映射出了Java繁荣的一角。现在去它的主页上看看，满目望去全部都是Java的开源项目，早就不光是其C服务器的老本行了。Apache对Java最大的贡献就是提供了这么一个精品的开放舞台，让杰出的开发者和成熟的开源项目走到一起，共同给Java语言提供一个丰富的工具仓库。对于一种语言、一个平台来说，其库的丰富程度对于开发者来说的重要性再怎么强调也不为过。勿庸置疑，Aapache上会出现越来越多的Java开源项目，而我们开发者也将更多地得益于这令人目不暇接的繁荣。</P>
<P>&nbsp;</P>
<P>TheServerSide : 论坛的专业精神<BR>文/刘天北</P>
<P>成立于2000年5月，TSS最初以一本书而广为人知。它的创始人Ed Roman同时也是J2EE名著《Mastering EJB》的作者;Roman运营着一个J2EE咨询/培训公司TheMiddlewareCompany（简称TMC），TSS当时是TMC的下属部门；为了扩大企业的影响，Roman在TSS网站上免费发布了那本书的电子版。J2EE程序员要吃下这个香饵，就得在论坛中注册;注册的同时，多半也会看一眼论坛的内容；一看之下，大部分人都被吸引住，成了社区的忠实成员。<BR>TSS究竟有什么吸引人的秘诀？首先，它有一支能力过人的运营团队，除了Roman本人之外，其中还有好几人都是J2EE领域的顶尖专家；第二，TSS和TMC定期会推出专家研讨会/视频访谈、技术白皮书、评测报告，通读TSS提供的这些内容，基本上就可以把握技术的当前趋势。但这还不是全部。最可贵的还是TSS的社区风格：他们深谙技术，但不盛气凌人；思想敏锐，但不因此缺乏审慎和大局感。其中大多数人都已在自己的开发领域颇有建树，在TSS上的活动既给他们提供了与同行进行深度交流的机会。一个新成员进入社区，就像参加了一个起点很高的专业俱乐部，这不是一个求解“怎样设置J***A_HOME环境变量”之类问题的地方。事实上，在J2EE技术发展的若干转折点上，TSS都起到了关键的推动作用。<BR>几经易主之后，J2EE咨询培训公司TMC在2004年关闭；TSS则被IT媒体集团TechTarget收购。我们期待着它更加繁荣的未来。</P>
<P>JBoss : 职业开源软件组织<BR>文/刘天北</P>
<P>J2EE的婴儿期，“应用服务器”原本是“昂贵”的代名词。但从1999年起，Marc Fleury和Rickard Oberg等人就已经着手改变这种状况。他们开发的开源EJB容器当时叫做“EJBoss”，在Sun公司的干预下（注意，“EJB”是注册商标），JBoss获得了今天的名字。虽然从问世起就一直受到关注，但JBoss第一个达到产品化标准的版本可能是它的2.2版。它的易用让人一见难忘：除了标准部署描述符，无需编写专用的xml配置文件。Oberg自豪地说，“我们的架构并不是按照EJB规范指定的路线设计的，因此也没有走大多数应用服务器走过的弯路。”<BR>Jboss 3.x版本保持了一贯的创新精神，在用户中间获得了更广泛的认可。但是，文档要收费下载、在邮件列表上提问常常会遭到Fleury等人的斥责。无疑，JBoss的创始者也意识到了自己的幼稚：开源软件只能靠服务盈利，卖文档赚钱有限、骂用户当然更损害企业形象。<BR>虽然以Oberg为首的许多程序员退出了开发队伍（其中很多人成了JBoss的死敌），在开源软件领域也面临JOnAS Geronimo等新老对手的竞争，但JBoss还是以不断推出的新版本站稳了脚跟。在技术上，它是策动J2EE演进的重要力量：拟议中的EJB 3也要追随Jboss 4倡导的开发范式，以至于二者的代码样本之间的差别几乎难以分辨；在商业上，JBoss与Sun公司言和修好，甚至还获得了数量可观的风险投资。JBoss已经像拥护者预期的那样，成为了应用服务器领域的Linux。</P>
<P>&nbsp;</P>
<P>Borland : 深度介入Java<BR>文/左轻候</P>
<P><BR>除了Sun以外，也许没有一家公司 像Borland这样深层地介入Java。Borland开发了最早的Java编译器之一，Borland的工程师参与了早期JDK的设计，Borland的JBCL(JavaBeans Component Library) 技术也成为后来Java Bean规范的基础。但是Borland对Java世界最大的影响还是JBuilder。<BR>1997年11月，Borland JBuilder 1.0发布。虽然第一个版本相对于竞争对手并没有表现出明显的优势，但是Borland凭借深厚的技术实力和正确的市场策略，不断地超越了对手。JBuilder 3.5成为业界第一个100%基于Java架构的开发工具，并且市场份额很快超过了50%。在随后的版本中，JBuilder持续改进对团队开发、J2EE架构、Mobile技术等方面的支持，最终成为了Java开发工具市场，特别是大型企业级Java开发市场中的霸主。JBuilder的成功，很大一个原因来自于Borland坚持的平台中立性，即对不同厂商的解决方案提供一视同仁的支持。<BR>2005年初，随着Eclipse社区的迅速崛起，Borland进入了Eclipse的董事会，成为战略开发者(Strategy Developer) ，并宣布将推动Borland的其它产品与Eclipse的集成。在随后发布的一份文件中，Borland宣称JBuilder的未来版本将放弃原有的PrimeTime架构，而基于Eclipse架构。这个代号为“Peloton”的版本预计于2006年下半年发布。<BR>Borland对Java的另外两个主要贡献来自Together和BES(Borland Enterprise Server)。Together是著名的建模工具，能够与包括JBuilder在内的许多开发工具进行集成，全球市场份额占有率排名第二。BES AppServer是一种J2EE服务器，在全球市场份额占有率上次于WebLogic和WebSphere，排名第三。</P>
<P>&nbsp;</P>
<P>JCP : Java世界的联合国<BR>文/黄海波</P>
<P><BR>当联合国正在为安理会改革问题 吵得如火如荼时，Java世界的“联合国安理会”已经成功地运作了七个年头。JCP（Java Community Process）在1998年由Sun发起成立，目标是通过一个开放、合作和鼓励参与的非盈利组织来发展和推进Java和相关的技术。正是由于JCP计划的推出可以让所有对Java感兴趣的软硬件厂商，个人和组织都能参与到技术规范的制定和发展过程中，协调各方的兴趣和利益、集思广益，才可以让Java在短短的几年内异军突起，成为可以和微软开发平台抗衡的一个主流开发语言。JCP计划既然是一个组织，自然也有一定的架构。JCP组织架构主要包括PMO(Program Management Office)、JCP成员、EC、EG。事实上，JCP的架构就好像一个Java世界的联合国。虽然也有不少人批评JCP成为各派利益的角力场，因而效率低下；但是，它毕竟为Java的顺利发展很好地掌握了方向。</P>
<P>&nbsp;</P>
<P>微软与Java : 不得不说的故事<BR>文/孟岩</P>
<P><BR>微软跟Java不对付，地球人都知 道。跟Sun和解了又怎么样？&nbsp; .NET跟Java就是竞争对手，没什么说的。但是有点IT掌故的人都知道，微软并非一开始就跟Java过不去。当年比尔?盖茨盛赞Java是“长期以来最好的程序设计语言”，而且很早就购买了Java许可证。但是微软作为村里的老大，看着人家的儿子茁壮呈长，不由得生了私心杂念，搞起了小动作，在Visual J++中加入了一些破坏纯洁性的东西。单独来看，Visual J++是COM时代微软最棒的开发工具，用WFC写Windows应用程序和COM组件实在是一种享受。但是放在Java大家庭里，这个家伙就显得多少有点不怀好意。一场官司下来，微软被逐出Java大家庭，Visual J++无疾而终。以后的事情尽人皆知，.NET出笼，利齿直指Java，几年撕咬下来，没占着便宜也没吃大亏，如今也算是南北朝对峙，二分天下有其一。设想如果当时微软能够摒弃帝国主义心态，正确对待Java，与其他人一起共建美好的Java“共产主义社会”，那么今天我们的软件开发世界应该会美好得多。可惜黄粱一梦，终究是蚂蚁的喜事。2004年，微软与Sun实现了和解，但愿到Java 20周年的时候，我们能更正面地描述微软对Java发挥的作用。<BR>&nbsp;<BR></P><img src ="http://www.blogjava.net/goldrain/aggbug/11385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2005-08-28 20:04 <a href="http://www.blogjava.net/goldrain/articles/11385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转贴：XP系统网络不能互访七大解决之 </title><link>http://www.blogjava.net/goldrain/articles/9438.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Fri, 05 Aug 2005 14:45:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/articles/9438.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/9438.html</wfw:comment><comments>http://www.blogjava.net/goldrain/articles/9438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/9438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/9438.html</trackback:ping><description><![CDATA[<P>转贴：XP系统网络不能互访七大解决之 <BR>XP系统网络不能互访七大解决之道 </P>
<P>相信很多人都有和笔者一样的经历，由WIN XP构成的网络所有设置和由WIN 2000构成的 </P>
<P><BR>完全一样，但还是出现了根本不能访问的情况，笔者认为这主要是因为XP的安全设置和</P>
<P>2000不一样所导致。针对这个问题笔者在网上查了一些资料，并将各种网上提供的常见</P>
<P>解决方法做了相应测试，现在整理介绍给大家，希望能对遇到此问题的网友有所帮助，并请高手继续指点。部分内容摘自网络，请原谅不一一注明出处。 </P>
<P>首先，这里不考虑物理联接和其它问题，只谈及策略问题。此外，请安装相应的协议并正确的设置IP地址，同时尽量把计算机设置在一个工作组内且具有相同网段的IP地址。 </P>
<P>其次，网上对于出现的问题描述较多，这里不再累述。当共享和访问出现问题时请考虑以下的步骤： </P>
<P>1.检查guest账户是否开启 </P>
<P>XP默认情况下不开启guest账户，因此些为了其他人能浏览你的计算机，请启用guest账户。同时，为了安全请为guest设置密码或相应的权限。当然，也可以为每一台机器设置一个用户名和密码以便计算机之间的互相访问。 </P>
<P>2.检查是否拒绝Guest用户从网络访问本机 </P>
<P>当你开启了guest账户却还是根本不能访问时，请检查设置是否为拒绝guest从网络访问计算机，因为XP默认是不允许guest从网络登录的，所以即使开了guest也一样不能访问。在开启了系统Guest用户的情况下解除对Guest账号的限制，点击“开始→运行”，在“运行”对话框中输入 “GPEDIT.MSC”，打开组策略编辑器，依次选择“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”，双击“拒绝从网络访问这台计算机”策略，删除里面的“GUEST”账号。这样其他用户就能够用Guest账号通过网络访问使用Windows XP系统的计算机了。 </P>
<P>3.改网络访问模式 </P>
<P>XP 默认是把从网络登录的所有用户都按来宾账户处理的，因此即使管理员从网络登录也只具有来宾的权限，若遇到不能访问的情况，请尝试更改网络的访问模式。打开组策略编辑器，依次选择“计算机配置→Windows设置→安全设置→本地策略→安全选项”，双击“网络访问：本地账号的共享和安全模式”策略，将默认设置“仅来宾—本地用户以来宾身份验证”，更改为“经典：本地用户以自己的身份验证”。 </P>
<P>这样即使不开启guest，你也可以通过输入本地的账户和密码来登录你要访问的计算机，本地的账户和密码为你要访问的计算机内已经的账户和密码。若访问网络时需要账户和密码，可以通过输入你要访问的计算机内已经的账户和密码来登录。 </P>
<P>若不对访问模式进行更改，也许你连输入用户名和密码都办不到，//computername/guest为灰色不可用。即使密码为空，在不开启guest的情况下，你也不可能点确定登录。改成经典模式，最低限度可以达到像2000里没有开启guest账户情况时一样，可以输入用户名和密码来登录你要进入的计算机。也许你还会遇到一种特殊的情况，请看接下来的。 </P>
<P>4.一个值得注意的问题 </P>
<P>我们可能还会遇到另外一个问题，即当用户的口令为空时，即使你做了上述的所有的更改还是不能进行登录，访问还是会被拒绝。这是因为，在系统“安全选项”中有 “账户：使用空白密码的本地账户只允许进行控制台登录”策略默认是启用的，根据Windows XP安全策略中拒绝优先的原则，密码为空的用户通过网络访问使用Windows XP的计算机时便会被禁止。我们只要将这个策略停用即可解决问题。在安全选项中，找到“使用空白密码的本地账户只允许进行控制台登录”项，停用就可以，否则即使开了guest并改成经典模式还是不能登录。经过以上的更改基本就可以访问了，你可以尝试选择一种适合你的方法。下面在再补充点其它可能会遇到的问题。 </P>
<P>5.网络邻居不能看到计算机 </P>
<P>可能经常不能在网络邻居中看到你要访问的计算机，除非你知道计算机的名字或者IP地址，通过搜索或者直接输入//computername或//IP。请按下面的操作解决启动“计算机浏览器”服务。“计算机浏览器服务”在网络上维护一个计算机更新列表，并将此列表提供给指定为浏览器的计算机。如果停止了此服务，则既不更新也不维护该列表。 <BR>启动“计算机浏览器”服务。“计算机浏览器服务”在网络上维护一个计算机更新列表，并将此列表提供给指定为浏览器的计算机。如果停止了此服务，则既不更新也不维护该列表。</P>
<P>137/UDP--NetBIOS名称服务器，网络基本输入/输出系统(NetBIOS)名称服务器(NBNS)协议是TCP/IP上的NetBIOS(NetBT)协议族的一部分，它在基于NetBIOS名称访问的网络上提供主机名和地址映射方法。 </P>
<P>138/UDP--NetBIOS数据报，NetBIOS数据报是TCP/IP上的NetBIOS(NetBT)协议族的一部分，它用于网络登录和浏览。 </P>
<P>139/TCP--NetBIOS会话服务，NetBIOS会话服务是TCP/IP上的NetBIOS(NetBT)协议族的一部分，它用于服务器消息块(SMB)、文件共享和打印。请设置防火墙开启相应的端口。一般只要在防火墙中允许文件夹和打印机共享服务就可以了。 </P>
<P>6.关于共享模式 </P>
<P>对共享XP默认只给予来宾权限或选择允许用户更改“我的文件”。Windows 2000操作系统中用户在设置文件夹的共享属性时操作非常简便，只需用鼠标右击该文件夹并选择属性，就可以看到共享设置标签。而在Windows XP系统设置文件夹共享时则比较复杂，用户无法通过上述操作看到共享设置标签。具体的修改方法如下：打开“我的电脑”中的“工具”，选择“文件夹属性”，调出“查看”标签，在“高级设置”部分滚动至最底部将“简单文件共享(推荐)”前面的选择取消，另外如果选项栏里还有“Mickey Mouse”项也将其选择取消。这样修改后用户就可以象使用Windows 2000一样对文件夹属性进行方便修改了。 </P>
<P>7.关于用网络邻居访问不响应或者反应慢的问题 </P>
<P>在WinXP 和Win2000中浏览网上邻居时系统默认会延迟30秒，Windows将使用这段时间去搜寻远程计算机是否有指定的计划任务（甚至有可能到 Internet中搜寻）。如果搜寻时网络时没有反应便会陷入无限制的等待，那么10多分钟的延迟甚至报错就不足为奇了。下面是具体的解决方法。 </P>
<P>A.关掉WinXP的计划任务服务（Task Scheduler） </P>
<P>可以到“控制面板/管理工具/服务”中打开“Task Scheduler”的属性对话框，单击“停止”按钮停止该项服务，再将启动类型设为“手动”，这样下次启动时便不会自动启动该项服务了。 </P>
<P>B.删除注册表中的两个子键 </P>
<P>到注册表中找到主键“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace” </P>
<P>删除下面的两个子健：和。 </P>
<P>其中，第一个子健决定网上邻居是否要搜索网上的打印机（甚至要到Internet中去搜寻），如果网络中没有共享的打印机便可删除此键。第二个子健则决定是否需要查找指定的计划任务，这是网上邻居很慢的罪魁祸首，必须将此子健删除。 </P>
<P>总结 </P>
<P>不能访问主要是由于XP默认不开启guest，而且即使开了guest，XP默认是不允许guest从网络访问计算机的。还有就是那个值得注意的问题。相信一些不考虑安全的地方或是电脑公司给人做系统密码都是空的，但这样是不允许登录的。只要试过以上的方法，相信是不会再有问题的。(T114)&nbsp;&nbsp;&nbsp; <BR></P><img src ="http://www.blogjava.net/goldrain/aggbug/9438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2005-08-05 22:45 <a href="http://www.blogjava.net/goldrain/articles/9438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eric Raymond对于几大开发语言的评价</title><link>http://www.blogjava.net/goldrain/articles/8347.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Sun, 24 Jul 2005 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/articles/8347.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/8347.html</wfw:comment><comments>http://www.blogjava.net/goldrain/articles/8347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/8347.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/8347.html</trackback:ping><description><![CDATA[<P class=bigTitle><A href="http://www.21ds.net/article/_22/2003-05/19/151_1.html"><FONT color=#000080>http://www.21ds.net/article/_22/2003-05/19/151_1.html</FONT></A></P>
<DIV>日期：2003-05-19 &nbsp;&nbsp;作者： myan（翻译）</DIV>
<DIV>
<P>【译者注】<BR>Eric Raymond是开源运动的领袖人物，对于UNIX开发有很深的造诣，主持开发了fetchmail。他的《大教堂与集市》被奉为开源运动的经典之作。下面对几大开发语言的评价非常中肯，是我近年来看到的比较出色的评论。特别是他评价中抱有的那种“简单就是好”的思想，很值得我们深思。我特别选译出一些段落，供大家阅读思考。原文参见：http://www.catb.org/~esr/writings/taoup/html/ch14s04.html#c_language</P>
<P><STRONG>Raymond此文不是在泛泛地去谈语言的优劣，而是要回答一个问题：在UNIX下开发开源项目，如何选择开发工具？我翻译的很零散，建议大家去看原文。<BR></STRONG><BR><STRONG><FONT size=5>C</FONT></STRONG><BR>虽说C语言在内存管理方面存在严重的缺陷，不过它还是在某些应用领域里称王称霸。对于那些要求最高的效率，良好的实时性，或者与操作系统内核紧密关联的程序来说，C仍然是很好的选择。</P>
<P>C良好的可移植性也为它加了分。不过现在很多其他的语言可移植性越来越好，C在这方面的优势可能会逐渐丧失。</P>
<P>现有的很多程序可以产生非常棒的C代码，比如语法分析器、GUI Builder等，这时候C语言也是有吸引力的，因为你所需要编写的代码只是整个程序的一小部分。</P>
<P>再有，我们当然应该认识道，C语言对于程序员来说具有无可替代的价值。就我这里讨论的每一种语言而论，只要你发掘的足够深，到最后你会看到它们的内核都是用纯正的、可移植的C写成的。</P>
<P>到了今天这个时候，我们最好把C看成是UNIX虚拟机上的高级汇编语言。</P>
<P>就算是其他的高级语言完全可以满足你的工作需要，抽出时间来学习C语言也仍然有益，它能帮助你在硬件体系的层次上思考问题。</P>
<P>即使到了今天，最好的C语言教程仍然是1988年出版的K&amp;R第二版The C Programming Language.</P>
<P>总结：C最出色的地方在于其高效和贴近机器，最糟糕的地方在它的内存管理地狱。</P>
<P><FONT size=5><STRONG>C++</STRONG><BR></FONT>C++最初发布于1980年代中期，当时面向对象语言被认为是解决软件复杂性问题的银弹。C++的面向对象特性看相去使其全面超越了C，支持者认为C++将迅速把上一代语言挤到陈列馆里去。</P>
<P>但是历史并非如此。究其原因，至少有一部分归咎于C++本身。为了与C兼容，C++被迫作出了很多重大的设计妥协，结果导致语言过分华丽，过分复杂。为了与C兼容，C++并没有采用自动内存管理的策略，从而丧失了修正C最严重问题的机会。</P>
<P>另外一部分原因，恐怕要算到面向对象身上。看起来OO并没有很好的达成人们当年的预期。我就这个问题调研过，我发现使用OO方法导致组件之间出现很厚的粘合层，并且带来了严重的可维护性问题。今天让我们来看看开放源码社区，你会发现C++的应用还是集中在GUI，游戏和多媒体工具包这些方面，在其他地方很少用到。要知道，面向对象也只是在这些领域被证明非常成功，而开放源码社区的选择，很大程度上体现了程序员的自由意志，而不是公司管理层的胡乱指挥。</P>
<P>也许C++实现OO的方法有问题。有证据表明C++程序在整个生命周期的开销高于相应的C, Fortran和Ada程序。不过，究竟这是否应该归咎与C++的OO实现上，还不清楚。</P>
<P>最近几年，C++加入了很多非OO的思想，其异常思想类似Lisp，STL的出现是非常了不起的。</P>
<P>其实C++最根本的问题在于，它基本上只不过是另一种传统的语言。STL中的内存管理比先前的new/delete和C的方案要好的多，但是还是没有解决问题。对于很多应用程序而言，其OO特性并不明显，相比与C，除了增加复杂度之外没有获得很多好处。</P>
<P>总结：C++优点在于作为编译型语言，把效率与泛型和面向对象特性结合起来，其缺点在于过于华丽复杂，倾向于鼓励程过分复杂的设计。</P>
<P><STRONG><FONT size=5>Java</FONT></STRONG><BR>Java的设计很聪明，它采用了自动内存管理，这是最大的改进，支持OO设计带来的好处虽然不那么突出，不过也很值得赞赏，相比C++，其OO设计规模小而且简单 。</P>
<P>相对于Python而言，Java有一些明显的失误。有些地方设计的还是太复杂，甚至有缺陷。Java的类可见性和隐式scoping规则太复杂了。Interface机制是为了避免多继承带来的问题而设计的，但是要理解和使用它还是挺难。内部类和匿名类导致令人困惑的代码。缺乏有效的析构机制，使得除了内存之外的其他资源（比如互斥量和锁）管理起来很困难。Java的线程不可靠，其I/O机制很强大，但是读取一个文本文件却非常繁琐。</P>
<P>Java没有管理库版本的机制，从而形式上重蹈了了Windows DLL地狱的覆辙。在类似应用服务器这样的环境里，这引起了大量的问题。</P>
<P>总体而言，我们可以说除了系统编程和对效率要求极高的程序之外，Java在大部分领域优于C++。经验表明，Java程序员似乎不太容易象C++程序员那样构造过度的OO层，不过在Java中这仍然是个严重问题。</P>
<P>Java是否优于诸如Perl, Python这样的语言？我们还不是很清楚，很大程度上似乎跟程序规模有关。其擅长的领域基本上于Python相似，在效率上无法跟C/C++相提并论，在小规模的、大量使用模式匹配和编辑的项目里也无法匹敌Perl。在小项目里，Java显得过分强大了。我们猜测Python更适合小项目，而Java适合大项目，不过这一点并没有得到有力的证明。</P>
<P><STRONG><FONT size=5>Python</FONT></STRONG><BR>Python是一种脚本语言，可以与C紧密整合。它可以与动态加载的C库模块交换数据，也可以作为内嵌脚本语言而从C中调用。其语法类似C和模块化语言的杂合，不过有一个独一无二的特征，就是以缩进来确定语句块。</P>
<P>Python语言非常干净，设计优雅，具有出色的模块化特性。它提供了面向对象能力，但不强迫用户进行面向对象设计。其类型系统提供了强大的表达能力，类似Perl，具有匿名lambda表达式，这点又让Lisp黑客们感到亲切。Python依靠Tk提供方便的GUI界面开发能力。</P>
<P>在所有的解释型语言里，Python和Java最适合多名程序员以渐进方式协同开发大型项目。在很多方面，Python比Java要简单，它非常适合与构造快速原型，这一点使得它对于Java有独特优势：对于那些既不很复杂，又不要求高效率的程序，Python十分合适。</P>
<P>Python的速度没法跟C/C++相比，不过在今天的高速CPU上，合理地使用混合语言编程策略使得Python的上述弱点被有效地弥补。事实上，Python几乎被认为是主流脚本语言中最慢的一个，因为它提供了动态多态性。在大量使用正则表达式的小型项目，它逊于Perl。对于微型项目而言，shell和Tcl可能更好，Python显得太过强大了。</P>
<P>总结：Python最出色的地方在于，它鼓励清晰易读的代码，特别适合以渐进开发的方式构造大项目。其缺陷在于效率不高，太慢，不但跟编译语言相比慢，就是跟其他脚本语言相比也显得慢。</P></DIV><img src ="http://www.blogjava.net/goldrain/aggbug/8347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2005-07-24 21:18 <a href="http://www.blogjava.net/goldrain/articles/8347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>