`
jayjayjays
  • 浏览: 215307 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开源之路

阅读更多

作为一位Java程序员,如果您没有接触过开源软件、项目或框架的话,恐怕有些不可思议。轰轰烈烈的开源运动起源于Linux操作系统,Apache基金会在其中扮演了中流砥柱的角色,业界巨擘SUNIBM BEA Oracle等公司的积极参与,使得声势浩大的开源运动成为软件开发领域势不可挡的力量。200111月,IBMApache基金会捐献出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能在OracleSQL 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

    前端组件库HaloE的开源之路.pdf

    GOTC 2021 全球开源技术峰会 - 深圳站PPT合集(44份).zip

    百度万亿流量转发平台的开源之路 百度智能边缘融合端云的技术实践 边缘计算技术创新与应用实践 操作系统集群运维工具:从 Foreman katello 到麒麟升级管理平台 打造云原生流式数据库 第四范式 - 基础技术开源开放 ...

    Android 开源在线音乐播放器

    还有简单的密码验证 开发软件: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开源版V5.0.0天若OCR...

    开源软件之道-java-3

    开源软件之道-java 开源软件之道-java

    金融行业开源生态深度研究报告.pdf

    本报告旨在分析开源对金融行业的重要意义,同时解析开源存在哪些风险,并总结一套改善金融行业开源使用治理与对外开源贡献的可行见解。本报告还展示我国金融行业在开源使用治理与对外开源方面的活跃程度,并给出我国...

    开源桌面贴片机软件,开源SMT取放硬件和软件

    开源桌面贴片机软件,开源SMT取放硬件和软件

    开源的opc服务器

    标题:“开源的opc服务器” 描述:“开源的opc服务器的程序,是俄罗斯人写的在vc下开发的轻量级的opc服务器!” 在这个主题中,我们将深入探讨开源的OPC(OLE for Process Control)服务器,特别是由俄罗斯开发者...

    开源飞信 开源代码openfetion

    openfetion是基于GTK+2.0的飞信开源IM客户端,使用中国移动飞信v4版本协议。 同类软件还有一个叫LibFetion,但是有半年多无更新了! 目前 OpenFetion 的最新版本是 1.8 。由levin108开发。与 LibFetion 相比, ...

    SimpleBGC32- 开源三轴无刷云台算法完全解说_电机_mpu6050三轴云台_云台开源算法_云台电机_电机开源_

    标题中的“SimpleBGC32- 开源三轴无刷云台算法完全解说”表明了这是一个关于三轴无刷电机云台控制系统的详细介绍,重点在于其开源算法。这个系统基于STM32F103RC微控制器,结合了MPU6050六轴传感器,用于实现飞行器...

    Mission Planner最新版本无人机开源地面站,适用于APM、PIX、Pixhawk 等开源飞控1.3.80版本号

    Mission Planner开源地面站,适用于APM、PIX、Pixhawk 、TURBO PiX等开源飞控,这是解锁无人机的必须软件。适用于window系统。Mission Planner开源地面站,适用于APM、PIX、Pixhawk 、TURBO PiX等开源飞控,这是解锁...

Global site tag (gtag.js) - Google Analytics