作为一位Java程序员,如果您没有接触过开源软件、项目或框架的话,恐怕有些不可思议。轰轰烈烈的开源运动起源于Linux操作系统,Apache基金会在其中扮演了中流砥柱的角色,业界巨擘SUN,IBM, BEA 和Oracle等公司的积极参与,使得声势浩大的开源运动成为软件开发领域势不可挡的力量。2001年11月,IBM向Apache基金会捐献出Visual Age for Java,这个看似穷途末路的产品经众多高手的改造,演变为辉煌一时的Eclipse,直接击败了不开源的JBuilder,让做编译器起家的Borland公司几乎关张大吉。Eclipse这个产品如此经典,以至于微软的Visual Studio都得向它学习。在Apache Harmony的围追堵截下,Java的发明者Sun公司一看势头不妙,于2006年宣布Java开源,随后又公开了其旗舰级产品Solaris的源代码。今年1月,开源的死对头、冷酷自私的微软也不得不在MS-RL协议下公开.Net的源代码。但是,在这如火如荼的开源运动中,我们中国的程序员又有多少贡献呢,我们开创了哪些框架、项目和产品,为开源界添砖加瓦呢?以笔者短浅的目光看来,我们对开源界贡献的东西恐怕很少,能够与国外经典开源项目一较高下的,少之又少矣! (根本就没有嘛,至少在一般的java程序员看来,你们做过的项目中有国人写的开源框架吗?)
作为一名中国的程序员,咱们能没有遗憾吗?为什么经典的Apache Web Server不是中国人写的;为什么Linus Torvalds在大学时代就写出Linux并振臂一呼,应者云集;为什么JBoss能与巨无霸式的Websphere相抗衡;为什么MySQL能在Oracle和SQL Server的夹击下发展并壮大…… ?如此等等问题,在遗憾之余,我想我们应该花点时间好好思考一下,中国的软件产业怎么了,中国的程序员又怎么啦?
在笔者看来,我们的程序员对开源的理解是相当狭隘的。国学大师王国维曾说过,古往今来成大学问大事业者要经历三种境界,“昨夜西风凋碧树,独上高楼,望尽天涯路”,这是第一重境界,迷惘也;“衣带渐宽终不悔,为伊消得人憔悴”,苦苦求索之境界也;第三重境界为“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”,经历多少次的失败和挫折后,终于参透真谛,领悟真理。我觉得开源也有三重境界:
首先,我们要敞开心胸,拥抱开源(Open to Open Source)。这重境界我们大家都能做到,拿来主义嘛,谁人不会。当我们的项目需要数据库时,就去下载一个免费MySQL;需要IDE时,去下载Eclipse;需要版本控制工具时,就去下载CVS;需要写搜索引擎时,Lucene可能是我们的最爱;当我们开发J2EE Web应用时,Struts/JSF加Hibernate/iBATIS再加上Spring或许成为我们的首选架构。但是,我们绝大部分程序员都停留在这个层次上,大家下载之后,看看文档介绍,安装、配置并能运行,就以为万事大吉,一切顺利。偶尔遇到一些问题,去Google一搜,答案立马可得。
其次,我们要深入开源,了解开源(Dig into Open Source)。要达到这个层次,就有些难度了。我们不但要知其然,还要知其所以然。“知其所以然”的最好办法就是下载源代码,仔细研读,揣摩并领会源代码的精义,看看这些经过诸多高手修改的源代码究竟藏有什么玄机,我们能从其中学习到哪些设计思想及设计模式,能复用其中哪些源代码,人家运用了哪些软件管理思想把这些来自世界各地程序员的劳动汇集成一个产品,代码架构如何,软件配置管理又是怎样进行的……,等等等等,我们从源代码中学习的东西太多了。在阅读源代码时,我们要多问自己几个为什么,这样就会收获更多。
再次,我们要融入开源,贡献开源(Get involved in Open Source)。当我们彻底理解该项目源代码后,我们应发挥一下“人人为我,我为人人”的思想,或结合您的实际需要,或结合您的新想法,或针对Mail lists上的问题,对该开源项目加以改进和创新,并把自己的代码贡献出来,让大家评估。当然,如果您有好的想法,您完全可以创建自己的开源项目,Apache基金会中众多的开源项目不都是我们广大程序员一手创建的吗?但是,在创建新开源项目时,切忌不要重新发明轮子。
转载:http://blog.ccidnet.com/blog-htm-do-showone-uid-4092-type-blog-itemid-263093.html
分享到:
相关推荐
### 淘宝之开源之路 #### 开源与电子商务:以淘宝为例 随着互联网技术的飞速发展,开源软件在电子商务领域扮演着越来越重要的角色。本文将以淘宝为例,探讨开源软件在电子商务领域的应用及其带来的好处。 #### 走...
前端组件库HaloE的开源之路.pdf
2017云栖大会的“云数据库Redis版的开源之路”,技术内容不是特别深,可以作为了解
百度万亿流量转发平台的开源之路 百度智能边缘融合端云的技术实践 边缘计算技术创新与应用实践 操作系统集群运维工具:从 Foreman katello 到麒麟升级管理平台 打造云原生流式数据库 第四范式 - 基础技术开源开放 ...
2020年10月16日,中国开源产业的年度峰会——2020云计算开源产业大会(2020 OSCAR)在北京盛大召开。本次大会由中国信息通信研究院主办,云计算标准和开源推进委员...Apache+Kylin开源之路与社区经验 MindSpore社区介绍
朱照远的“淘宝开源之路”可能会涵盖淘宝是如何构建开源生态的,他们在开源项目的选择、管理和推广上的经验,以及开源对淘宝自身技术创新和业务发展的影响。 总结来说,TUP第二十四期的内容涵盖了开源软件的重要...
《开源软件文集:开源革命之声》是一本集结了多位开源运动领袖和软件界大牛们观点的书籍。本书不仅回顾了开源软件的发展历程,还深入探讨了开源革命成功的原因以及未来的发展趋势。在这个过程中,书中涉及了多个重要...
还有简单的密码验证 开发软件:Android StudioAndroid 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器Android 开源在线音乐播放器...
- **知识学堂**:作为期刊的核心部分之一,知识学堂致力于普及开源基础知识和技术应用。通过讲座和连载等形式,帮助读者深入理解开源文化和技术细节。此外,还涉及开源应用的各个方面,从基本命令操作到高级内核分析...
天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR开源版V5.0.0天若OCR...
开源软件之道-java 开源软件之道-java
* 散布授权条款:若软件再散布,必需以同一条款散布之。 * 授权条款不得专属于特定产品:若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。 * 授权条款不得限制其他...
网络操作系统-从开源到商用之路 白盒交换机探索 木兰社区开源项目实践 eBay网络云原生实践 基于开源的智能通信时代的思考 基于AI预测信息的边边协同计算机制研究初探 云原生应用跨多云与边缘的交付与可观察性实践 ...