SUN为何会陷入困境
【IT168技术评论】编者按:本文从一个技术人员的角度审视了Sun公司的软件产品和策略,分析了Sun公司在软件技术方面的困境和出路。
今年夏天,这家成立于1982年的技术公司开始饱受来自业界和投资者的质疑。“裁员”、“出售相关业务”、“盈利预期下降”等词汇和这个曾经辉煌的技术公司联系在了一起。如果我们以技术人员的眼光重新审视这家公司在技术和软件产品上的历史和策略,就会发现Sun今天的现状存在某些必然的因素。
Java十年 ,Sun究竟做了什么?
大部分技术开发人员经常说,“除了Java,Sun还拥有什么?” 的确,大部分技术开发人员是通过“Java”知道Sun公司的,甚至还有少数人只知道Java,并不知道Sun。而随着Sun对Java进行开源的进程加速,所有围绕着Java的相关产品的格局又将发生重大的变化。
Java十年,Sun究竟做了什么呢?我们不妨回顾一下Java十年的发展历史。
附:Jdk各版本发布情况
版本号 名称 发布日期
JDK1.0 1996-1
JDK1.1 1997-2-18
JDK 1.1.4 Sparkler 1997-09-12
JDK 1.1.5 Pumpkin 1997-12-13
JDK 1.1.6 Abigail 1998-04-24
JDK 1.1.7 Brutus 1998-09-28
JDK 1.1.8 Chelsea 1999-04-08
J2SE 1.2 Playground 1998-12-04
J2SE 1.2.1 none 1999-03-30
J2SE 1.2.2 Cricket 1999-07-08
J2SE 1.3 Kestrel 2000-05-08
J2SE 1.3.1 Ladybird 2001-05-17
J2SE 1.4.0 Merlin 2002-02-13
J2SE 1.4.1 grasshopper 2002-09-16
J2SE 1.4.2 Mantis 2003-06-26
J2SE 5.0 (1.5.0) Tiger 2004-10-9
J2SE 6.0 (1.6.0) Mustang 2006-2
J2SE 6.0 (beta2) Mustang 2006-6
1995年3月,随着Java技术的诞生,Sun公司的名头开始风靡全球。Java的诞生标志着互联网时代的开始,因为Java能够被应用在网络上编写互动性及强的Applet程序,而1995年的Applet无疑给人们带来了无穷的视觉和脑力震荡。然而,这些掌声和鲜花并没有为Sun公司带来任何直接的收益。
为了让开发人员能够使用Java来开发应用程序,Sun很快在1996年1月发布了Java的开发库和工具包JDK1.0。JDK包括两大部分:运行环境和开发工具。而运行环境包括五大部分:核心API,集成API,用户界面API,发布技术,Java虚拟机(JVM)。跨平台的虚拟机技术也开始走进人们的视野。Java程序并不直接被编译成所在平台的机器语言然后执行,而是先被编译成字节码,然后可以到所有安装了JVM的平台上运行,从而实现跨平台。
然而,Java程序的运行效率和问题一直饱受非议。JDK 1.0中丑陋而笨重的API AWT几乎成为了开发人员的噩梦,绝大部分开发者很快便得出了Java不适合开发前端桌面应用程序的结论。
虽然Java从诞生到发布整整十年,其间的升级和改动几乎每年都有,但一直没有重大和关键的改进,特别是在易用性,易开发性方面。直到2004年10月份Sun发布了代号为“Tiger”的Java 2标准版( J2SE) 1.5发布了正式版时,情况才有所改善。
在这个版本中Sun对Java语言做了许多令人振奋的革新。为了与.NET竞争,J2SE1.5在易用性上做了重大改进,引入了泛型、增强FOR循环、元数据、类似C语言的格式化输入输出、静态导入、可变参数等总共15个组件JSR(Java Specification Requests )以及由 Java 社团(Java Community Process,JCP)开发的其他将近100个重大更新。
“Java早就需要改变,只是这种改变实在来得太晚!这些迟到的改变,还是受到来自于微软的.Net的重压下做出的”一位资深的Java开发者表示。
微软的C#语言被认为是Java最有威胁的对手,有统计数据表明,C#的开发者和用户数量的增加远远超出Java。
令人无法想像的是,Java语言产生到传入中国并开始大规模应用,足足经过了10年,Sun公司才推出中文的技术文档(第一批文档仅仅包括java.lang和java.util类库API 文档的中文版)。
“Sun需要向微软学习的地方太多,Java语言本地化的问题一直就没有得到较好的解决。比如,我们经常在做Java开发中遇到的乱码问题,其实归根结底就是Java语言本身的问题。作为一门向全球推广的语言,Sun理应做好本地化的工作。”一位开发Java外包项目的主管接受采访时表示。
的确,看看微软的任何开发语言和开发工具,几乎在中文化的问题上无可指责。极少有人在微软的开发语言或开发工具中遇到乱码或字符本地化的问题。
由于Sun拥有Java技术的专利,使用Java技术必须交纳费用以获得许可,此外,软件商若要对外宣称与J2EE相容,其产品还必须通过兼容性认证。但这些盈利点和模式本身就处在一个两难的境地,如果许可费和兼容性认证费用过高,一方面会客观阻碍Java技术的传播和应用,另一方面会招致其它厂商的不满;不收取费用又会切断Sun公司在Java方面的经济来源。
很早便有Sun公司员工透露,Sun在Java技术线上唯一赚钱的是J2ME,并且盈利模式也不是软件销售,而是从支持J2ME的手机厂商收取许可费。
“Sun并不是没有想到通过Java的相关产品来取得受益,遗憾的是Sun的Java相关的产品,从开发工具到应用服务器,无一取得真正的成功。”
Sun在1999年买下了Netbeans这个IDE以加强其Java工具集,特别是希望在Java开发工具上有所突破,争取更多的开发者支持。与此同时,IBM也在支持和开发Java的开发工具,不同的是IBM在策略上先胜一筹,率先采用了开源的思路。
2001年9月,Sun公司推出了Forte(tm) for Java IDE 3.0版工具软件,并加强了与iPlanet Application Server之间的集成,以便支持企业Java应用和web服务的创建。然而,无论是IDE开发工具还是应用服务器,Sun的产品始终没有受到开发者的青睐。
Sun的工具和产品从来不乏新颖的创新和技术,然而他们太不注意技术细节了。今天的开发者是非常挑剔的,一个非常不显眼的细节没有处理好,都有可能成为他们抛弃这个工具的理由。