BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Swift和其他语言的开源故事

| 作者 崔康 关注 0 他的粉丝 发布于 2015年6月16日. 估计阅读时间: 7 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

首先我要认个错,其实严格来说,编程语言是不存在开源一说的,语言是一种规范,是一个标准,任何人都可以实现这种规范,我们通常说的开源语言,其实指的是它的官方基础类库、开发工具、编译器、解释器、运行时环境等等,所以咱就不深究措辞了哈。

最近苹果的WWDC大会上爆出的一条消息让我被强制刷屏,感受到了“视觉疲劳”——Swift 2.0开源,据说当时现场响起了最热烈的掌声。“最”这个字用地很好很微妙,也从某种程度上反映出开发者们在苹果长期以来相对封闭的生态圈里看到了一丝开放的苗头。索性咱们就聊聊几个语言的开源故事。

Swift

先说说风口上的飞猪——Swift,刚刚一周岁的小家伙,由于出身苹果的正统名门,一出生就受到了移动开发者的强烈关注,学习的人很多,实践的例子也有,但是由于Object-C多年积累的成熟生态圈的固守,所以生产环境中的应用比例一直不是很高(之前看过一个报告,貌似在10-20%左右)。这一年苹果为了推广Swift也是拼了,各种优先规则都用上了,开源也是最新的大招。为啥,简单解释下:

  • 开源本身就是一种营销策略。铺天盖地的新闻报道已经是明证,特别是对于苹果这样的企业来说,一点广告费不用花,Swift已经名声在外了。
  • 开源表明一种开放的态度,有利于吸引开发社区的参与。现在不玩开源的企业都已经out了,技术选型的重要标准之一就是是否开源。所以Swift的开源让开发者特别是苹果生态圈的其他公司更加放心,虽然我打赌没有多少开发者或者公司会去查阅哪怕一行Swift源代码,但是放在那里看着也安心,对吧。
  • 开源有利于生态圈的快速发展。没开源之前,Swift的各种工具基本都依赖于苹果原创,但是开源之后,社区就可以提供各种开发工具,生态系统可以快速构建起来。

总之,苹果的目的就是让更多的开发者赶紧用Swift,麻溜的,让你没有不用的理由,就是这么任性,而且还支持Linux,目的是“成为主流开发语言”,好大的一盘棋,从开源起步~

Rust、Go

插一句,出身真的很重要(如果不是最重要的话),前几天和朋友聊起Rust语言的发展现状,是又爱又恨,挺好的一语言,发展的太慢。我们都感叹:唉,出身差了些,如果把后面的金主从Mozilla换成Google,那肯定是另外一番景象了。

说到Google,它推出的几门语言都是开源的,其中包括著名的Go语言,其实对于天生带有互联网基因的公司来说,开源语言是一个非常自然的决定,不需要太多的业务分析,所以也就没有太多的故事可以展开说。

Python、Ruby

除此之外,还有哪些开源的语言是自然之举?想一下(请思考10秒钟)。

......

时间到,还有那些由“个人发明”而不是“公司行为”的编程语言,比如Python、Ruby,它们均来自于极客们的自我创造,没有过多的商业利益,也就没有束缚,所以开放给社区是自然而然的选择,事实上,这些语言的生命力也非常顽强,在自己的一亩三分地里耕耘地很不错,也体现了开源的强大力量。

Java

说到底,那些“诞生于公司”而后又开源的编程语言的故事更八卦一些。这里面主要就是两家,Java和.NET(抱歉,我把.NET家族算作一门泛语言了)。

刚刚过完20岁生日的Java算是命运多桀。诞生于1995年的它赶上了互联网发展的第一波潮流,快速成长为最主流的编程语言之一,并长期保持着大佬地位。可惜,背后的大树Sun公司也有日薄西山的时候(说到这里我忍不住插一句,江湖上传言Sun对自己的员工太好了,做技术做的太好了,以至于忽视了公司是需要盈利的,唉,做技术做到这份上也真谢谢它了),后来被财大气粗的Oracle收购。

收购是发生在2009年,不过Java在2007年的时候就开源了。从时间来看,开源应该是个无奈的选择,当时的Sun已经日渐式微,虽然贵为Java的领导者,但是始终没有在Java身上找到很好的商业模式,说白了,就是不知道如何更好地从Java身上赚钱。有读者会问了,做语言哪有图赚钱的?没错,做语言本身可以不赚钱(除了卖企业授权和衍生品之外),但是作为企业生态系统的一部分,一定要在商业模型中体现其价值。

Sun的问题在于,没有想清楚Java的定位和价值,反而成了负担。开源Java的目的一方面是减轻自身的负担,另一方面也是为了增强Java语言的地位。可以说,Android系统给了Java第二春,在移动开发领域也占据了半壁江上。Oracle对待Java的方式和Sun完全不一样,以社区来推动Java的发展,自己承担的职责(成本)减少很多。同时,又利用Java相关的一些专利牵制了部分对手。所以Oracle是想的比较明白的。

就以今年的20周年庆祝活动为例,有熟悉的朋友告诉我,Java10周年(当时Sun主办)的庆祝活动在国内当时是全民狂欢的级别,烧钱很多,而今年的20周年活动缩水很多,不可同日而语。或许,这就是两者最根本的区别吧。

.NET

说完Java,当然也要说说它的老冤家对头.NET了,微软这些年虽然有些坎坷,被互联网巨头冲击不小,但依然是IT巨无霸之一,最近又提出了移动和云优先战略,对开源技术也持开放的心态,逐渐把.NET家族的上上下下开源出来,对社区的震撼不亚于苹果开源Swift。有关.NET开源的故事,我在另外一篇文章《.NET开源,且行且珍惜》中已经做了详细的介绍,这里就不重复了,感兴趣的读者可以回复“.NET开源”查看。

一句话总结

开源的势头势不可挡了,逆着激流会被吞没,不如顺着激流同化为激流。

作者的微信公众号“技术风向标”,关注IT趋势,承载前沿、深入、有温度的内容。感兴趣的读者可以搜索ID:jishuqushi,或者扫描下方二维码加关注。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT