Java 10大优点—Part3—开源

感谢大家对这个系列文章的关注和意见,你们的观点也印证了我的关于Java很好很强大的结论。这里是第三篇,我将要谈谈关于开源的那些事。

欢迎大家向我分享你们的经验和发现,我非常乐于了解大家不同的观点。有人认为,我提到的关于Java的一些优势10年前确实如此,但现在已经过时了。这种看法不但没有错,并且还进一步证明了我的观点。如果Java将这些十年来一直很优秀的特性集合到一起的时候,并且这些特性现在仍然十分优秀,那么足矣说明Java平台目前正处于巅峰时期。(提示,曾经Java算不上是一门编程语言)

再次罗列一下关于我喜欢Java平台的十个理由:

  • Java编译器
  • Core API
  •     开源
  •     Java内存模型
  •     高性能虚拟机(VM)
  •     字节码(Bytecode)
  •     聪明的IDE
  •     性能分析工具
  •     向后兼容性
  •     成熟与创新

今天我们来看一下第三项:开源。

左图:

  1. Richard Stallman!你的黑客开源许可证已经泛滥成灾了。
  2. GPL必须停止。
  3. 在源头
  4. 说你呢。
  5.  哈!微软的狗腿子们!你们终于来了。
  6. 我等待这个血光之夜已经很久了。但是不管你死还是我活,自由软件都会继续走下去。为了GNU的明天,为了自由!……诶,你们咋跑了捏?

右图:

  1. 大哥,你说的对,丫烦透了。
  2. 下个咱找Eric S. Raymond乐乐。
  3. 或者Linus Torvalds也行,俺听说丫睡觉带着双节棍。

在我的职业生涯里,我一直在为开源项目做贡献:从GTK+Gentoo LinuxOpenLaszloRIFEEigenD……,还有很多小项目就不在此一一罗列。我认为开源的观念和社区精神是软件开发的本质所在。

总有一个Jar适合你

我知道有人马上会说,开源并非是Java独有的。你说对了,确实不是。但是令Java平台与众不同的是:Java覆盖了从移动终端到企业级应用,甚至世界上许多关键系统依赖于JavaLinux可能是唯一一个获得类似普遍应用的开源技术,而Java则是唯一取得如此成就的软件开发平台。

显然,实际上CC++被使用得更多,但是它们没有稳定通用的Core API,而且也不能称之为平台。这使得很多基于C的开源项目因为采用了不同的Core API而被互相孤立。很多工作是重复的,不能形成一个社区的合力。不同项目唯一的区别可能只是API不同(比如 GnomeKDEXFCEEnlightenment……)。当你试图加入依赖不同系统并且许可证各不相同的函数库时,你会发现很多技术上的细节没有任何开源方案能满足你的需求。

上述情况在Java上不会出现,我总是能找到一个好用的库来解决某个通用问题,甚至有时需要在不同的解决方案之间做出选择(Web框架或者模版引擎)。其实只需看一下Apache Foundation项目列表,就能知道Java在这个方面是多么卓越。

专业开源

对于Java来说,最重要的一点莫过于开放。从语言到标准,再到Core API、虚拟机、开发者工具,这些都能找到开放的影子。因为开源的理念在Java世界中无处不在,从核心到企业级应用无不体现此理念;对于一个商业项目来说,引入一个活跃的开源项目是明智之举。由于专业开源公司的蓬勃发展,使得具体到每一个的商业项目的风险降到了最低。作为一个解决方案提供商,你将得到一个安全和可持续的网络和从头到尾的开源支持。

这个组合在开发平台领域所向披靡,同时也是目前做产品和工具的最佳选择。

社区精神…或者消费主义

显而易见,开源与社区相辅相成,而Java则在此如鱼得水。全球超过100个技术大会和将近400个注册Java用户组使得开发者可以猎取知识。并且这还是只是冰山一角,更多的在线社区也在成快速的发展。

社区精神已经成为Java开发者的标准,但有时现实也不是完全如我所愿。作为一个音乐人来说,音乐意味着分享,我希望音乐软件领域也可以形成一个强大社区。

就像疯狂分享有趣的或者有思想东西能点燃我们的激情并让我们能获得快感一样,作为一个音乐领域的软件开发者,生活在这个仙境一般的极客王国,就像磕了药后录制专辑一样的爽。相反,我发现这个领域开源精神极其贫瘠,每一个所谓的点子就像一座由警卫守护的古怪塔楼。

技术领域似乎总是存在一个僵局,每个人都害怕自己甚至微不足道的“发明”被别人剽窃。同样的算法被重复使用和包装,其实并没有多少创新。人们上一次合作要追溯到上世纪80年代,那时MIDI横空出世。现在看来,那个不过是历史中的一次不可复制的意外。这个领域大部分的开源工作,多数都是由大学和教育机构推动的,对于Java世界的专业开源来说是这一个令人沮丧的现实。

敬请关注

总结一下,Java平台在活跃程度、稳定性、可靠性方面都独领风骚。虽然有人认为,企业级解决方案应该完全的封闭和专有,当时现实却完全相反。Java能够持续的得到开源贡献并且在各个领域发展壮大。

下次我将介绍的是Java内存模型,终于可以说些技术性的话题了……敬请关注。

原文链接: zeroturnaround 翻译: ImportNew.com - 高俊阳
译文链接: http://www.importnew.com/7520.html
[ 转载请保留原文出处、译者和译文链接。]

关于作者: 高俊阳

(新浪微博:@狐狸叔

查看高俊阳的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

1 条评论

  1. delphidoc 说道:

    1. 跨平台
    2. 大量的开源框架
    3. 免费的IDE
    4. 海量的网上学习资源
    5. 大量商业公司的支持

    Thumb up 0 Thumb down 0

跳到底部
返回顶部