中国开源社区现状浅析
开源技术并没有想象中的那么高不可攀,会逐渐从IT行业的创新工具变成普通民众的日用品。
本刊记者 谢然
随着互联网的发展、开放标准的普及和虚拟化技术的应用等诸多IT新领域的创新及拓展,开源技术凭借其开放性、低成本、稳定性、灵活性、安全性和技术创新性等特点迅速走向成熟,逐步发展成为一种主流模式,日益改变着全世界软件产业的发展轨迹。
创新 开源之源泉
技术发展依赖于创新举措。没有那些脱离束缚的好想法,技术发展将停滞不前。与此同时,创新也促进了企业与社会的进步。那么,什么地方的创新最多?不是SUN,不是苹果,不是Google,不是微软??正确答案应该是:开源社区。要说最具影响力的创新,也许不一定来自开源社区;但要从数量上论的话,开源社区无疑是最大的创新工厂。创新已逐渐成为一种产业,而工厂也正是“复制”的代名词。
要进行IT技术的创新,最直接的方法莫过于去模仿那些成功的创新模式。国内的开源环境确实还一般,国内的公司普遍使用开源软件,但大多都是拿来主义,修改优先,原创极少,甚至有些公司干脆将剽窃称为自己的原创。其实抄袭也没什么,问题在于抄到的是皮儿还是馅儿:只抄到皮儿,那就是剽窃;抄到了馅儿,那就是观摩学习后的升华。为啥西天取经这种明显的抄袭行为能流芳百世?一来人家玄奘在翻译的同时标明了出处,二来人家做了再创作,加入了自己的见解,升华了高度。娱乐圈里的模仿也是随处可见,王菲、那英、刘德华、张学友等明星在形成个人风格之前,都是从模仿开始。演艺明星和喜剧演员也从来不避讳自己的模仿技艺,小沈阳的走红除了借助央视春晚这一平台,他本人的模仿功力也是让观众折服的重要因素。
奉献 开源之动力
开源的发展离不开社区的发展,我国的开源社区已从最初的爱好者社区发展到具有开发、应用、服务功能的稳定社区。开源的发展离不开“奉献”二字,我们对开源的直观的认知,是一系列的开源软件,比如Linux,Apache,MySql,PHP,Python,Ruby等等。而这些软件的背后,大多是一个人或者几个人是其核心的维护者。开源中国社区联合创始人张海龙在接受周刊记者采访时回忆说:“开源中国社区(oschina.net )一开始是个人兴趣而做的。因为平时在开发过程中常常需要查找一些常用的开源软件,用搜索引擎十分不方便,于是就自己开始建立开源软件库。后来慢慢加入了新闻,论坛,博客等功能,逐渐发展到现在这样。”
国内开源的现状是有较大数量的企业在积极的参与开源、贡献开源,并不单纯都是拿来主义。比如,豆瓣、淘宝等一些公司,纷纷把自己的一些项目开源出来。通过参与开源社区,企业可以与全球最优秀的开源人才、最优秀和庞大的开发团队合作,第一时间分享开源最新的技术和理念,以最快的速度部署新的应用等。中国开发者不仅要做开源技术的实践者,更要做贡献者,应把自己的聪明才智反馈到社区中去,共同维护开源社区这样一个非常良好的生态环境。
在中国的开源社区里,有众多的默默贡献者,究竟是一股什么力量吸引他们愿意跟人分享交流经验技术?为此,周刊记者采访了中国“Duke选择奖”得主之一、ThoughtWorks的资深程序员、首席咨询师郑晔,他表示:“我个人一直热衷于知识分享,从很小的时候,通过给别人讲题,我就发现把知识分享出来,其实是帮助自己更好地理解。对于程序设计而言,源码是最直接的知识分享,源码面前无秘密。从一开始学习编程,我就喜欢到处找各种各样的代码来读,学习各种各样的编程技巧。所以,当我知道开源这个概念的时候,仿佛面前打开了一座宝库,那是一种说不出的兴奋。”
在深入这个领域之后,郑晔的感触就更深了:“从开源项目中,我学习到了很多东西。我现在还记得自己当年阅读SpringFramework源码的情形,那是我第一次在开源项目中发现了一个小问题,在邮件列表里报告了这个问题。当我看到自己报告的问题被修复时,一种成就感油然而生。随着自己经验的增多,我就越来越希望能够贡献一些东西,用代码的形式分享自己的知识,以自己的能力回馈社区,希望也有人能从我的代码中有所领悟。获取与奉献,相辅相成,才能让社区更蓬勃的发展,让个体从中受益。”
开源安全 拨云见日
在开发内部和外部应用程序时,企业越来越多地使用开源代码,使用免费预构建的组件,而不用自行编写代码,能够显著缩短应用开发时间和提高软件开发成功概率。
在开发应用程序时,开发团队可以轻松使用上百种的开源库、框架和工具,以及无数来自互联网的代码。开源已成为一种被普遍接受,并行之有效的商业模式。然而,企业在使用开源技术时,其中一个重要的考虑便是开源软件的安全性。当提及这一问题时,张海龙向周刊记者介绍,开源中国今年推出了 git.oschina.net 源代码托管平台,平台本身的安全性是通过加密、备份等技术手段解决的,开源项目的代码审核都是由项目发起人自己完成的。
在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样,许多不可靠的设计也自动的被增强了安全性,例如类型安全检查,内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量,这就意味着更短的开发时间和更健壮的程序。
开源助力大数据精进
越来越多的公司开始聚焦于大数据技术领域,而开源恰恰是大数据技术的灵魂。现在已经有了许多数据相关的开源项目和工具,例如众所周知的Hadoop。
现在最为欠缺的并不是数据分析的工具,更多的是怎样把这些工具与实际的业务场景结合起来。很多人一想到大数据就会想到Hadoop,但实际上,程序员需要根据自己的实际业务场景,选择适合自己的工具。例如需要评估,是否需要实时分析,如果是,也许Storm是一个不错的选择;是否需要对单一记录的处理,而不是分析,如果是,也许一些NoSQL就可以满足需求。
ThoughtWorks公司最近在做的就是这样的探索,他们制作了一个大数据工具的全景图,然后,帮助客户分析其业务场景,看看客户需要的大数据需求,属于哪种类型,再结合全景图以及客户的技术栈推荐相应的工具及解决方案。
郑晔认为,随着大数据概念的发展,程序员们的技能需要更新,需要更好的熟悉这些工具,但最重要的是对于数据分析技术的熟悉。数据分析,这个原本对程序员很高深的词汇,在未来一段时间,会变得随处可见,甚至有可能成为程序员的基本功之一。
结语
总之,使用开源技术的好处颇多。简单来讲,它有利于减少垄断,减少某一个公司,或者几个公司对业界垄断性的管理和控制;非常有利于公平的竞争,进而催生大量的创新,并将之宣告世界,被众人所接受。
近年来,国内的一些大公司开始涉足开源,并努力营造一种开源文化。在这样的氛围中,对程序员是友善的,程序员在其中能得到更大的发展,更好地自我实现。
未来,如果能有更多关于开源的报道和活动,给更多开源项目和开源人曝光的机会,那么开源技术也就没有想象中的那么高不可攀了,开源会逐渐从IT行业的创新工具变成普通民众的日用品。