It’s all about Open Source these days

less than 1 minute read

最近两年,我一直在关注一些Open Source(开源)相关的信息。例如, 有关开源的项目, 开源的理念和经营模式。很多大型的公司选择项目工具的时候都会避免一些开源的项目,特别是一些桌面程应用序都会最后选择Micr*soft的解决方案。为什么他们不选择开源的语言或者Framework进行项目开发呢?可能有以下几个原因:

  • 开发效率。大多开源的项目开发效率相比商业化的软件还是慢很多。对于用户来说,他们所看到的只有最后的结果,比如说他们需要一个创建历史纪录的功能,只要你们写的软件能做到这个功能,用户根本不会在乎开发人员是如何实现的。人力资源是很昂贵的,所以企业更愿意花大比的钱买license,节省开发时间。另一个问题是IDE, 大部份开源的程序缺少效率高的IDE, 企业级别的IDE支持。

  • 技术支持。商业的产品大多有比较好的技术支持,如果他们提供的产品有一个严重的bug要修理,购买的license会带有高级用户的支持联系方式,一般第三方公司会在很快的时间内给你解决办法(这样项目就会承担很小的Risk)。特别是做一个大项目,用很多第三方的软件节省开发周期,那他们之间会有很多不兼容的问题,这个时候更需要技术支持。相反,开源的更需要community的支持,要看这个社区的规模,要看项目的Status(active?)。如果开源项目完全停止,那企业无法很快找到解决办法,或者根本没有办法追究责任。

  • 开发人员缺乏。懂得开源程工具和framework的人比较占少数,在欧洲,高等教育选择教开源工具比较多,但是真正的工作的时候大多公司还是选择商业的解决方案。所以毕业的学生到了这些公司,开发商业化的库,end up with these skill sets. 即使有开发人员,可能真正成为expert的人也是个别的。

  • 安全问题。开源的代码公开,所有的安全问题是公开的。企业当然需要隐私并且牢牢把握主安全这个窗口。

那这样,open source还有存在的意义么?或者创造开源就是那些passionate的人们的产物?如果这样想,我觉得完全是错的。相反,开源其实是非常重要的。大部分的商业产品是从开源发展出来,拿了开源的主意。拿一些最近的例子,iPhone的interaction设计是从一个大学Touch Technology衍生而来的,他们有相同的操作方法(多触点操作),有相同的, 相同的产物还有MS的Surface产品; 苹果的Mac操作系统是从开源的Linux衍生而来的; 我们现在用的Internet Address System(internet protocols-HTTP, FTP等等) 都是开源的; 挑战IE的Firefox也是开源的产物。

Open给我们带来了什么?

  • Freedom。虽然没有商业支持,但是开发起来更加的自由。其实商业软件有他们的局限性。如果想做出一些新颖的东西其实是比较困难的,商业化的程序都有自己的模式,如果违反他们设计的模式开发,只会给项目带来很多麻烦。

  • Standard。每商业产品都会为了版权设计自己的规范。其实这样给用户和开发人员带来很多麻烦,对技术或者任何产品的发展都是不力的。最典型的就是MS最早发布自己的HTML规范,直到现在他对公认的W3C规范负面影响很大。

  • Interaction。交流是非常重要的,人们可以任意发表自己的建议,所以最后的解决方案都是用户最想要的结果,或者说是Best solution。在社区会有不同技术类型的开发人员,他们提出的建议可以让人们考虑每一个问题角度。然而商业化的,永远都是局限在一些开发人员的解决方案,他们的经验和知识都是很有局限性的。

说到这里就想起Steve Jobs在第一次被Apple开除之前的一个采访,印象很深,他说:”The only thing about ***** is, they just have no taste.” 我感觉到他说的那家公司也正在市场转型。现在的趋势,对于用户来说,单有技术是不够的,他们需要的不是技术,而是技术在现实生活种的应用。什么是应用? 应用就是User friendly。所以现在真正缺乏的是前端的工程师,他们懂得用户真正的需求。如果用商业软件,是很少有机会做出一些另人惊人的产品的。说说为什么?那我们看看一些有名的网络产品,Google(大多的内部系统都是开源的), Facebook(开源程序语言开发,并且把platform设为开源), Twitter(开源RoR的产物), Yahoo!(运用很多的开源项目开发出来的). Linux(最稳定,最受欢迎的host平台之一), Wiki(最强大的社区字典), 等等。(太多了,如果大家熟悉还有例子,可以留言)。

也许,再过不久封闭模式的开发会跟不上社区模式的进度。也许,社区模式的开发能做出更加有创意的产品。

Leave a comment