原因之四:开源让我更好地了解世界。
从事开源项目的开发人员,来自世界各地,具备不同的文化背景、教育背景和思维方式。通过和他们交流, 我更好地了解了他们的技术水平以及引发了我思考人家为什么会达到这样的技术水平。
举个例子,西方的工程师从事开源软件只有一个理由—兴趣。英文里有一个单词是Geek,翻译成中文是极客,代指狂热于技术、思维异于常人的人群。用Geek来形容开源开发者再合适不过了,他们对技术的追求无止境,他们喜欢创造新的东西,他们渴望改变和引导技术发展的进程。对比国内研发工程师经常忧虑一些现实的困境,他们从来不考虑30或者35岁之后老了没有竞争力的问题, 他们很少考虑转型做管理者。他们通常年龄在35岁或者更大一些,10余年的行业技术积累让他们知识的深度和广度都很好。由于社会文化真正认可技术的价值,他们只凭做工程师就能生活得非常好(真的是非常好),他们要考虑的内容相对单纯一些,就是从兴趣出发,完全以技术为导向。当一个人真正对自己从事的工作有极大兴趣、引以为豪且有多年的经验积累之后, 其创造力和生产力是惊人的。
技术专家的产生需要土壤,需要社会价值观作为导向,让有天赋的研发人员愿意长期从事技术积累且无后顾之忧,并能获取相应的回报是产生群体性技术专家的基本前提。如果我们的技术人员都在考虑找机会转型,那么恐怕永远只能做低水平的简单重复,离诞生伟大的软件公司这个目标会越来越远,与和世界一流的软件水平之间的差距会越来越大。
原因之五:开源已经、正在和将继续改变软件业的发展以及我们的生活。
基于成本优势;代码可见,可深度定制;系统高度自由,无需绑定到特定厂商;更敏捷等原因, 越来越多的公司采用开源软件和开源架构,这种趋势也使更多的商业公司开源自己的产品,以适应市场的发展。
且不说国外开源应用风起云涌, 国内也有很多公司重视开源技术,采用开源架构,例如国内某著名电商互联网公司。该公司重视技术积累,有自己的给力技术团队,有能力对开源解决方案深度定制,快速满足自身需求。该公司的系统每天都在承受超大规模的并发请求但依然很稳定。我一直认为在大压力复杂应用环境中,只有自己是自己的上帝,开源给了你主宰自己命运的机会。这个例子说明真正重视技术积累,有给力技术团队对企业自身的应用是多么的重要。
国人参与开源项目现状分析
自参与Apache开源项目以来,方越发现很少有同胞在相关项目邮件列表/论坛问问题,难道国人很少使用这些开源项目吗?事实证明,并非如此。
据方越调查,Apache CXF在国内被大量使用,但为什么在Apache CXF的邮件列表中很少看到中国人问问题, 更不要说参与讨论、解答问题甚至打Patch了。方越分析最主要的原因是文化上的两大差异,“它首先表现为语言上面的障碍。开源社区的参与人员来自世界各地,为了保证大家的交流,采用的语言是英语。在线下交流中,很多人因为要用英语问问题而迟疑,甚至放弃问问题。其实大可不必,因为Apache社区很多参与讨论的人员的母语都不是英语,这并不妨碍大家用英语讨论技术问题;再者,我和欧美同行交流过语言方面的问题,他们(尤其是英语是母语的同行)认为很多中国人过于低估自己的英语交流水平。实际把自己的问题用英语描述清楚并没有那么难,别担心,没有人会像针对我们的英语考试中短文改错那样对待你的邮件/帖子。毕竟, 我们掌握英语的程度远远超过西方人掌握中文的程度。另外,多参与讨论, 对实用英语的挺高也很有帮助。”
另一个差异体现在不同的学习方式上。方越认为中国人擅长的学习方式是有系统的教材,有标准的大纲, 最好再有大量的练习题来强化知识点。我们习惯于这种学习方式,我们对规划好的知识点可以掌握得非常好,具体的体现是我们很擅长考试,但我们很少主动问问题。大多数人在考完试之后,马上就会忘掉之前死记硬背的东西。西方人要学习一个东西,习惯自己找材料,找问题,讨论问题,因此,讨论问题本身就是他们所习惯的学习方式的一部分。而通过这种方式获得的知识更让人记忆深刻。他们更善于学习新东西,尤其是需要自己主动学习时,他们的学习方式让他们更有优势。我们害怕没有面子,害怕问出不靠谱的问题,回避交流。他建议大家不要这样,要更开放一些,善于利用Apache社区这个很好的资源,和技术专家讨论问题。况且,英语有一句俗语,“No question is stupid”,就是在鼓励大家问问题。