欢迎大家向我分享你们的经验和发现,我非常乐于了解大家不同的观点。有人认为,我提到的关于Java的一些优势10年前确实如此,但现在已经过时了。这种看法不但没有错,并且还进一步证明了我的观点。如果Java将这些十年来一直很优秀的特性集合到一起的时候,并且这些特性现在仍然十分优秀,那么足矣说明Java平台目前正处于巅峰时期。(提示,曾经Java算不上是一门编程语言) 再次罗列一下关于我喜欢Java平台的十个理由:
今天我们来看一下第三项:开源。 左图:
右图:
在我的职业生涯里,我一直在为开源项目做贡献:从GTK+、Gentoo Linux、OpenLaszlo到RIFE、EigenD……,还有很多小项目就不在此一一罗列。我认为开源的观念和社区精神是软件开发的本质所在。 总有一个Jar包适合你 我知道有人马上会说,开源并非是Java独有的。你说对了,确实不是。但是令Java平台与众不同的是:Java覆盖了从移动终端到企业级应用,甚至世界上许多关键系统依赖于Java。Linux可能是唯一一个获得类似普遍应用的开源技术,而Java则是唯一取得如此成就的软件开发平台。 显然,实际上C和C++被使用得更多,但是它们没有稳定通用的Core API,而且也不能称之为平台。这使得很多基于C的开源项目因为采用了不同的Core API而被互相孤立。很多工作是重复的,不能形成一个社区的合力。不同项目唯一的区别可能只是API不同(比如 Gnome、KDE、XFCE、Enlightenment……)。当你试图加入依赖不同系统并且许可证各不相同的函数库时,你会发现很多技术上的细节没有任何开源方案能满足你的需求。 上述情况在Java上不会出现,我总是能找到一个好用的库来解决某个通用问题,甚至有时需要在不同的解决方案之间做出选择(Web框架或者模版引擎)。其实只需看一下Apache Foundation的项目列表,就能知道Java在这个方面是多么卓越。 专业开源 对于Java来说,最重要的一点莫过于开放。从语言到标准,再到Core API、虚拟机、开发者工具,这些都能找到开放的影子。因为开源的理念在Java世界中无处不在,从核心到企业级应用无不体现此理念;对于一个商业项目来说,引入一个活跃的开源项目是明智之举。由于专业开源公司的蓬勃发展,使得具体到每一个的商业项目的风险降到了最低。作为一个解决方案提供商,你将得到一个安全和可持续的网络和从头到尾的开源支持。 这个组合在开发平台领域所向披靡,同时也是目前做产品和工具的最佳选择。 社区精神…或者消费主义 显而易见,开源与社区相辅相成,而Java则在此如鱼得水。全球超过100个技术大会和将近400个注册Java用户组使得开发者可以猎取知识。并且这还是只是冰山一角,更多的在线社区也在成快速的发展。 社区精神已经成为Java开发者的标准,但有时现实也不是完全如我所愿。作为一个音乐人来说,音乐意味着分享,我希望音乐软件领域也可以形成一个强大社区。 就像疯狂分享有趣的或者有思想东西能点燃我们的激情并让我们能获得快感一样,作为一个音乐领域的软件开发者,生活在这个仙境一般的极客王国,就像磕了药后录制专辑一样的爽。相反,我发现这个领域开源精神极其贫瘠,每一个所谓的点子就像一座由警卫守护的古怪塔楼。 技术领域似乎总是存在一个僵局,每个人都害怕自己甚至微不足道的“发明”被别人剽窃。同样的算法被重复使用和包装,其实并没有多少创新。人们上一次合作要追溯到上世纪80年代,那时MIDI横空出世。现在看来,那个不过是历史中的一次不可复制的意外。这个领域大部分的开源工作,多数都是由大学和教育机构推动的,对于Java世界的专业开源来说是这一个令人沮丧的现实。 敬请关注 总结一下,Java平台在活跃程度、稳定性、可靠性方面都独领风骚。虽然有人认为,企业级解决方案应该完全的封闭和专有,当时现实却完全相反。Java能够持续的得到开源贡献并且在各个领域发展壮大。 下次我将介绍的是Java内存模型,终于可以说些技术性的话题了……敬请关注。
|