2007年04月18日

发布时间: 2007-04-11 09:18 作者: webmaster 来源: 计算机世界

  软件冷战的双方——私有软件和开源软件,分别代表了集权主义和合作共享的思想。和真正的冷战一样,这是一种资源浪费。开源将是无可逆转的趋势。

  IBM最近对SCO的起诉提出了反诉讼,这可能意味着SCO案件的结束。但即使法官明天驳回了这一起诉,Linux用户也不会安心。正如开源代码元老级人物Bruce Perens提醒我们的那样,微软Novell的合作关系带来了一系列新的知识产权问题,微软和开源软件之间的冷战仍将继续。

  就像美国与苏联之间那场真正的冷战一样,这场战争最重要的武器是恐惧与胁迫。只要起诉的威胁依然存在,用户就会在发布开源软件前有所犹豫。

  “赔偿承诺”是这场冷战的“导弹防御系统”。顾客希望开源公司能保证,在使用他们的软件时,不会遭到知识产权起诉。但开源厂商能做出这样的承诺吗?

  事实上,赔偿保证的概念不仅不会缓解恐惧,还可能会使问题恶化,因为其中隐含的风险太模糊了。谁会起诉?要遵守什么规则?其他公司如何避免遭到起诉?起诉的长期意义是什么?因为有太多的不确定因素,如何为赔偿保证做预算?你能为你的钱争取多少保障?

  这一困境导致了“寒蝉效应”,这个说法正适合冷战。私有软件成为最大的受益者。微软最希望看到的就是,开源软件的用户担心遭到起诉,不断地寻求赔偿保证。但问题是,当你将恐惧和不确定性带到开源市场的同时,也会扼杀创造性。开源是可以使整个软件业受益的代码源泉—— 包括那些打击开源软件的人。

  我想到了最近看到的一个广告,这个广告里提到“世界上有193个国家,但没有一个国家能够在能源方面自给自足。”这是事实。世界上的大多数国家都必须依赖少数几个幸运地拥有石油的国家,而即使最大的石油出产国也需要进口石油。

  软件业也是如此。如今,几家主要厂商为大多数电脑生产关键的软件。但另一方面,独立开发者和爱好者也为他们自己的权利做出了重要的贡献。所有代码都迅速混合,在不同开发者之间传递,并且相互补充。

  正如多数开源软件开发者会用到一些私有软件一样,我估计你也找不出有哪个厂商不在后台使用开源软件,无论是开源数据库、源代码版本控制系统,还是网络服务器,他们都会采用。在某些情况下,开源代码实际上就是私有产品的一部分。

  从这一角度来说,私有软件对开源软件的敌意基本上是凭空捏造的。事实上,两者有着共生共长的关系。两者之间的斗争,就像冷战一样,是一种资源浪费。这场斗争消耗了大量的资源,而这些资源本可以用在更有价值的领域,比如抗击疾病、缩小数字鸿沟和提高生活水平。

  在这场软件冷战中,一派代表了合作和思想与资源的共享;另一派是集权主义者,他们竭尽全力试图控制消费者。这同样也是真正冷战的翻版——我们很清楚战争的结果如何。

  通过顽强的辩护,IBM证明了无论在前方的道路上有多少法律障碍,开源都将继续前进,这是无可逆转的趋势。微软也应该吸取教训,是时候和解了。

http://www.lupaworld.com/viewnews_16508.html

2007年04月10日

发布时间: 2007-03-30 10:26 作者: webmaster 来源: IT专家网 版权申明

开源软件渐渐成为了软件发展的潮流,越来越多的软件宣布开源,也有越来越多的传统商业软件加入到开源运动的队伍中去,那么开源运动究竟是怎么样的?在全球范围内和我国,开源运动正在对软件领域产生怎么样的影响?开源软件在今后的发展趋势是什么?中国开发人员可以在国际开源社区扮演怎么样的一个角色?带着这种种疑问,IT专家网特别采访了中国开源软件推进联盟主席陆首群教授,让我们跟随陆主席一起探究开源运动的迷局。

  开源软件只有找到自己的商业模式才可能持续发展

  IT专家网:许多人错误地认为开放源码和GPL可以划等号,事实上究竟是怎么样的呢?

  陆首群:GPL是一种主要的开源许可协议,约70%的开放源码软件遵循的是GPL协议。开放源码和GPL是两个概念。

  IT专家网:也有人认为整个开放源码运动就是为了反对由Richard Stallman和其他一些人提倡的自由软件运动或自由开源软件运动(FOSS),这种理解对吗?

  陆首群:Richard Stallman一开始叫自由软件,他是先驱者。之后发生了开源软件和自由软件的的争论,Stallman做了妥协,以后自由软件和开源软件统一起来了。实际上“开源”和“自由”的差别不是特别大,所以通常人们把开源软件也称为自由开源软件(FOSS)。

  IT专家网:自由软件与免费软件的区别在哪里?

  陆首群:“自由”和“免费”,虽然在英文中用的都是“free”,但是Stallman也说了,这里的“Free”(FOSS)代表“自由软件”不是“免费软件”。软件可看成程序+文档+支持+培训+服务,由这五个环节构成。开源软件的全部源代码是公开的,可从网上自由下载的,因此软件程序一般是免费的,一般开源软件的文档也免费,而支持、培训和服务则要收费。

  IT专家网:那是不是可以这样理解:开源软件和商业软件的差别在于开源软件将程序和文档免费,而商业软件将程序和文档也收费了。

  陆首群:一般人们把开源软件与商业软件区分开来,这样的说法不是很科学的。我们说:开源社区是没有商业模式的,开源软件的社区版完全是自由/开源软件,可以免费下载,自由使用、修改的;但开源软件的社区版在技术上是并不完全成熟的,需要有开源企业(开源软件发行商)接着进行后续开发,推出完全成熟、优化的开源软件产品版。开源企业为了发行开源软件必须建立自己的商业模式,没有商业模式的开源软件不能持续发展,不能形成产业。从这个意义上说我们也可以把开源软件看成商业软件的一种,而通常的商业软件其实应该称为私有商业软件或者传统商业软件。现在开源软件的商业模式已经广泛采用SaaS,软件即服务。

  IT专家网:那SaaS是不是开源软件商业模式的一个立足点?

  陆首群:其实SaaS不仅仅局限于开源软件。开源软件广泛采用这种模式,但也有其他很多模式,比如“红帽”的订阅模式、Mandriva的“俱乐部”“等级服务”模式等等。

  全球开源发展趋势:

  IT专家网:全球开源软件的大趋势是什么?

  陆首群:全球开源软件的大趋势从Linux操作系统的发展来看,分几个波,第一波服务器,第二波桌面,第三波就是移动通讯。从整个软件架构来看应用解决方案的发展。整个架构由操作系统、数据库、中间件、开发工具、应用软件等构成,以IBM为主导的一个架构叫J2EE,以微软为主导的一个架构叫.NET,而现在开源也有自己的一个架构叫LAMP(Linux、Apache、MySQLPHP)。开源的LAMP架构相对于J2EE、.Net架构,形成了一种互相竞争、互相参插的态势,目前的发展趋势是开源架构(Open Source Stack,LAMP)与混源架构(Mixed Source Stack)并存的竞争态势。

  IT专家网:这些解决方案都有什么特点吗?

  陆首群:现在的解决方案要体现时代的特征,比方说现在全球经济一体化,我们就需要去适应这样的时代需求。各个异构系统要实现互联互通,互操作,信息共享,资源整合,就要在开放标准基础上采用由开源或混源的架构所支持的应用解决方案。

  IT专家网:现在开源架构在提供解决方案方面做得怎么样?

  陆首群:原来的开源架构只能对付小的简单的系统,在不断地发展中,解决了在线交易的问题,解决了B2B的问题。现在身价提高了,可以解决大型、复杂系统的问题,它成本低的优势变得很突出,形成了竞争优势。比如Vista推出来了,零售版2000块钱,OEM版本500块钱,而一个Linux版本OEM只需要5块多7块钱,这个优势就非常明显了。
IT专家网:除了这个方面,还有什么趋势吗?

  陆首群:第二个趋势是,为了和开源竞争,私有或传统的商业软件也开始想办法。我们的目标是要把异构系统应用架构各层次的软硬件模块集成起来。而事实上,整个LAMP的各个层次的发展是不平衡的,有些层面的开源软件发展比较好,而有些发展比较慢,比如有些开源数据库现在容量还比较小,和IBM、Oracle、MS的数据库相比,容量、能力方面可能还比不上。这个时候,这类传统软件厂商就想要把自己的产品(软件模块)插入到这个开源架构中去,这个就成了混源结构。比如某用户不适应Linux操作系统,那可以不用,还可用Windows系统,上面架构其他的开源软件,这就是有人提的比较多的WAMP架构,还有其他各个层次的混源。美国做了这方面的统计,有超过60%用户都要求能提供混源架构。而不少厂商也希望推广混源架构,所以这个架构集成也是一个发展趋势。第三个趋势是要满足用户的专用的要求,如安全等级、高可靠性、高可利用率等提高附加值等各方面的特殊要求,来满足行业的不同需求。

  IT专家网我们来总结一下,就是1、从整个软件架构上提供应用解决方案;2、向开源和混源架构发展;3、从满足通用要求转向满足用户专用要求。那么国内的趋势和国际趋势有没有什么不同呢?

  陆首群:原来差别较大,现在慢慢接近了。应该这样说,全球开源运动的发展可以分为三个阶段,第一个是开源运动发展的早期阶段,第二个是开源软件走向成熟的阶段,第三个是应用创新阶段;在国内,开源运动早期阶段基本上也过去了,目前正处于转折期,走向成熟稳定的阶段。我们也不一定非要跟着外国亦步亦趋的走路,目前我们也开始迈开了应用创新的步伐。还有一点很重要,在推动我国开源运动发展时,我们开展了广泛的国际合作。

  IT专家网那么处在转折阶段的标志是什么?

  陆首群:一个标志是国际上的IHVs、ISVs、SIs,特别是一些著名的IT跨国公司主动为我们本土品牌的Linux和开源软件进行兼容性测试和质量认证,如以前,IBM在全球只和Red Hat与Novell/SuSE两家做了质量认证,而去年开始进行了第三家,就是中国的中科红旗,这说明中国的开源产品做得比较稳定、成熟、优秀,别人才过来给我们做质量认证。另一个标志是OEM预装订单的体现,去年我们统计,与国内Linux产品签订预装协议的有600万套(LINUX的OEM),里面有350万是红旗,150万是中标软,还有100万的其他,这些预装的PC厂商有戴尔、惠普、华硕、TCL、神州数码、七喜等(可惜联想、方正等企业尚未跟进)。戴尔办了一个网站,不到一个月,有11万的网友们都希望戴尔能够直接提供Linux系统。在这里面,可以看出国外企业比国内一些企业更有远见。还有一个标志是自主开发的“龙芯”(God Son)E2支持的台式计算机采用新华、共创开源的Linux操作系统和Open Office软件,现已出售1000多台。

  开源社区:

  IT专家网那在开源社区方面中国的发展怎么样?

  陆首群:过去中国在社区开发方面不在行,没有这样的文化氛围,我们很多人不理解开源文化和哲学理念,没有参与国际开源社区的开发实践(或者说中国人在国际开源社区中的开发者凤毛麟角),因而也不能在开源社区中积累工程经验,老外见了我也经常说:中国是开源社区的消费者,而不是贡献者,后来我们的贡献也慢慢多了。Google李开复博士向我建议要建立我们自己的开源社区,这是可以的,但是这是需要条件的,比如建立网站、比如吸引世界上的高手来这里开发,还有工作语言问题,开源社区的志愿开发者来自全球各地,工作语言起码是中、英两种,你不能让老外用中文开发,另外,还有要建立开源社区管理环境,需要开源的领袖在这里吸引人气。但是关键是,我们需要知道我们在开源社区怎么开发、积累哪些经验,所以我们开展和国外的许多社区合作,请他们来人与我们的开发人员、志愿者组成R&D小组、或者我们派人过去,一边培训,一边开发,作为起步。

  IT专家网MySQL的创始人David曾经提到,开源社区是世界的,不存在中国的社区和外国的社区,对于这一点,您怎么理解中国开源社区的未来,是要建一个中国自己的社区还是融入到国际社区?

  陆首群: 如果我们要建立同质社区,如Ubuntu与Debian的关系,我们要取得国际开源社区的支持和授权;如果我们要成立全新的社区,也要在OSI那里注册登记。总之,中国的开源社区应是国际性的,当然要融入国际社区。

开源软件不断被收购

  IT专家网全球范围内,开源软件不断被收购,是好事?还是坏事?

  陆首群:其实不仅仅是开源的小公司被收购,应该说是有特色的小公司,不管是开源的还是传统商业的都有被收购或者兼并的事例。所以,被兼并、收购的小公司,其实都有自己的特色,不仅要有自己的特色,被收购后还要很好地融合到收购公司中去。至于收购公司有私有商业企业,也有开源企业(如Red Hat兼并JBoss)。兼并有失败,有成功的,但是从兼并的出发点来说,对于收购公司肯定是好事情,而对于被兼并的公司,包括开源软件公司不一定是什么坏事,也不一定是什么好事。具体事要具体分析。

  微软的鲍尔默最怕的三件事,一件是开源运动,一件是Google的广播式的商业模式,最后就是怕Apple的数字播放模式。现在我们发现,开源在全世界范围内开发,很多技术走在微软的前面。如:开放标准,互操作,虚拟化技术,SOA,另外一个就是自由编程语言(如:PHP等)。微软也提开放标准,但是事实上他们的开放标准是不完全的、要打折扣的。微软不断地在兼并、“结盟”,在开源领域不仅和Novell“结盟”,也和Red Hat“结盟”。微软这样做得目的是为了孤立其他与其业务有竞争的一些大型厂商比如说IBM、Oracle等。这也是因为IBM最近也要搞桌面了,搞Open Client,桌面是微软的主要市场和禁区。孤立Oracle主要是针对其数据库产品。微软的Vista推出,列出了一个与其兼容的软件项目列表(800项),除这800项软件外,对其他软件不兼容。

  IT专家网Oracle、微软不断进入开源领域是什么意图?对开源事业是好事?还是坏事?

  陆首群:这个从一方面来说,说明了开源运动在不断地壮大;另一方面,开源的理念,一批开源骨干、领袖的理念是:开放、自由、共享、协同,私有利益集团介入以后,这就不平衡了。开源软件与私有商业软件的关系,如上所述有一个“架构层次”互相参插而形成混源架构解决方案的问题;相互之间还有互操作的问题。矛盾、平衡、竞争将引导未来发展的动向。

  IT专家网开源社区程序员们躁动不安,有什么话可以对他们说吗?

  陆首群:开源社区的程序员多数是志愿者,只有少数(在骨干核心层中)依靠社区基金会发放工资。社区志愿者十分重视开源文化和哲学理念,一些大型私有商业软件公司如IBM、HP、Intel甚至微软,都有志愿者或者R&D小组/中心,在为开源社区进行开发工作,我没有听说什么开源社区的程序员有什么躁动不安的现象,我更多的看到一些从企业中跳槽出来进入社区开发的志愿者程序员。

  国内开源软件发展趋势

  IT专家网国内开源软件今后的发展方向:

  陆首群:一个是坚持开源理念(如执行GPL开源许可协议),一个是创新,再一个是应用。这是国内的发展方向。这里,我也曾经提出一个概念,在社区,我们进行集体开发、合作创新和对等评估。这整个过程中,应该源码公开。社区开发是非常重要的阶段,但不是全部的过程,另一个也很重要的过程我总结为叫开发工程化实现技术的阶段,使不成熟的技术成熟化,将效率不高的技术优化,在这个阶段我们可以进行专业开发、自主创新;进而拥有自己的商业秘密和技术秘密,最后形成一个商业模式,这样才能够持续发展。

  IT专家网那您能说一下国内厂商先天性不足体现在什么地方吗?

  陆首群:先天性不足主要体现在下面几个方面,一个是公司小而分散,几十个人、一百来人就组成一个公司;另一个实力不足,如资本少,而且盈利薄。

  IT专家网开源企业自己可以作些什么工作呢?

  陆首群:企业要在社区开发的基础上进行工程化实现技术的开发工作,要让自己的软件成熟化,提高软件稳定性,进行质量认证,同时要重视社区的建设,参与国际社区的开发工作。

开源软件和商业软件的交锋:

  IT专家网吴炯先生提到:中国对社区回报太少是因为中国的平均生活水平还比不上外国,对这种说法怎么看?

  陆首群:这种说法比较幼稚,也是不对的。中国对国际社区回报少主要有以下几个原因,一个是观念问题,以前在中国没有社区开发的概念,习惯于封闭式的企业开发模式;一个是知识技术水平的问题,要参与社区开发,特别是进入核心层进行开发,成为接触、开发和修改源代码和核心人员,不是说要参加就能参加的。

  IT专家网那我们可以做什么呢?

  陆首群:当然是要在国内普及开源文化,让大家理解社区开发机制;开展国际合作,与国际开源社区核心骨干人员结成R&D小组;参加国际开源社区的开发工作,边培训,边开发,边贡献;开展国内、国际开源软件知识竞赛;建设自己的开源社区。此外,国内很多企业也都在鼓励自己的员工参与到开源运动中来,这对于开源运动也是很好的一件事情。

  IT专家网对于在小木屋里没有必要用金马桶什么看法?怎样打消CTO在进行商业采购时对于开源软件的疑虑?

  陆首群:要搞清楚对开源软件的一些核心概念,让大家明白开源软件不仅安全,而且便宜,为什么不用呢?还有就是企业在进行商业采购的过程中也存在跟风的情况,所以我们可以拿国内的同行业企业甚至国外的同行业企业的采购情况作为例子,比如金融业,你看美国的花旗银行、JP摩根比我们的规模要大,金融对于安全的要求也很高,他们都很放心地应用开源软件,我们国内的金融业当然也可以应用;欧洲很多政府,甚至美国政府的某些部门,坚持选用Linux和开源软件,其考虑的出发点是安全和性价比,当然中国政府对开源软件的采购也与日俱进。

  IT专家网我们开源软件具体发展情况如何?

  陆首群:我和你说一项数据,从04年到06年,国内Linux年增长率为60%,远高于全球平均水平;Linux市场占有率,国内本土的品牌位居第一位、第二位;以开源数据库为例,不到半年对MySQL商业版卖了一千多套;华南某单位参与了欧盟关于开源互操作性质量平台研究、建设的合作计划(由欧盟馈赠研究经费500万元),并计划在全球建设六个开源的“竞争力中心”(一个在中国)。

http://www.lupaworld.com/viewnews_15840.html

  从中国市场来看,Linux业内人士有个基本的预测,认为市场现存Linux品牌过多(主流品牌就至少超过5家),未来发展趋势必是品牌集中化,最终可能演变为1至3家。但计世资讯分析师认为:中国Linux市场品牌数量不一定减少,但市场竞争参与者会发生巨大变化。特点1、软件巨头将入主 Linux市场;特点2、现有多数Linux操作系统提供商将转型或调整Linux操作系统作为非主营业务的经营方向。原因为何?

  原因一、其他产品领域的竞争需要软件巨头进入甚至占领操作系统市场。作为核心技术平台,Windows和Linux的竞争位势将决定其上层所有软件产品市场的利益划分,换言之,Linux市场的竞争并非是目前现存的这些Linux操作系统提供商之间的竞争,而是那些把握数据库、中间件、应用软件市场的软件巨头之间的竞争。这从他们的战略步骤就能一目了然。

  ORACLE通过近两年的并购俨然已经成为技术、产品最为全面的企业级应用软件提供商,、中间件、数据库更是其主要竞争领域,无论是出于打造企业整个软件产品价值链的需要,还是因为来自数据库市场微软SqlServer的巨大竞争威胁,ORACLE都需要在主导操作系统竞争中发挥力量,那么控制 Linux是必然的选择.目前ORACLE在北美市场已经推出自有品牌的Linux操作系统。IBM作为全球第二大软件提供商对Linux的支持更是由来已久。

  从数据库DB2、中间件的WebSphere竞争策略来看,她必须利用操作系统作为竞争工具,从PC、服务器、存储等硬件来看,IBM也必须抑制Windows架构平台的垄断趋势。IBM有自己的操作系统,并因为Unix领先的市场份额优势与高端服务器形成了在各自软硬件领域相辅相成的竞争优势,在封闭的专有系统上获得巨大利益的IBM,在开放系统Linux上也一定会竭尽全力占据主导地位的。

  再分析微软,作为最聪明的竞争者,当她无法遏制Linux这一竞争产品的发展势头时,那么最佳的选择就是主导其发展,对操作系统技术、产品的了解和投入相信没有谁能超过微软,那么有一天微软宣布提供Linux操作系统也完全不必惊讶,占领Linux市场50%的市场份额就是最佳的垄断策略。

  原因二、收入压力和竞争环境将迫使多数专一Linux操作系统提供商退出市场。首先,1亿元的市场不可能容纳超过5家的竞争参与者都获得满意的回报,在Linux成长期的现阶段,对于操作系统厂商而言,投入是要大于回报的,这不是所有厂商都能坚持到最后的。其次,软件巨头们主导Linux市场可以有两种选择,一是通过支持一至两家专业的Linux操作系统提供商来发挥主导作用,二是自己成为Linux产品提供商,无论哪种选择,未来专一的 Linux操作系统提供商只能存活1至2家最具实力的竞争参与者,因为其他软硬件产品提供商不会去无谓地认证支持更多非自有品牌的Linux。

  原因三、市场变革的时间将由Linux应用成熟度来决定。为什么市场洗牌不是现在,而要再等5年?主要原因是Linux的产品技术发展不够完善,未能在核心领域关键应用大规模推广起来,所以当前软件巨头进入Linux操作系统市场的时机尚不成熟,但以Linux目前的发展趋势看,5年内这一应用状况将会发生快速转变.当Linux在服务器端实现全面成熟应用的那一刻,就是市场竞争格局爆发巨大变革的开始。

http://www.lupaworld.com/viewnews_15971.html

2007年03月08日

2007-01-16 09:03:29

我相信,不知道微软、比尔.盖茨、windows操作系统的中国人没有多少了。我也相信,绝大多数中国人不知道GNU、FSF,不知道自由软件运动的领袖、被誉为最后一个真正的黑客的理查德.马修.斯托曼(Richard.Matthew.Stallman,RMS),其中甚至包括许多计算机专业的大学生。这篇文章正是写给这些人看的,其主要材料来自于方兴东写的一篇关于斯托曼的传记类文章,加了一些个人理解。

1理查德.马修.斯托曼其人

中国,是一个软件盗版大国,我所见的人们,没有几个人是用正版软件的。凡是懂得一点知识产权的人,也许会觉得用盗版软件是不道德的。好象这种道德观念是天经地义的,就象人们本应当互相关爱一样。微软也总是理直气壮的将一个又一个侵犯它的版权的用户告上法庭,它的理由很简单:软件是有版权的,用户未经许可,任何复制、传播行为都是非法的。

软件不允许复制传播,也许全世界的人们都认可,但这个叫做理查德.马修.斯托曼的人到死都不会苟同这种认识。上幼儿园时,老师就会教导我们:“如果你有糖,不应该独个吃,而应该和别的孩子一起分享它!”但现在,你有了一套很好用的软件,当你打算和朋友分享它的时候,这时有人告诫你:“不要那么做,不然你会因此而坐牢的。”社会应该是这样子的吗?不,它绝不能是这样的。理查德.马修.斯托曼认为用户彼此拷贝软件不但不是“盗版”,而是体现了人类天性的互助美德。自由是根本,用户可自由共享软件成果,随便拷贝和修改代码,“想想看,如果有人同你说:‘只要你保证不拷贝给其他人用的话,我就把这些宝贝拷贝给你。’其实,这样的人才是魔鬼;而诱人当魔鬼的,则是卖高价软件的人。”理查德.马修.斯托曼说出他的这些观点是在 20世纪80年代的初期。

理查德.马修.斯托曼这个人是“五短身材,不修边幅,过肩长发,连鬓胡子,时髦的半袖沙滩上装,一副披头士的打扮。看起来象现代都市里的野人。如果他将一件“麻布僧袍”穿在身上,又戴上一顶圆形宽边帽子,有如绘画作品中环绕圣像头上的光环。一眨眼的功夫,他又变成圣经中的耶稣基督的样子,散发着先知般的威严和力量。”这是作家的描写,我眼中的斯托曼只是一个普通人,一个具有崇高理想的普通人,一个颠覆了商业私有软件领域的人。他是美国科学院院士,但他更像是一个传教士,率领无数信徒沿着一个神圣的方向前行。按照我们这个国家目前的政治信仰,斯托曼是一个彻底的共产主义者。我毫不掩饰自己对于共产主义的见解,共产主义在某种程度上就是理想主义,一种摆脱了低级趣味的、朴素而高尚的政治主张。

2痛苦的抉择

1971年,18岁的斯托曼在麻省理工大学(MIT)的人工智能实验室做了一名程序员。那时,他们有一个软件共享社区,他们为当时的人工智能实验室的计算机编写了一个分时操作系统,并不断地对其进行修改,当时无论是某个公司成员或另一所大学想获得它,大家都会非常高兴地把源程序给他。如果你看到别人使用一种你没见过且有意思的程序,你可以坦然地向他索要程序,这样你就可以读它、改它,或拆卸部分用于新的程序。社区中的这些人是真正意义上的黑客,而现代的大多数所谓的黑客,则是计算机的驻虫。就这样,那时所有软件都是共享的,私有让人嘲笑,专用受人鄙视。当然,这种共享,只是在这个特定的社区中,那时全世界没有多少人掌握计算机技术。斯托曼很快就成为这个社区的重要成员。

20世纪70年代末,微软公司的创始人比尔·盖茨《致电脑业余爱好者的一封公开信》为标志,以世界知识产权组织《伯尔尼公约》为框架,软件步入了版权时代。随着现代商业软件的发展,对利润的疯狂追逐不但割裂了传统,极大地偏离了计算机的基本精神。而且还在不断变本加厉。专有软件所有者制订了规则:“如果你与你的邻居共享,你就是盗版者。如果你想作点改动,那你得乞求我们来做。” 到80年代后,计算机的商业化和软件专有化席卷整个产业,黑客们的黄金时代结束了。一个又一个有才能的MIT程序员离开了校园,投入了市场的怀抱。尤其是 Symbolics公司的成立,挖走了社区中的许多黑客,大大伤了MIT人工智能实验室的元气。斯托曼感到:一个时代结束了。

斯托曼说:“那时,人工智能实验室已没法再支持下去,我是最后一个还想让它活起来的呆瓜。但后来我也没办法了,因为一个人根本发挥不了作用。……随着社区的终结,我面临着一个道德上的抉择。最简单的就是投身于专有软件世界之中,签署不公开协议,并承诺不帮助同行、同事。而且自己也很可能编写软件,并在不公开协议的前提下发布软件,去同流合污,迫使更多的人背叛自己的原则。显然,走这条路,可以挣大钱,而且使编写代码的工作增添一份金钱上的快乐。但是我知道,等到自己职业生涯终结时,我再回首这些年为分离人类而砌造的‘墙壁’。我会感受到,我将自己的一生都用在使这个世界变得更加糟糕。” 而他的另一个选择,很直截了当,但令人不愉快,那就是从此离开计算机领域。“这样我的技能不会被滥用,但也将被浪费,我不会因为分化和限制计算机用户而感到有罪,但这些事情会继续发生。……因此,我开始寻找一条出路,使程序员可以做真正的好事。我问自己,我能写什么软件,我能否让社区重焕生机。”

我深信斯托曼所陈述的当时的心理活动都是很真实的,因为他后来的一切活动都在围绕一个目的:使程序员可以做真正的好事!于是,他与专有软件领域开始了抗争,这种抗争一直持续到现在,将来依然存在,只要专有软件一天不消失,它就会存在。

3革命

开始时,斯托曼在思考,首先需要的是一个操作系统,这是开始使用计算机的关键软件。有了操作系统,就能做许多事,没有操作系统,计算机都无法运行。有了自由操作系统,我们就能再次组建一个相互合作的黑客社区。而且任何人使用自由软件都不必剥夺他/她与朋友家人的共享权利。作为一名系统开发者,无疑,斯托曼是可以胜任这项高尚的工作的。“虽然我没有认为自己一定能成功,但我意识到自己就是命定做这项工作的。”斯托曼选择做一个与Unix兼容的操作系统。这样容易被移植,而且Unix用户可以方便地转移过来。这个系统的名字就叫GNU,这个名字的确定就是遵循黑客传统,是一个递归的缩略词:“GNU IS NOT UNIX。” 也许,刚接触电脑,只知道天下有windows的的朋友们会问,为什么不与windows兼容呢?因为那时还没有windows。有unix的时候,微软尚未存在。

但一个操作系统并不仅仅意味着一个内核(管理磁盘,内存分配等),而且仅能运行其他程序也是不够的。一个完整的操作系统,还需要有指令处理器、汇编程序、编译器、解释程序、调试器、文本编辑器、邮件软件等等,这样才能形成一个完整的系统。开发这样一个完整的系统是项庞大的工程。斯托曼决定尽可能采用已有的自由软件,比如一开始他将Tex作为主要的文本格式标识符,几年后他又用X Windows系统作为GUN的窗口系统。

1984 年1月,斯托曼已启动了GNU计划,他担心MIT会要求产品的所有权,会给产品强加入他们的销售条件,最终又会成为专有软件,因而他辞去了MIT的工作。辞职后,他为买不起电脑而发愁时,发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,这样他就每天晚上溜进去工作。久而久之,白天他也跑去用实验室里的电脑。 当时人工智能实验室主任Patrick H. Winston并不干涉。因为Winston始终不把斯托曼的辞职当真,只要斯托曼能创造些好东西给大家用,实在没有必要把这位共事13年的老同事打发走路。因此他爽快地邀请斯托曼可以继续使用实验室的设备。从此,斯托曼就成了特殊的一员。

GNU 工程启动后,斯托曼听说有一个自由大学编译器套件(VUCK)。他去信询问能否用入 GNU。答复是嘲弄式的,说对大学是自由的,但对软件本身不行。于是,决定他为GUN编写的第一个软件就是一个多语言、多平台的编译器。他想利用 Pastel编译器的源代码,但最终放弃。从头编写了新的编译器,名为GCC。(可能刚接触计算机的朋友又不懂了,不知道什么是编译器。简单的说,我们所用的软件几乎都是由编译器生成的)。

1984 年9月,斯托曼开始开发字处理器GUN Emacs,1985年初,它开始可以工作。这使它可以在Unix系统上进行文本编辑。此时,许多人想使用Emacs,因此一个现实的问题是:如何传播它?当然,他将其放到了MIT计算机的匿名服务器上。但那时互联网还未普及,人们很难通过FTP获得拷贝,而且失业的斯托曼也需要收入。于是,他宣布任何人都可以用150美元的价格获得全部程序。这就是说,如果你愿意从网上下载,就下载,是免费的。如果你无法从网上下载,那么就要支付一些费用才能得到,当然,所支付的费用是远低于当时的专有软件的价格的,而且,用户可以得到软件的源代码,这是专有软件最为忌讳的事情。这样,自由软件的分销商业模式就此诞生。如今,整个基于Linux的GUN系统都是如此。

由于GNU是公开源代码的,为了防止不肖厂商利用自由软件,使其专有化。斯托曼别出心裁,创造了Copyleft的授权办法,让所有的 GNU程序遵循一种“Copyleft”原则,即可以拷贝,可以修改,可以出售,只是有一条:源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。Copyleft保证了自由软件传播的延续性。我相信,很大一部分人对自由软件是否公开源代码不感兴趣,只是对其免费比较感兴趣,但自由软件和销售拷贝之间并没有矛盾。事实上,销售拷贝的自由是至关重要的:把自由软件收集到CD-ROM上出售对整个社团都很重要,而销售它们又是为开发自由软件筹集资金的重要手段。因此,如果人们无法将某个程序自由地收集到这些集合中时,这个软件就不是自由软件。虽然自由软件允许收费,但我并没有看到卖的很昂贵的自由软件。譬如,同样是操作系统,WINDOWS XP卖了上千块人民币,而一套Fedora Core 5只花数十元人民币就能得到。另外,你买了WINDOWS XP,并不算完,像office系列软件等依然需要购买。而一套Fedora Core 4是一个完整的系统,包括了大多数常用软件。

斯托曼的EMACS得到许多用户的喜爱,有一大堆人去玩它,然后精益求精,越改越好。目前已有几百种EMACS的副程序,可用在50多种电脑上,从微电脑到 Cray的超级电脑都可用EMACS。 由于EMACS的成功,Richard Stallman设立了一个基金会:自由软件基金会(Free Software Foundation FSF);凡是捐助FSF和GNU计划的厂商,可享有一些优待。这样,单单1989年,FSF就收到267782美元的捐助,基金会也因出售GNU程序手册和磁带,而赚了330377美元。此外,斯托曼也不再天天溜回人工智能实验室“借”用电脑,因为许多厂家已为FSF提供一大堆的高性能工作站等硬件设备,包括HP、Thinking Machine、Sony,甚至UNIX的娘家—贝尔实验室,也贡献了不少设备。也有一些厂商捐赠现金,并把技术人员送到FSF来向斯托曼学习,而且支付斯托曼的员工薪水。 FSF就用这些钱来养起14位基金会成员: 9位程序设计师,3位负责技术资料撰写。虽然斯托曼自己不领薪水,但他不能期望他的同仁也和他一样看得开,而饿着肚子为理想拼斗。但FSF的程序设计师一年也只有2万5千美元的薪水,这是一般厂商的一半或三分之一。斯托曼之所以以低薪待人,原因就是可多请几位志同道合的黑客,为理想而工作!

GNU 在工作站和微机市场很风光,许多工作站/UNIX和微机厂家,都把GNU纳入他们操作系统,包括Convex Computer、DEC、Data General及以前的NeXT等。GNU工程激励了许许多多年轻的黑客,他们编写了大量自由软件。最后,一个芬兰的大学生李纳斯·托瓦兹写了一个类似 UNIX操作系统的内核,称为Linux,把所有GNU软件和硬件连接了起来,但Linux并不能代表整个操作系统,Linux只是个内核,整个系统还包含数以百计的软件工具和实用程序,大多是由GNU黑客们完成的。他认为,整个操作系统称为GNU/Linux比较合适。Linux内核为GNU工程画上了一个完满的句号! 同时,自由社区也日益壮大起来,斯托曼的理想终于实现了。

4他无法再控制这场运动

斯托曼认为,在自由软件时代,软件公司可以靠服务和训练赚钱。如果你公司没有人会用源代码,你就得请位程序员,帮你修改由FSF得来的Copyleft程序;你不必怕你出钱所改的程序会流传到另一家公司,因为那家公司也许会为这软件改头换面,帮它抓虫,或修改,或添加些新功能。而在任意拷贝的情况下,你也因而受惠。所以程序员绝对饿不死,仍会像现在高价软件的时代一样,有许多“服务”的大钱可赚,只不过不可能象盖茨这样积聚起世界第一的巨额财富。而GNU 的软件也能使写程序的人更具生产力,因为他不必凡事都从零做起,可根据已有的软件来改进。所以斯托曼希望,有一天软件业者不是靠目前的 “Copyright”版权法,迫使客户花费巨额资金购买软件,而是依仗提供服务(如技术支援、训练)来获取应得的报酬,这种报酬可能会比一般人高,但是绝对不可能为一个小公司培养出几百个百万富翁。简而言之,未来软件业的基本准则就是“资源免费,服务收费”。

近几年,随着Linux系统的迅速崛起,以及良好的声誉,再也没有人对自由软件的全新商业模式表示怀疑。在斯托曼思想的指导下,自由软件已经成功地步入市场主流,占据了市场实地。毕竟,在商业横流的今天,思想在贬值。自由软件也只有在夺取市场政权后,才能真正确立自己的实力地位,促使整个软件业模式发生巨变!2005年,微软不得不接受一个事实:必须与自由软件共生共存!庶民,同样能够赢得胜利!

赢得胜利之后的斯托曼总是风尘仆仆,行囊相随,四处布道。他带着一台笔记本电脑,但这不是他个人的,而是属于自由软件基金(FSF)。其实,斯托曼从来就没有拥有过一台自己的计算机。也从来只用自由软件(当然他从来没有用过Windows)。而且,他也没有自己的汽车、电视和房产。这位 46岁的单身汉节俭地居住在一间租来的房子里。已有15年了,没有领取过一个月的正式工资。因为他的工作就是使软件获得自由。

但是在商欲横流的今天,人们更愿意追逐财富,而不是贫寒的斯托曼的高尚思想。因此不足为怪,连自由软件团体内的许多人也开始离他而去。同时,随着自由软件迅速崛起,影响力大增,而斯托曼毫不妥协的个性和思想使其在自由软件内部也越来越成为争议人物。

Apache Web服务器和GNU/Linux操作系统日渐流行,新一代黑客们受到鼓舞,纷纷投入商业领域,越来越多的人加盟自由软件,他们是一类全新的黑客:一方面呼应自由软件的精神,一方面又积极拥抱商业世界。他们鼓吹自己能够创建比专有软件更稳定更灵活更少“臭虫”的软件产品,同时又积极捕捉每一个商机。于是,与斯托曼持不同政见者将“自由软件”这个名字改成了“开源软件”,看起来好象两者兼容,但斯托曼认为,两者最大的区别就是自由软件将自由精神放在首位。但是对商人来说,自由(free)与免费(free)是同一个词,与斯托曼布道的“自由精神”不同,他们更愿意谈论实际问题,也就是能不能赚到利润。为了避免纷涌而来的投资者被斯托曼“吓跑”,与斯托曼持不同政见者还得联起手来,将斯托曼屏蔽起来。

这世上其实没有什么新东西!历史总在一幕一幕重演,只是时间和地点不一样。我想起了中国的“文革”。虽然,我不是搞政治的,但是看到自由软件阵营中逐渐分化为两个派系,就想发表一点个人观点,我不觉得这种观点不利于国家、民族的团结。我想,许多中国人一看到文革那段历史,无数人的悲剧命运,就会认为毛泽东做错了一件事情。当斯托曼颠覆了商业专有软件领域之后,一个自由软件王国诞生了,我总觉得它像极了1949年,软件的使用者,可以扬眉吐气的对商业软件说 “NO”了。所有的GNU作品并非属于哪个人,哪个公司,它们是属于全人类,打破了软件的私有制度,使得软件用户可以取其所需。自由软件阵营中,与斯托曼对立的人,却觉得这个王国太贫穷了,他们认为“贫穷不是共产主义”,“不管白猫黑猫,抓住耗子就是好猫!”。他们不像斯托曼那样彻彻底底的追求自由,他们是一群现实主义者,对他们而言,斯托曼是一种困窘,是一种障碍,必须将他不惜代价地推入密室,以免吓跑投资者,因为投资者总误会 "free"是免费的意思!

我不怀疑,自由软件阵营中的现实主义者们的本意也是好的,是想让自由软件具有更广阔的发展空间,就像中国的改革开放一样,要积极与国际接轨,要招商引资,总不能报着理想当饭吃吧?但我只是觉得,现实主义者将越来越背离自由软件的原始意义。也许,有一天,它会蜕化成商业的专有软件,就像苏联的命运。中国为什么无法开发自己的操作系统,我想没有理想是最大的原因。

但斯托曼彻头彻尾的是个坚定的理想主义者,如果他不是这样的人,那么不可能有GNU的产生!他宁愿固守贫穷,也不愿意放弃他的理想,自由,自由,乌托邦!毫无疑问,无论是自由软件运动还是开放源代码,都来源他20多年前开始的努力,这肯定是计算机历史上最脍炙人口的传奇故事。对于目前的成功,斯托曼感到非常高兴,但也有更多的焦虑。因为他感到自己明显被排斥在外。“有人极力想改变历史,否定我在这场运动中的地位”对于人们用Linux来指代整个操作系统,斯托曼十分痛心,他说正确的用词应是“GUN/Linux”。 斯托曼承认李纳斯.托瓦兹的贡献很关键,是他完成了GUN/ Linux的内核。但是斯托曼估算,内核只占整个系统的3%,相比之下,GUN项目贡献了30%的代码,其余67%的代码来源于其他方面。但令他欣慰的是,GNU的一些原则仍在起作用。他认为这种原则不仅使软件开发更显活力,更能生产出优质软件,还认识到这本身是一种行为准则。

批评者认为,斯托曼极力维护GNU的遗产,是沉湎于这场运动的枝枝末末,对整个自由软件都是有害的。对大多数开放源代码倡导者来说,颠覆微软才是主要的斗争方向。但斯托曼说:“我关心的是精神,是GUN项目内在的哲学。这种哲学就是它存在的理由,那就是自由软件不仅仅是为了方便,也不仅仅是为了可靠。真正重要的是自由,协作的自由。我不关心某个人或公司。因此我认为单纯与微软作战偏离了这个运动的方向。”

现在,斯托曼的拥戴者还有,我也是其中一员,但是斯托曼的大多数主张还是被人们忽略了。如今只有“Linux”充斥着媒体的标题,而其背后的思想开始逐渐隐去。

现在,斯托曼依旧没钱、没势,连原先的许多信徒都被分化而去。这场运动给他带来的唯一收获可能就是:无论斯托曼走到哪里,都会有人乐意借给他计算机,使他能及时查看电子邮件。他还是那样不修边幅,无所顾忌。但是与当年执着相比,他的精神状态开始呈现一种新的焦虑和紊乱,而这一切正是他创造的自由软件的成功,施加给他的。而且可以肯定,斯托曼必将越来越被自由软件成功的浪潮所淹没。因为,他引燃的这场革命已经完全超越了他的驾驭范围。这也是许多思想家、革命家、理想主义者的共同的命运!

http://www.wdou.cn/space/index.php/6773/action_viewspace_itemid_6137.html

2007年03月04日

发布时间: 2007-02-27 16:06    作者: 网络转载    来源: IBM

  2007 年将是载入史册的一年,Sun Microsystems 公司将于这一年在开源许可协议下发布 Java 开发包(JDK),从而放弃了对 Java™ 平台的统驭,将权力交给了 Java 开发人员社区!在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台的新方向,从脚本到 bug 修复到新语法。

  2006 年又是 Java 平台繁荣的一年。尽管遭遇了来自 Microsoft(C#)和脚本语言社区(Ruby)的冲击,但 Java 语言仍然保持着其世界头号编程语言的地位。同时,尽管 Java 6 的发布很值得庆祝,但比起宣布 Java 将在 GNU General Public License 下完全开源这一事件来说,却不免有些黯然失色。Java 在 2007 年还能保持这种势头吗?让我们来看一下成败的可能。

  Java 平台将成为开源平台

  2007 年上半年,Sun 将在一个开源许可协议下发布 Java 开发包(JDK)。解除 JDK 的禁锢对于 Java 开发人员社区来说是巨大的一步,它将在今后的十年中推动 Java 平台的发展。

  JDK 的质量将会显著改善,因为程序员们不再仅仅报告 bug 并开始修复。Java Developer Connection 的 bug 报告将会包括对 JDK 中的问题部分的详细分析,并提供修复的补丁。正如Linus 法则 所陈述的那样,“只要给予足够的关注,任何 bug 都是显而易见”,即调试是可并行进行的。优化也是一样。开源使两者得以 并行。

  分支项目

  遗憾的是,设计并不是和调试、优化一样可以并行完成的。清洁的 API 有时也需要有一只独裁的手。但独裁者的缺点是:有时他们知道在做什么,有时却不知道。意图成为独裁者的各方面之间的竞争往往是发现问题最佳解决方案的惟一方式。

  很少有公司能够负担得起这样的代价,为一个产品开发多个独立的实现,以便在多个产品中选定保留一个而摒弃其余的产品,但开源社区却在朝这个方向努力。所以,您会在 Java 平台的各个层次中发现分支产品:语言、虚拟机和库。大多数的分支产品会失败,但这没什么。好主意会脱颖而出。一些分支产品会一直存在下去,一些会重新并入标准 JDK 中。明年的这个时候,分支产品与主流产品之间的差异也许不会很明显,但这个过程会继续下去。

  Sun 会在几个月后发布 Java 7,Dolphin 的一个早期的 beta 版,以此作为开端。Sun 无法发布更早的 JDK 版本,因为存在一些只有在 Dolphin 中才能解决的构建问题和许可协议问题。尽管如此,仍有望看到第三方着手进一步细分 Sun 的版本,来提供 Java 6、Java 5、Java 1.4,甚至更早版本的流行开源实现。

  早期的一些探寻分支产品的人们可能会侵犯 Sun 公司的商标,收到 Sun 的律师寄来的讨厌的律师信。我们需要一个通用的未注册为商标的名字,让所有人都能使用。我建议用 “J” —— 我希望没人用单字母作商标。

  开源项目从未消亡,只是有些褪色。就像之前的 Blackdown Project、GNU Classpath、Kaffe 和其他开源 JDK 项目一样,他们的开发人员都转向其他事情了。如果一个项目至今还没有达到 1.0,那么恐怕以后永远也达不到了。

期待 Java 7

  Dolphin 不会在 2007 年发布。2008 年是更为现实的目标。那就是说,工作尚在进行中,它的一些功能也许会作为早期的标准扩展或至少作为 beta 登场。

  遗憾的是,为一门语言添加功能远比删除功能要简单得多。几乎不可避免地,随着时间的推移,语言不是朝着简单的方向发展,而是越来越复杂,越来越让人困惑。即使是那些单独看起来很好的功能,在彼此叠加后也会出现问题。

  令人遗憾,Java 社区没有接受这个教训,尽管这种失败并无特殊性。但总有一些太酷又太让人激动的新语法令语言设计者难以抗拒 —— 即便这样的新语法不能解决任何实际问题。于是对 Java 7 的新语言功能就有了巨大的要求,包括闭包、多继承和操作符重载。

  我猜想在这一年结束前,会在 Java 7 beta 中看到闭包,也许还能看到操作符重载(有五成的把握),但不会出现多继承。Java 中有太多东西是基于单个根的继承层次。没有可行的方式改进多继承,使之适应这门语言。

  目前有许多语法糖方面的提议,有一些有意义,有一些没有。许多提议都专注于将像 getFoo() 这样的方法替换为像 -> 这样的操作符。

列表

  最有可能的是使用数组语法来实现集合访问。例如,不再采用下面这样的代码:

List content = new LinkedList(10);
content.add(0, "Fred");
content.add(1, "Barney");
String name = content.get(0);

  而是编写如下代码:

List content = new LinkedList(10);
content[0] = "Fred";
content[1] = "Barney";
String name = content[0];

  另一种可能性是:允许为列表使用数组初始化程序语法。例如:

LinkedList content = {"Fred", "Barney", "Wilma", "Betty"}

  这两项提议都可以在不改变虚拟机(VM)的前提下由编译器稍显神通即可实现,这是任何修订过的语法的一项重要特征。这两项提议都不能使任何现有的源代码失效或重定义现有的源代码,对于新语法来说,这是一个更为重要的问题。

  真正能够影响开发人员生产力的特性功能应该是用于管理表、树和映射表的内置原语,比如在使用 XML 和 SQL 时遇到的那些。JavaScript 下的 E4X 项目和 Microsoft 的 Cω 和 Linq 项目是实现这一想法的先驱,但可悲的是,Java 平台似乎错过了这个机会。如果有人想要通过编译器来玩一个潜在的救场的游戏,这里是一个不容错过的好地方。

属性

  很可以还有一些针对属性访问的语法糖。一个建议是使用 -> 作为调用 getFoo setFoo 的缩写。例如,不再使用如下代码:

  而是使用如下代码:

  也有人建议用另外一些符号来代替 ->,包括 .#

  将来,您有可能必须将 Point 类中的相关字段显式地标识为属性,如:

public class Point {
  public int property x;
  public int property y;
}

  我个人对此并未产生什么深刻的印象。我宁愿 Java 平台采纳一项更为激进的方法,让我们可以真正地使用公共字段。然而,如果将 getter 或 setter 定义为与字段相同的名称,然后读写字段就会自动地分派到相应方法中。这样做所使用的语法更少,也更加灵活。

随机精度算法

非操作符重载

值得一提的是,对标准数学符号的重用不同于 操作符重载,至少不是在 C++ 中引起问题的那种重载。加号和其他操作符在任何程序中都具有明确的意义。无论在哪一个程序中,它们的意义都不会有所更改。对于相似的操作重用相同的语法让代码更易于阅读。若重新定义语法,使之在不同的程序中有不同的意义,代码就会较难理解。

  另一项将方法替换为操作符的建议致力于 BigDecimalBigInteger。例如,目前您不得不像这样编写不限精度的算法:

BigInteger low  = BigInteger.ONE;
BigInteger high = BigInteger.ONE;
for (int i = 0; i < 500; i++) {
  System.out.print(low);
  BigInteger temp = high;
  high = high.add(low);
  low = temp;
};

写成这样会更清晰:

BigInteger low  = 1;
BigInteger high = 1;
for (int i = 0; i < 500; i++) {
  System.out.print(low);
  BigInteger temp = high;
  high = high + low;
  low = temp;
};

  这项建议似乎无关紧要,但它可能会导致过度使用这些类,进而导致尚不成熟的代码中性能降低。

将 JAM 从 JAR 中分离出来

  Java 7 会抚平 Java 开发人员长久以来积聚的愤怒:各种各样的类加载器和相关的 classpath。Sun 公司在 Java Module System 这个问题上经受了又一次打击。数据将存储到 .jam 文件,而不是 .jar 文件中。这是一种 “superjar”,它包含了所有的代码和元数据。最重要的是,Java Module System 将首次支持版本,所以可以说一个程序需要 Xerces 2.7.1 而不是 2.6。它也允许指定依赖项;例如,可以说一个 JAM 程序需要 JDOM。它也要允许在加载一个模块时不必加载全部模块。最终,它要支持一个集中式的存储库,其中要能提供多个不同的 JAM 的不同版本,应用程序能够从中挑选所需。如果 JMS 适用,jre/lib/ext 将会成为过去时。

包访问

  我也希望 Java 7 能够稍微放松一下访问限制。子包也许能够看到上层包里的包保护字段和类方法。也就是说,子包也许能够看到上层包里明确声明友好性的包保护成员。不论用哪种方式,将应用程序分割成多个包都会变得简单的多,也会显著地改善可测试性。只要子包中含有单元测试,就不必使用公共方法去进行测试。

文件系统访问

  自从 1995 年开始,文件系统访问就成为 Java 平台的一个主要问题。十多年后,还是没有可信赖的跨平台方式来执行如复制或移动文件这类基本操作。处理这个问题是过去至少三个版本的 JDK(1.4、1.5 和 1.6)的公开问题。遗憾的是,为了迎合不怎么普遍却更具诱惑的操作,如内存映射 I/O,有些乏味但却很必要的 API 被搁到了一边。JSR 203 可能会最终解决这个问题,给我们一个可行的、跨平台文件系统 API。工作组也许会再一次对其无比崇尚的真正的异步输入/输出文件系统这个相对不重要的问题上花费过多时间,从而让该 API 再一次束之高阁。下一年的这个时候我们就会知道。

实验

  无论做出什么样的改变,如果它们首先是在开源社区里实现,那么都是令人愉快的,所以我们只要看一下真正的区别有多大或多小。为此,Sun 公司的 Peter Ahè 开始了 java.net 上的 Kitchen Sink Project。目标是要分别地分派和指定 javac 编译器,来测试像这样的许多不同想法。在博客里写写这些可爱的功能是一回事;但真正制造运行的代码则全然是另一回事。

  客户机 GUI

  尽管许多人还没注意到,但 Java 平台真正出现在桌面上到现在已经有四五年了。已经有几个优质的桌面应用程序是用 Java 代码编写的,包括 RSSOwl、Limewire、Azureus、Eclipse、NetBeans、CyberDuck 等等。这些应用程序几乎用了每一个可用的 GUI 工具包来编写,包括 Swing、AWT、SWT,甚至是平台原生的工具包,如 Mac OS X 的 Cocoa。我看不出下一年会有哪个工具包在众多工具包中胜出,尽管 Swing 在制造一些保留本色的应用程序方面似乎比其他工具包表现得更为出色。

  用 Swing 进行开发仍是相对挑战的,但随着 Swing 应用程序框架的到来,这种情况也许会在下一年得到改善。这一框架目前尚在 Java Community Process 中作为 JSR 296 开发。下面是 JSR 关于此的描述:

编写良好的 Swing 应用程序试图为启动和停止,以及管理资源、行为和会话状态的代码使用相同的核心元素。新应用程序从头开始创建所有这些核心元素。Java SE 不支持构造应用程序,这常常让开发新手们感到有点茫然,特别是在他们打算构建一个规模远超于 SE 文档中提供的例子的应用程序时。

通过定义 Swing 应用程序的基本结构,这项规范(最终)会添补该空白。它会定义一小套可扩展的类或 “框架”,用于定义相对于大多数桌面应用程序较普遍的基础设施。

  Swing 应用程序框架应支持典型应用程序中的大多数东西,允许开发人员恰在一些自定义的点处插入,如启动和停止时。在启动和停止之间,它将处理 windows 的保存和恢复,以及应用程序的其他部分。最后,它将允许开发人员编写在 Swing 事件分派线程外运行的异步行为。

  改善 JavaBeans 以及所有依赖它的东西(包括 Swing)的工作尚在继续。JSR 295 正在定义一种将 bean 绑定到一起的标准方式,这样,对一个 bean 的修改就会自动地反映到其他的 bean。例如,一个 GUI 网格 bean 会在其相关数据库 bean 改变时自动更新。

  最终,JSR 303 正在实现一门基于 XML 的验证语言,来声明式地指定任何给定的 bean 将取什么值。int 属性将必须介于 1 到 10 之间,或者 String 属性必须包含一个合法的电子邮件地址。如果幸运,这一切都将在年底以 beta 形式提供,并将在来年的 Java 7 中按时完成。

  作为桌面语言的 Java 平台

  一些程序员们选择用 Java 代码编写他们的桌面应用程序是因为它们偏爱这门语言,但大多数程序员则是被多平台转换这一强烈的渴望所驱动。对 Java 平台作为桌面语言的兴趣于是就同非 Microsoft 桌面的数目紧紧地联系了起来。让我们认为 Java 编程会在来年出现在三大主流桌面上。

Windows

  Swing 在下一年会继续对其类似 Windows 的外观作出小的改进,尤其是转换到开源开发这一部分。结果,纯 Java 程序如 LimeWire 甚至会比在 Windows 下看起来更加具原生感。但开发原生 Windows 应用程序所选择的语言仍是 C#(还有一些 C 和 C++ 的追随者),而开发框架会选用 .NET。Java 代码不会对 Windows 生态系统造成任何显著打击。

Macintosh

  像 Microsoft 一样,Apple Inc. 也使用了相当多被抛弃的 Java 代码。Apple 公司喜爱 Objective C 和 Cocoa,但最后的结果是相同的:只用 Mac 的开发人员会继续减少 Java 代码,而选择 Apple 偏爱的语言和环境。

  积极的一面是,尽管 Apple 不再在其私有的 API(如 QuickTime 和 Cocoa)中支持 Java 代码,Apple VM 已经比前些年改进了不少。Apple 的 Java 6 移植版不久就会发布。它不会是开源的(不同于 Sun 的 JDK),但开源程序员们还是会着手修补它的 bug。

Linux

  GPL 许可协议将使这成为可能,即将 Java 代码绑定到最纯的开源 Linux 发行版中,这将使 Java 平台成为 Linux 开发中更为吸引人的语言。如果这些在五年前发生的话:Linux 社区将不会不得不挣扎于使用 C 语言,而 Mono 也不会成为必要。

  已经有了针对 Gnome 和 KDE 的 Java 绑定,所以希望这些会在接下来的一年里吸引更多人的关注。也期望至少有一个即将进行的开发 Linux GUI 程序的主要项目使用 Java 语言而不是 C、C++ 或 C#。

  Ruby 取胜

臃肿的软件

JavaScript 已经和 JDK 6 绑定到了一起。其他语言也许会添加进 JDK 7。我觉得那样会有点臃肿。首先,Sun 公司绝不会加入一门语言就停下来。如果它选了 BeanShell,拥护 Groovy 的家伙也会要求加入。如果加入了 Groovy,用 Ruby 的家伙也会坚持要加入。如果 Ruby 加入,还能忽略 Python 吗?标准 JDK 已经太庞大了。支持多种脚本语言是一回事,但将它们绑定到一起还是同一件事吗?策略性的改进应该是支持所有这些语言,但一个也不绑定进来。

积极的一面是,Sun 公司正在研究减小初始下载尺寸和减少应用程序启动时间的方法,尤其是 applet 和 Java Web Start 应用程序。可能的方法是,将大量的类库放到服务器上或放到速度较慢的后台线程中,只下载需要的部分。

  如果我们只说一门语言,世界将会索然无味。尽管 Java 平台是开发成熟应用程序的绝佳选择,但它从来就不适应于小程序或宏。Java 6 意识到了这一点,它添加了 javax.script 包实现,以便和脚本语言(如 BeanShell、Python、Perl、Ruby、ECMAScript 和 Groovy)进行互操作,也添加了一项 invokedynamic 虚拟机指令来允许将动态类型语言直接编译为 Java VM。

  2007 年,我将宝押在 Ruby 上,尽管它并不是我个人的最爱。对于我来说,Python 代码似乎比 Ruby 代码更简洁更易于理解,我认为大多数 Java 程序员都会这样认为。然而,Python 出来的不是时候。许多开发人员不得不在学习 Python 代码还是学习 Java 代码间作出选择,而多数人选择了 Java 代码。既然他们终于弄懂了 Java 语法,又打算在工具箱中添加另一门语言,他们想要的是明天的语言,而不是昨天的语言,而那门语言似乎就是 Ruby。更重要的是,Ruby 的 Ruby on Rails 是一个绝对杀手级的应用程序。它的简单性对于多数觉悟了的 Java 企业版(Java Enterprise Edition,JEE)开发人员来说具有难以置信的魅力。

  除了 Rails,比起其他脚本语言,JRuby 项目和现有的 Java 代码很好或更好地集成到了一起。事实上,JRuby 也许会超越标准 Ruby 分布,并成为 Ruby 程序员们更偏爱的平台,而不止是 Java 程序员们将 Ruby 作为第二种选择。这很好。Python 程序员们会这样反对:他们这些年来已经将 JRuby 最好的方面加入到 Jython 中,他们是对的,但我讨论的是 2007 年 发生什么,而不是应该 发生什么。这很不幸但却是事实:Ruby 获得了契机,而 Python 没有。

  其他脚本语言会被逐渐逐出界外。Perl 太过时了,不能很好地适应现代应用程序。Groovy 缺少明确的视角,还趋向于将计算机科学的时髦用语凌驾于可用性和熟悉性之上,这让它深受其苦。BeanShell、Jelly,还有半打其他语言可能都从未吸引过超过一个的称心追随者。来年的这个时候,到处都会是这样的呐喊:Ruby 将成为 Java 程序员们首选的脚本语言。

  集成开发环境(IDE)会变得更好

  一批垂死的 IDE 真正点燃了 2006 之火,再一次证明竞争是好事。由于 Eclipse 造成的窘境,Sun 将一些能量和资源注入到 NetBeans 当中,最终开始了一场貌似激烈的竞争。通过采取一些措施,到 2006 年底,NetBeans 甚至超越了 Eclipse。它针对设计 GUI 具有卓越的原生化外观和出色得多的工具。它所不具有的是 Eclipse 社区。相比 NetBeans,更多的插件和第三方产品是基于 Eclipse 的 —— 至少从量上更多 —— 并且这种趋势仅呈加速之势。

  来年,Eclipse 会努力开发 3.3 版,应于 2007 年发布。Sun 也可能成功地将 NetBeans 6 公诸于世。这两个版本都不太可能是重要的版本:它们只是关注于添加这里或那里的小功能、修复 bug 和简化用户界面(尽管可能还没有做到应该要做的那么多)。

  NetBeans 可能将继续赢得 Eclipse 的市场份额。这是从很早以前就开始了的,这方面还有更大的增长空间。(Sun 无情地推动 NetBeans 和 JDK 下载并没伤害到任何一个)。到本年度结束时,两种 IDE 也许将瓜分这个市场,平分天下。

  同时,自信满满的 IntelliJ IDEA 用户将继续疑惑于这一团混乱的场面。他们的信念是:IntelliJ IDEA 是最好的 Java IDE。尽管如此,大多数用户不会对 500 美元的标价视而不见,因此其市场份额将继续在 5% 上下波动。

  Java 企业版

  没有哪部分 Java 编程像 JEE 这么成功,也没有哪部分 Java 编程像 JEE 那样招致如此多的斥责。它是一门每个人都喜欢去讨厌的技术。它复杂、费解并且是重量级的。没有哪部分 Java 编程有这多么第三方努力将其整个替换或部分替换:Spring、 Hibernate、Restlet、aspects、Struts …… 等等。虽然如此,几乎每一个招聘 Java 程序员的商家都要求其有 JEE 经验,因此 Sun 确实是正确的。

  在企业级领域里,我能看到的全部趋势就是简单。大块头的框架出局;小而简单的加入了进来。随之增长的是,客户拒绝大块头的 JEE 栈部分,这种趋势还在继续。作为替代的是,客户转向了像 Spring 这样更简单的框架或者完全脱离 Java 平台而投向 Ruby On Rails。对于更简单、更易理解的系统的需求也驱动着对面向服务架构(SOA)和具象状态传输(Representational State Transfer, REST)的兴趣。

  我们能够预料出,朝着简单发展的趋势在 2007 年将会延续。许多对 Rails 留下印象的人正试图在其他语言上复制它的成功,比如 Python (Turbo Gears)、Groovy (Grails) 以及 Java (Sails)。这其中的某个有可能成功,但它们如果不提出一些强有力的新举措的话,就不会取得成功。因此,企业仍将加载他们已有的框架:SOA、REST 和 Rails。

  微型版(Java Micro Edition, Java ME)

  将视线从最大平台移到最小平台上来,我们能期待嵌入式世界带给我们什么?多年以来,Java 平台已经在小设备上取得了相当大的成功,而 2007 很可能会以这一成功为基础。首先,关注一下移动信息设备描述(Mobile Information Device Profile,MIDP) 的第 3 版,来利用当今更为强大的设备的功能。特别是,我们应该很快就能在一个虚拟机上运行多个 MIDlet,包括在后台运行一个或多个。同样也关注一下加密记录管理系统(RMS)存储和 IPv6 支持。

  Java ME 的可扩缩的 2D 矢量图形(Scalable 2D Vector Graphics, SVG)API 2.0 当前正在开发中,它应扩展在许多设备中的动画功能。除 SVG 动画之外,它也将支持流式音频和视频。如果移动网络开放,这是相当重要的 —— 想想在手机上的 YouTube。(当然,如果网络开放,那就只是没人愿意看的两英寸的公司广告。在这点上,我对美国的情况持悲观态度,而在欧洲也许会更有趣。)

  移动开发者也能期望本年推出第一款支持 Java ME 的 XML API 的手机。此 API 是 SAX、DOM、 StAX 和 JAXP 的一个精选子集,设计它是为了适应内存受限的手机。许多人认为真正的 XML 不适合手机 —— 他们是对是错今年就能见分晓。

  尽管好事连连,Apple 的 iPhone 仍对 Java 平台(作为移动电话开发平台)构成了一个主要的威胁。iPhone 已经是这个星球上最火爆、最有魅力的手机,它已经发布了六个月。问题在于它将成为一个相对封闭的平台,甚至按手机网络标准也是如此,并且它没打算运行 Java 代码。无需多说,对于任何试图向手机、PDA 和个人通讯设备推销第三方应用程序的人来说,这都是一个恐怖的消息。

  结束语

  由于 JDK 的开源,2007 注定成为自互联网炸弹(dot bomb)以来 Java 编程界最令人激动的年份。截至目前,Java 平台一直被 Sun 公司的目标和投资能力所制约,但这种情况即将改变。有了开发者社区掌舵,我们有望看到 Java 编程全方位发展,而这种发展很可能突然出现。开发人员将使用 Java 代码(以及针对 Java 代码)完成比以往更多的任务。桌面、服务器以及嵌入式:一切都会加速!是的,在这个过程中会有一些重大的失败,但失败也是乐趣的一部分!好的想法将脱颖而出,不好的将被淘汰。如果您对 Java 平台有任何不满意,或者有一直迷惑的地方,启动您的 IDE,开始改造吧!

  女士们、先生们!启动您的编译器吧!

  作者:Elliotte Harold (elharo@metalab.unc.edu), 副教授, Polytechnic 大学
http://www.lupaworld.com/viewnews_14008_page_7.html

发布时间: 2007-02-28 15:24    作者: 网络转载    来源: CNET

  我读到一篇文章,文章解释为什么说2006年又是Linux失落的一年,对此我绝对不能认同并禁不住要写下这篇文章加以反驳。我发现2006年是Windows 和Linux之间架设桥梁的一年,可能还没有完成,但已经有了政府机构的介入。就让我来和大家分享一下关于2006年之Linux的一些个人想法吧。

  好大一个丰收年

  虽然操作系统市场仍然主要由微软占领,而且也没有多少要改变的迹象,但那并不意味着所有其它可选系统已经毫无希望地一败涂地,因为在这过去的12个月中,它们获得了一些重大成就。以下是一些较好的例证:

  IBM不会应用Windows Vista——反而将转向Linux桌面系统

  IBM在上个10月份取消了和微软的契约,也就是说他们的桌上电脑将不再使用Windows系统。从7月份开始,IBM的职员将开始使用一种基于Red Hat的平台。

  芝加哥政府也开始采用Linux系统,使得系统运行效率提高,节约了85%成本。

  大型系统,如交通工具登记系统、在线求职系统、酒店调查系统,以及其它许多系统为了降低成本,并改善支撑、运行性能和可扩展性,都移往了Red-Hat系统。

  慕尼黑选择使用Debian版Linux

  慕尼黑市已经选用了Debian版Linux系统,空前大规模地对机构中14,000台计算机进行了安装,而对Novell公司的Suse Linux表示冷淡,尽管它在整个地区范围内还算流行。这又漂亮地打了一个大胜仗。

  Ubuntu荣登2006年PCWorld年度最佳一百强产品第27名。

  显然又是一项了不起的成就,这次排名把iPod、iTunes、GoogleDesktop、Flickr,以及其它优秀产品都抛在了后头。

  通过SuSE版Linux的使用,肯特市(美国华盛顿州中西部城市)警务系统削减了90%的成本。

  肯特市治安部门通过使用Novell Open Enterprise Server,也就是SuSE Linux的企业版,缩减了其主要罪犯调查系统运行成本的90%。

  喀拉拉邦(印度西南部的一个州)投靠了Linux。在这个州,12500所中学都将不再教孩子们Windows。取而代之,讲师们正在为他们积极准备Linux的盛宴呢。Linux又风光再获一捷。

  委内瑞拉政府改变政策,要使用开源软件。根据委内瑞拉政府内部消息,这个南美洲国家已经宣布一项官方政策,政府部门非开源软件不用。

  韩国驱策120K(也就是12万)公务人员使用Linux系统的桌上电脑。这一年韩国政府要一举采购120,000份Hancom Linux Deluxe(韩国Hancom公司开发的Linux版本),足够让23%的Microsoft用户转变为它的开源对等物的用户。因此,这又可以说是Linux赢得了120,000位用户的临阵倒戈。

  戴尔对放弃XP的Linux用户进行返款奖励。戴尔在计算机市场中地位显著,很明显,它已经接受了那些不愿意用Windows的用户的需求。一切为了顾客,Linux这次又狠赚了一把。

  同时也是为了这可以联系Microsoft和Linux的那个小东西着想,以及还有其它更多考虑。

http://www.lupaworld.com/viewnews_14115.html

发布时间: 2007-03-01 09:02    作者: webmaster    来源: 本站原创

8万用户网上上书戴尔向Linux靠近

  不久前戴尔设立了Dellideastorm.com网站,这是一个向戴尔提交建议、产品设计创意的网站,网友可以无所不谈,刚推出10余天就受到了网友的热捧。这就使用户有机会向戴尔表明它应当销售什么样的系统。

  到本周一截止,有超过83000名用户要求戴尔在销售的所有PC上预装Linux。

用户希望戴尔预装Linux和OpenOffice

  作为迈克尔·戴尔重整戴尔公司的一步,他在上周发布了一个收集用户对于产品意见建议的网站。几天来的意见显示,用户最希望戴尔公司能够在电脑上预装Linux操作系统以及OpenOffice等开源软件

戴尔应用户呼声产品全引入Linux软件

  2月28日外电报道 根据戴尔官方网站发布的一项声明,用户不久便可以选择在该公司新够买的电脑上预装Linux操作系统。

戴尔听用户意见计划推Linux笔记本

  据国外媒体报道,在数千用户在戴尔博客上投票之后,戴尔公司领导人的新团队正在考虑让客户选择购买装有Linux操作系统的笔记本电脑,以替代原来默认的Windows。

商业周刊:戴尔能否顺应民意用Linux

  电脑制造商戴尔为了走出当前所处困境,专门开通了一个名为IdeaStorm的网站,网罗广大用户的意见,以改进公司的产品及服务。但是,采纳用户使用Linux的建议可能会增加公司成本,同时还会影响公司与微软的关系。在这些矛盾之间,戴尔能否顺应民意呢?

戴尔面临两难局面是否能顺应民意

  对于刚刚换帅的戴尔公司而言,用户们提出的这些要求并不容易满足。一方面,用户已经在戴尔“意见风暴”网站上提出了1600条建议,而且有数万用户投票支持这些建议。这些用户对于戴尔来说非常重要;但另一方面,将用户意见纳入商业决策有可能会增加成本,并给客户支持套上沉重的“枷锁”,从而加剧戴尔的困境。

戴尔Linux操作系统PC不会很快上市

  2月28日消息 据国外媒体最新报道,如果你是一名试图购买配置Linux操作系统戴尔电脑的消费者,那么也许还需要等待一段相当长的时间。

戴尔2.0来势汹联想惠普应尽早动作

  戴尔2.0模式已经扑面而来,从其笔记本电脑电池回收网站、Direct2Dell企业博客,以及近日开通的(www.Dellideastorm.com)都可看出戴尔2.0的踪迹。戴尔把冷冰冰的东西生动起来。面对来势汹汹戴尔2.0,联想和惠普应该早些动作啦
http://www.lupaworld.com/viewnews_14144.html

  微软成功离间红帽态度开始回暖  

  近期争论的焦点应该从开源软件制造商红帽公司日前宣布,为了确保它的产品在Windows环境中扮演更为重要的角色,它将加入由微软组建的Interop Vendor联盟开始。

  尽管红帽表示,公司的目标是向客户提供不同操作环境的体验。但在更多人看来,此举是微软与Novell“逼宫”的结果。

  微软CEO警告:可能将再次起诉Linux  

  而近日微软CEO史蒂夫·鲍尔默(Steve Ballmer)近日再度向Linux发出专利威胁,警告开放源代码厂商必须尊重微软的知识产权。这一威胁大大刺激了Linux阵营,使得众多Linux的忠实拥护者们非常的不满。

  去年,微软和Novell在11月2日公布了这一交易,微软不再以侵犯专利的罪名起诉Novell的Linux客户,Novell同意向微软支付许可费用。

  Linux用户挑微软:Show Us The Code

  一群Linux支持者公开向微软叫板,他们搭设了一个专门的网站,针对近日微软CEO鲍尔默对Linux的攻击,并声称让微软公开Windows源代码:"Show Us The Code"。

  微软Novell蜜月翻脸二者交易成里程碑

  就在同一个月,微软首席执行官鲍尔默声称,这一交易等于承认Linux侵犯了微软的专利。Novell首席执行官罗恩在一封公开信中进行了反驳,他说,这一交易一点都不说明Linux侵犯了微软的专利。去年末微软与Novell达成的交易可能创造了最短蜜月的记录,两家公司在达成交易数天后就开始公开翻了脸。

  Novell CEO:携手微软是为绊倒他

  Novell与微软的携手意味着这对冤家对头最终携手向前?答案也许出乎任何人意料,日前Novell表示,未来与微软的战争将持续进行。

  Novell表示我们要继续"攻击"Vista

  在Novell CEO Ron Hovsepian发表了一通针对微软Vista系统市场占有率增长缓慢表示高兴的言论之后,让微软与Novell这两个对手在去年11月初签下的盟约显露出了一丝搞怪意味。

  Novell:没有人能阻止我们出售Linux

  然而,微软和Novell最近达成的交易使得开放源代码社区非常恼火,尤其是它们互不起诉对方客户侵犯知识产权的“盟约”。

  自由软件基金会(FSF)希望利用修改GPL许可协议的机会限制这一交易的作用,阻止其它厂商达成类似的交易。

  Novell面对这一传闻的反应是相当迅速的。他们指责原来报道这件事的路透社“断章取义(speculation)”,并保证他们的客户包括沃尔玛超市决不会有任何法律风险。“我们的产品完全在当前许可范围之内,就算以后会发生什么变化,也跟目前的产品无关。”

  以上这一切让Linux阵营最近的争论达到了白热化的程度,不管如何我们可以看到的是微软正在不断关注着Linux,甚至开始视Linux为大敌之一,使尽离间的招数,这些恰恰都说明了Linux的地位正在日渐提高,它的作用不断为人们所关注!

2007年02月23日

【搜狐IT消息】据国外媒体报道,本周在首都哈瓦那举行的一次IT大会上,古巴政府宣布,将同委内瑞拉一道,转向开源软件。此外,古巴的大学已经开始研发国产版本的LINUX操作系统。

古巴官方表示,未来将有更多的政府部门采用LINUX操作系统和开源软件,同时将鼓励大学方面研发包括国产LINUX在内的各种开源软件。

古巴主要计算机教育及研究机构“古巴信息技术大学”的一名负责开源计划的官员罗德里格斯表示,转向开源软件是一个技术主权和意识形态的问题。

古巴通信部部长瓦尔德斯表示,信息系统和技术已经成为古巴和“帝国主义国家”抗争的一个战场。他还质疑美国微软公司和美国军方以及情报部门存在合作关系。

据报道,由于互联网连接状况不佳,许多古巴的视窗操作系统用户无法及时升级最新的安全补丁,古巴政府专门在国内架设了一台服务器,帮助升级视窗,不过,仍然有许多用户的电脑存在漏洞。

据报道,古巴内阁此前已经开始要求政府部门逐渐使用开源软件。目前,古巴的海关以及文化部已经在办公电脑采用了LINUX操作系统。

据罗德里格斯说,在古巴信息技术大学中,他们已经开始研发国产的LINUX操作系统,名叫NOVA LINUX,此外,古巴高等教育部也在开发另外一个LINUX版本。

据报道,目前美国对古巴实行贸易禁运,但是古巴可以从中国、墨西哥和巴拿马等第三国采购预装视窗系统的电脑,也可以间接采购到微软公司的软件。

http://news.china.com.cn/chinanet/china.cgi?docid=113373995,63875091&server=192.168.5.120&port=3001

2007年02月16日

作者: JacksonWan,  出处:同济大学软件学院

  一、关于企业计算方向

  企业计算(Enterprise Computing)是稍时髦较好听的名词,主要是指企业信息系统,如ERP软件(企业资源规划)、CRM软件(客户关系管理)、SCM软件(供应链管理,即物流软件),银行证券软件,财务软件,电子商务/政务(包括各种网站),数据仓库,数据挖掘,商务智能等企业信息管理系统.

  企业计算领域对人才的需求显然永远是数量最大的,因为这是计算机应用最多的领域. 搞这方面的好处是:

  (1)人才需求量极大,从事企业计算的公司在IT企业中占了大多数。除非在专业上一无特长,一般在这一领域总能找到工作。

  (2)这方面的入门门槛相对较低(如果你的软件功底不是很深,可考虑这一领域)

  (3)这方面的大公司较多,大公司要赚大钱,所以多将精力花在企业计算业务上.如与正规高校软件学院同学目前实习的CitiCorp、HP、IBM、SAP、NEC等公司都属这一领域的公司。如果将来想到大公司找一份相对稳定的工作,从事这方面机会要大很多。

  但从事这一领域的缺点也是明显的:

  由于这方面的入门门槛相对较低,虽然这方面的人才需求量是最大的,但将来竞争对手会较多。您会发现,即使他原不是学IT专业的人,也许他突击几个月后,做得照样像模像样。特别是当您年纪渐大后,您可能会发现,后面的年轻人可能很容易追上你的水平。如果您将来到国外去工作,你可能会发现从事这领域的人更多且高手如云。当然,若您在这一领域经过多年企业经验,达到较高境界(如能设计软件架构),则身价永远是高的。国内在这方面人才领域的主要问题是,有经验的高手太少,皮毛了解的人太多。

  从事企业计算领域,最重要的技能型技术课程是(1)J2EE架构与程序设计(2)大型数据库系统(如Oracle)(3)基于UML的系统分析与设计。如果说还有什么重要的技能,还可将XML与Web Service技术包含进来,若您在这几个领域掌握较好,则不愁找不到工作。其中尤其以J2EE最为重要,目前J2EE已成为企业计算软件开发的最主要平台,也是正规高校软件学院的最重要课程之一。尽管该课程只能作为选修课,我们希望正规高校软件学院同学无论将来想从事何种方向,都应学一下J2EE课程,至少可为将来找工作备一手关键功夫。包括想从事嵌入式或其它领域的同学,也是很有必要学一下J2EE的,毕竟J2EE是目前最重要的平台之一,即使您将来不想从事企业计算领域,了解一下J2EE也是必要的,就像一门常识课程一样。其它与企业计算关系较密切的技能还包括:Dot Net架构与程序设计、软件测试技术、软件配置管理,该领域较高层次的技能包括数据仓库技术、构件与中间件技术、设计模式等。像通信协议分析与网络程序设计,Unix系统管理等也属有些关系的课程。02级本学期开设的企业计算课程不多,主要是J2EE、Oracle/MSSQL、UML等企业计算领域的最关键技能型技术课程都已学完了(但不知有多少同学学得较深入,将来找工作时会用到这些技能)。下学期我们将在该领域中拟再开设XML与Web Service技术、软件配置管理等课程。本学期开设的企业计算领域课程的确不多,但您应在空余时间将J2EE,DB、UML等技术再深入地钻研下去,一定要在某个领域有深入的掌握。只是跟着听课,即使学了再多课程也是没用处的,自己钻研下去才是最重要的。只一个J2EE便是博大精深的,足够你啃下去的,钻研下去,您会发现你还要学的相关知识还有很多(包括EJB、XML、Web Service、Design Pattern等)。

  虽然从事企业计算的人才很多,但以下企业计算领域无论国内外都属稀缺人才:

  (1)掌握大型ERP系统,主要是SAP系统,包括SAP Basis(系统管理)或SAP ABAP(编程)或SAP功能模块实施(特别是财务模块FI的实施)。SAP顾问身价是最高的,而且非常难找。其它大型ERP系统,掌握PeopleSoft、Oracle Finacial、J.D.Edward、Siebel等大型ERP软件系统的人也很值钱。这方面的人之所以身价奇高,主要是因为这些软件很专业,特别大,很难有D版可学习,只有特大企业(如世界500强,90%以上使用SAP)才用得起,而且必须有实际工作经验才能掌握。如果是一个个人人都很容易有机会接触的软件,那么这方面的人通常就不会稀缺。如果大家将来有机会接触学习这些大型ERP软件系统的机会,建议毫不犹豫地抓住,那将捧上一辈的金饭碗。在国外,会SAP的人特别值钱。物以稀为贵,这永远是颠扑不破的真理。SAP的价值不仅是因为他是一个ERP软件, 而是其中体现的现代企业管理理念(如根据订货需求自动安排原料采购和生产计划等)。一般500强公司绝不会像国内很多企业那样,用J2EE从头设计企业的ERP系统(即将是怎样的人力投入,而且设计出来的系统怎么可能是完善的?),一定都会使用SAP这样成熟的ERP软件。用不起SAP的公司可能会用J2EE设计ERP系统。

  (2)掌握IBM大型机技术的人,如S/390主机,MVS操作系统,JCL作业控制语言,COBOL程序设计语言,DB2关系数据库或IMS层次数据库,CISC中间件交易控制系统等IBM大型机专用技术。国内五大银行,以及国外绝大多数银行的后台系统使用的都是以上平台。IBM大型机号称永不宕机而且平台相对封闭(这样最安全),所以这些要求在24*7环境中连续运行的关键应用(术语叫mission critical applications)都采用IBM大型机。这方面的人才之所以稀缺,是因为会大型机的人都是老人(90年代以前搞IT的人),全世界新毕业的IT毕业生不可能再去学IBM大型机(这是一种相对“古老“的技术),没有新人补上,而银行的系统必须维持下去而且银行还要不断开发新业务(如新的存款品种),虽然对IBM大型机人才的绝对需求量不很大,但相对恒定,银行到哪里找这方面的新人,很难找到. 若好找,花旗软件也不会花那么大的代价去培训我们的实习同学了(去年培训20多个人,听说公司就花了数十万元培训费). 如果您将来到国外找工作,会IBM大型机可能是最好找工作的领域之一了,而且保证找的都是大银行等好工作,我以前教过的计算机专业90-94级的一些同学,凡是毕业后从事大型机开发的,现多在国外一些很好的公司工作(有几位同学在各国各公司跳来跳去,简直如履平地). 其实我觉得我们最幸福的同学就是在花旗软件做IBM大型机银行软件的同学,这样的机会太难得了.正规高校软件学院00级2+2班一位同学,当初放弃保研,看准在花旗软件做大型机并且非常努力,还未毕业,公司便派她到国外参加一个项目的开发,成了项目骨干,我觉得她当初选择是完全正确的(01级一位女同学刚刚也自愿放弃了保研机会去花旗做大型机,我们祝愿她将来也能有好的前景。其实像花旗软件主动安排并鼓励员工读在职研究生,这样开明的公司目前并不多的,在职读研也是一种不错的选择,又不会失去自己喜欢的实习工作机会,能兼顾),读书的最终目地还是为了工作. 如果您将来在国外找工作,根本没人管您是什么文凭,国外企业绝不会花冤枉钱,只会招有领域工作经验能立即上手的人,用最少的钱在限定的时间完成项目. 而在国内,因为人力成本较低,公司招聘一很多高学历的人才,尽管可能根本用不到这么高的学历,但国内的人力太便宜了,为什么不高消费一下人才呢?这样公司的门面还要好看些。

  .(3)其它如掌握数据仓库技术的人在国内也很少. 目前最主流的数据仓库平台应是ORACLE的数据仓库工具. 在国外,会一些特殊数据仓库的人,如NCR/TEREDATA的人非常难找.

  我们的同学现在年纪都很轻,年轻人充满热情,喜欢追逐一些热门技术,这当然正确的,毕竟学习SAP和大型机的机会毕竟不多,毕业时先能找到一份工作是重要的. 但我相信随着年纪的增长,大家将来慢慢都会思考的,掌握一项竞争对手较少的绝技的重要性,将来如果自己到国外工作什么技术最好找工作(对搞软件的人到国外工作或移民是最容易的,也许您现在不想,但我相信工作多年以后,很大一部分同学可能想到国外闯荡一下),你要考虑你今后一生的出路,什么样的绝技是最稳定最轻松最高收入的. 搞软件的人,当年纪大些时,您可能更向住像搞医学人的那样能更多靠经验吃饭,而不须整天像年轻人那样不得不去追逐不断出现的软件新技术,这个时候也许您也许会发现,如果您在SAP或大型机等方面有些绝技,您会有很大优势,因为这些较偏的领域其技术变化是相对很缓慢的.

  我还记得在2000年时我曾在业余时间与一位德国人合作面试一些IT人才到德国去,那时德方各公司发来的需求有很多是SAP和IBM大型机的,我们在众多应聘者中最后也未找到一个在这方面有经验,甚至是有一点经验的. 相反,掌握流行技术的人因太多而不很值钱.

  我们的同学将来找工作时,不仅要盯着国内市场,还要有一种放眼全球的眼光,对搞软件的人您将来完全可能到其它国家去工作. 尤其是在欧美、日本、新加坡等国家,对SAP(包括IBM大型机)人才的需求是很大的。毕竟比同学见得多些,提醒同学将来多留意有学习这些绝技的机会,一旦有机会建议当仁不让. 国内的人才市场可访问www.51job.com,国外的IT人才需求可访问www.hotjobs.com、www.workopolis.com、www.monster.com等著名网站。应经常访问这些网站,以了解市场对人才的具体需求,早做准备。

  以上对企业计算领域的观点,供大家参考.虽然观点未必正确,但确是直言不讳. 总之,每个人的脑袋都长在自己脖子上,每个人都应有自己的判断.

  还要注意,我以上纯粹是从将来就业的角度谈问题. 如果您将来准备到国外读书,则应重视基础课,像C,Assembly,OOP,Discrete Math,Data Structure,Opeating System,Database Principle,Network,Software Engineering,Compiler,Digital Circuit,Computer Graphics,Computer Component and Architecture等基础课,在国外大学IT专业中一般都能找到相同课程,若国内学过,到国外读书时一般可申请免修一部分. 但我也想提醒同学,如果您将来毕业时万一申请国外大学不成,不得不去找工作时,若只将精力花在这些IT专业学生都会的基础课上(传统IT教育模式), 未掌握一些像J2EE等技能型技术,是不容易找到一份工作的,我们已有同学有这样的教训。从找工作的角度讲,企业关心的不是您学过什么课程,而是关心您能做什么,有什么技能,能做什么项目。

  二、关于嵌入式系统方向

  嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

  嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。

  一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

  另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

  从事嵌入式软件开发的好处是:

  (1) 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

  (2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

  (3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA(南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。我记得00级2+2班当年有一组同学在学Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

  从事嵌入式软件开发的缺点是:

  (1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

  (2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。由于正规高校软件学院以前毕业生以企业计算为主,所以正规高校软件学院与这些企业联系相对较少。正规高校软件学院正积极努力,目前已与其中部分公司建立了联系,争取今后能有正规高校软件学院同学到这些企业中实习或就业。

  (3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

  正规高校软件学院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):

  (1) 掌握主流嵌入式微处理器的结构与原理

  (2) 必须掌握一个嵌入式操作系统

  (3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

  正规高校软件学院在嵌入式软件方面最重要的课程包括:

  (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,正规高校软件学院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

  (2) 嵌入式操作系统类课程

  除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

  第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

  第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM 9上的,一般是将Linux 2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以正规高校软件学院不将其作为教学重点,要学习就应学直接实用的,比如 uClinux就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。正规高校软件学院在该嵌入式Linux方面的课程系列是:本科生操作系统必修课,然后是Linux程序设计选修课,最后是嵌入式Linux系统选修课。正规高校软件学院在Linux方面目前已有较强力量,魏老师和张老师熟悉Linux开发,金老师和唐老师熟悉Linux系统管理。

  第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以正规高校软件学院学过Windows程序设计课程的同学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE开发难度远低于嵌入式Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点 ,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?正规高校软件学院可能是全国高校中唯一一家开设专门的“Windows CE嵌入式操作系统“课程的学校,这主要是基于以下原因:正规高校软件学院本身前面便有Windows程序设计课程,同学学过VC++后再学WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑; 二是微软亚洲研究院对正规高校软件学院WinCE课程的支持计划,我们也很希望将来正规高校软件学院能有同学通过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。

  总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,则正规高校软件学院的WinCE课程是最好的选择。

  (3) 嵌入式开发的其它相关软件课程

  搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:

  A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此,正规高校软件学院已预订了一位能开设数字图像处理课程的博士。

  B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。

  C、网络与信息安全技术:如加密技术,数字证书CA等。正规高校软件学院有这方面的选修课。

  D、DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

  (4)嵌入式开发的相关硬件基础

  对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。

  我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

  (5) 题外话

  另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。我可说一下自己的经历,三年前我曾短暂地在一家公司写过WinCE驱动程序(正是因为知道这方面的人紧缺,所以才要做这方面的事),尽管那以前从未做过驱动程序,应聘那个职位时正是看准了公司是很难招聘到这方面的人,既然都找不到人,驱动还得有人做,这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序,对计算机工作原理如何清楚,简历中又写着我曾阅读完两本关于Windows Driver Model的两本英文原版书,写过几个小型的驱动程序练习程序(其实根本没写过,我们的同学将来千万不要像我这样,早练就些过硬功夫,就不至于沦落到我这等地步,就不用像我那样去“欺骗”公司了,我这是一个典型的反面教材),居然一切都PASS(当然最重要的是笔试和面试问题还说得过去),这只能说明这一领域找人的困难程度。公司本就未指望找到搞过驱动的人,找个有相关基础的人就算不错了。做了以后,发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的,搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动,那时有将近一个月时间空闲着在等WinCE .NET Beta版推出,准备将驱动程序升级到CE .NET上,现在在软件学院工作整日忙,无限怀念那段悠闲时光。

  很巧合,最近本人无意中再次体会到了嵌入式的迷人之处。上周我那用了3年的手机终于不能WORK了。此次更新,除要求有手机常见功能外,最好有MP3功能(现在很多英语听力都有MP3文件),最好有英汉词典,最好还能读WORD文档。最后选了个满足以上条件的最便宜的手机DOPOD 515(斩了我2.2K,但想想这也算自己对嵌入式事业的支持,这样便也想开了),算得上最低档的智能手机了。回来一查,手机的about显示,本手机Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),这么巧合,简直可做为学习嵌入式课程的产品案例了(等我们的WinCE课程开得有声有色后,希望能从微软研究院搞些Smartphone来开发开发)。有OS的手机果然了得,金山词霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式,真是爽。完全可用Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆,MS总是财源滚滚。但我已发现国产的ARM+LINUX手机出现在市面上,价格只1.2K。

  在GOOGLE网上能搜索太多的关于嵌入式系统的讨论了,我刚发现一个http://www.embyte.com 非常不错,有很多有经验者谈自己的体会,投入到其中的论坛中,你会切身感到嵌入式学习的热潮。

  要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路,条条大路通罗马。

  三、关于游戏软件方向

  将游戏软件人才称为数字媒体软件人才可能更好听些,包括游戏软件策划(最缺游戏策划的人)、游戏软件美术设计、游戏软件程序设计等多方面的人才,对软件学院,游戏软件程序设计当然是最合适的了。

  游戏软件人才的确目前很缺,听说很多游戏软件公司苦于没新人才补充,特别是没有高手补充,不得不相互挖人才,以至将游戏软件人才身价越抬越高。网上说日本教育部刚刚批准成立了日本第一家专门培养四年制游戏软件人才的本科大学。其实国内很多大学,特别是软件学院都有搞游戏软件人才的设想,但目前很少有做成的,主要原因是找不到能上游戏软件课的教师,听说有个学校只能花很大的价钱从Korea找老师来上课,果真缺到此等地步?

  已有很多青少年沉湎于网游而颓废的实例,好在还不至于上升到制造精神鸦片的高度,所以开发游戏软件的人也不必每日惭悔(但开发儿童益智类游戏软件的人是不需惭悔的),如果想想这是为发展民族软件产业做贡献,那反倒是一件有意义的事情了。不过听一家游戏软件公司的老板讲,搞游戏软件开发是非常辛苦的。

  若想自己创业,搞搞游戏软件是不错的主意。现在网上网站或公司都在收购游戏软件(特别是手机游戏软件,因为手机游戏用户可选从网站上download到手机上,不像网游那么复杂),按download次数分成或一次性收购的都有。我们的同学在校期间是否也可发点小财?搞得好,说不定可卖到国外网站,直接挣$$$呢。

  大致游戏分成以下几类:

  (1) PC类游戏,包括单机和网游。这类游戏开发平台基本上都是基于VC++和DitrectX(如DirectShow,DirectDraw,D3D等,DirectX资料可直接到MS网站上查)。DirectX和OpenGL是两个主要的图形标准,OpenGL跨平台(Unix/Windows上都可跑),尽管很多搞研究的人对OpenGL赞不绝口,将DirectX骂得一文不值,但事实是,在Windows平台上,DirectX是最快最方便的,所以在Windows平台上的游戏还是DirectX当家。

  (2) 手机游戏:目前手机游戏主要开发平台有两类:

  第一类手机游戏是J2ME平台(Java 2 Micro Edition),J2ME本是为嵌入式平台设计的Java,但由于Java生来就需要Java虚拟机(JVM)来解释,所以在嵌入式产品很少用J2ME(太慢太耗内存)。但在手机游戏中J2ME倒有用武之地,我想这可能主要是Java可跨OS平台的原因,因为手机的OS是千奇百怪的。我对J2ME完全外行,但上次听Square Enix公司的人说,J2ME与我们同学学过的J2EE还是有较大差别的。据我所知,目前手机中用的较多的是KJava语言,KJava是运行在一种叫K Java Virtual Machine的解释器上(K JVM是SUN早期为演示J2ME在嵌入式系统应用而开发的一个虚拟机),所以将在K JVM上运行的J2ME叫KJava。尽管SUN说今后不保证支持K JVM,将开发新的更高性能的J2ME虚拟机取而代之,但由于KJava出现较早,很多早期的手机游戏软件都将K JVM假想成J2ME虚拟机的标准了,所以目前有大量的KJava手机游戏软件存在,而且还在用KJava继续开发。特别是日本的手机游戏软件由于开发较早(像叫什么docomi的日本最大的电信运营商手机游戏搞得很火),多是基于KJava的。所以目前市场上在招聘手机游戏软件人才时,很多要求掌握KJava。有关J2ME请到Sun的网站上找资料。

  另一类手机游戏是BREW平台,BREW是美国高通公司(Qualcomm,CDMA核心技术都是该公司开发的,有无数移动通信技术专利)发明的,据说可编译成二进制代码,那当然快了。主要的开发语言是C/C++。但迫于被指责为较封闭的压力,目前Qualcomm已推出BREW平台上的J2ME虚拟机(但可想像那将是怎样慢的速度)。Qualcomm搞定了很多手机制造商签定BREW授权许可协议,最狠的是Qualcomm与中国联通绑在一起大堆基于BREW的手机游戏,所以有些公司招聘时要求掌握BREW也就不奇怪了。

  去年00级2+2班毕业答辩时,有一位同学讲的是在公司做的KJava游戏(那是一家日本游戏软件公司),还一位同学讲的是另一家公司做的BREW游戏,看来不同的公司有不同的选择。将来谁会更火,我估计随着手机硬件资源的不断提高,不会在乎一个JVM的开销,J2ME应更有前途,毕竟它是更开放的。

  (3) 专用游戏机:如电视游戏,XBOX等,我不太了解,不过这些游戏也太偏了。

  从著名游戏公司发来的对网游和手机游戏的人才需求,很有代表性。从中我们可看出,游戏公司对人才的需求主要是以下技术:

  (1) 计算机图形学,特别是3D编程与算法,包括DirectX或OpenGL。开发平台是VC++/DIRECTX或KJAVA。

  (2) 公司说,手机游戏因手机资源有限,必须对图像进行压缩,所以若有一些图像压缩算法知识比较好。像若能有MPEG压缩算法较好,手机上采用的是比MPEG压缩得更狠的一些特殊算法,但触类旁通。

  (3) TCP/IP Socket编程是搞网游开发的人必须掌握的。

  (4) 人工智能知识:复杂游戏可能需要一些AI算法。

  (5) 网络与信息安全知识:网游要防外挂。

  一般游戏公司的网游服务器是基于Linux平台的,所以还提出了对游戏服务器端软件工程师的技术需求(精通MSSQL、ORACLE、MYSQL等数据库,精通Linux Programming,特别是Socket编程)。还有对维护游戏网站人才需求(ASP .NET和数据库)。详细请同学自己看服务器。注意一条,最好有自己的游戏软件作品,若您应聘时能带一个DirectX作品,那将有多强的竞争力,所以最重要的是现在就要行动,实践,实践,再实践。