Swift开源带来的思考
2015-06-29 17:31 阅读(199)

20150629092351_42.jpg

苹果全球开发者大会总能掀起一股旋风,虽然今年大会的“猛料”不如往期,但 Swift 在今年晚些时候开源的消息,却足以赚足开发者眼球。

其实苹果的行事风格,我还是蛮喜欢的:“苹果把自家的事情做好,给用户最酷的体验,他的实力就是我行我素的资本,而用户也欣然接受这样的苹果。”不过,苹果有自己的平台、软硬件,Swift 也才发布将近一年的时间,这么快就开源 Swift?

关于苹果为什么开源 Swift 的分析已是铺天盖地,就无需多言,我觉得最重要的一点还是——通过吸引更多的开发者使用 Swift,获得更多的支持以及创意,能够为苹果带来更大的商业利益。

在这里,我更想由此思考一下语言发展的趋势及伴随的现象。

一、语言/工具的封闭模式已经落伍了

十来年前的软件公司还有封闭资本,那时候的 VB、Delphi 足够好用,尽管盗版也很普遍,但光靠卖这些工具就能赚到盆满钵满。到了后来,Delphi 几经挣扎还是没落了。当年李维在《Borland 传奇》里将主要原因归咎于管理层接二连三失策,而从历史轨迹来看,靠封闭单一的工具类产品支撑业务发展,路口必将越收越窄。再来看看偌大的微软帝国,其产 品和技术的覆盖面遍布各个角落,但最终也于 2014 年年底宣布开源 .NET 开发框架。

回首 Java 的二十年历程,JDK 是开源的(你只要打开 Src.zip,就能看到源代码),有开源免费的 Eclipse 和 NetBeans 的支持,同时借着“一次编写四处运行”的宣传语吸引无数开发者积极投入,构建出了一个庞大的 Java 社群,至今仍雄霸天下,这就是开源力量。

在这十多年里,不得不提的当然还有 PHP、Python、Ruby 等一大波开源动态语言的盛行,这些早已为业务所证明是成熟而稳定的解决方案。互联网上,用 PHP、Django 或 RoR 构建的网站比比皆是。

看看 TIOBE 语言榜就知道,开源的编程语言是多么流行!

随着互联网/移动互联网的发展,“免费”已经是经典的商业盈利模式,现在互联网的盈利点越来越集中在云平台/云业务租赁、各种增值服务、流量、 订阅和广告上,越大的用户量,盈利越明显。而越多的开发者支持,创新点就越多,产品也越丰富。因此,我认为作为开发支撑基础的编程语言和工具,其开源和免 费趋势将逐渐成为主流。毕竟,用户资源和开发者资源,都是事关产品生存的生命线。

但为何仍有这么多不开源的产品,比如不少数据库产品都不是开源的?其实,开源是一种模式,商业也是一种模式,看看著名的《大教堂与集市》就会有 更多感悟。君不见,开源的大数据、NoSQL 解决方案已经对商用数据库造成了不小冲击,而是否开源,也是商业公司的一种选项,比如微软开源 .NET 框架、苹果开源 Swift。商业公司的选择总是考虑利益第一,有可能是短期,也可能是长期的,但无论如何,千万别把商业公司当作开源的天敌,在合适时机做出合适的选择, 如果需要开源,也未尝不可。要知道,微软、苹果其实也为开源做出了不小贡献!

二、语言的发展

有时候还是蛮怀念十几、二十年前的软件开发环境,好像你只要会C或 C++ 就可以了。但时光早已不同,尤其是近年的语言趋势更是呈现出许多新特性。这些新特性的流行,得益于 2000 年代的动态语言,比如前面提到的 PHP、Python、Ruby。而这些语言的日益流行,又得益于互联网应用的兴起。PHP 在网站构建方面占据大半壁江山,Python 因应互联网数据量的喷发在科学计算领域得以重用,而 RoR 成就了多少初创公司的创业荣光。当年被人不看好的小脚本,却在互联网时代找到了大展身手的好时机。现在你不会一门动态语言都不好意思说自己是程序员了。

还必须提一下 JavaScript,当年几乎人人不待见的丑小鸭,谁能想到今天的地位如此突出呢?甚至还延伸出了 Node.js 这样一个优质平台。一时间多少 JavaScript 开发者希望借助它实现心中的“全栈”梦想。同样,没有互联网,也就不会有 JavaScript 的大行其道。我认为,JavaScript 在当代的价值,不会输给十几年前的 Java。

动态语言的流行,也让许多组织和个人认识到了其存在的价值——那就是开发效率大大提升。以前编程需要为 1M、甚至几百K的内存绞尽脑汁,运用各种 Hack 技巧。但遵从摩尔定律,硬件的发展速度非常快,于是,开发者逐渐将眼光转到了开发效率上。动态语言中广泛应用的 filter、map 和 reduce 等具有浓郁函数式风格的高阶函数,被认为是提升开发效率的有效手段。当然,苹果的 Swift,同样也大量应用了这些特性。

就目前编程语法发展过程的几个关注点,我的理解如下:

三、语言营销、语言魅力

语言间的各种对比、争论由来已久,而且还历久不衰,这其实也说明了语言的流行除了客观条件,还存在一定主观因素的影响。确切地说,这些主观因素中很重要的两点是:

因此,语言是有“营销”因素存在的,也许这也算是各种编程语言的魅力之一。当然,在语言营销过程中,利益关系往往紧随其后。举个例子,我印象最 深刻的一个语言营销例子就是每年推出的 Java 短片,其中可以看到暗喻语言的各种恶搞,无形中让人对 Java 产生了不小兴趣。此外,当下流行的各种语言/技术大会,姑且不言参会价值,同样是一种典型的语言/技术营销手段。

Swift 开源的消息在 WWDC 2015 大会上发布,可谓天时地利人和,算是一种成功的营销。加上 Swift 具备的现代语言特性,Swift 开源的策略可谓一炮打响,足以让粉丝激动许久。

一门语言,如果有几个业内知名大牛支持,有一个实力雄厚的组织和平台,具备一定优质特性,再加上合适的营销策略,就很容易吸引众多粉丝。

你我皆凡人,都有冲动之后就嚷嚷“再买就剁手”的经历,可见营销的影响力简直无孔不入。而开发者对语言的追求,一是现实刚需,二是自我兴趣,三是利益契合,如果光靠一时冲动,那么早晚会迷失自我,如何在感性和理性的平衡中选择自己的语言方向?这很重要,但也许是另一个话题了。

四、Swift 开源带来了什么?

从技术角度来思考,Swift 开源能带给我们什么?我觉得主要有以下几个方面:

总而言之,Swift 开源是大大前进了一步。而超越 Swift 开源本身,当今编程语言的发展趋势也值得我们认真思考。如果从完全理性的角度看待编程语言,那么编程语言无非就是一门编程语言:“选择好适合自己的编程语 言就是了”。但问题就在于如何选择合适的编程语言呢?语言的魅力也许就像盲人摸象,你无法做到足够理性,或者这世界就没有银弹,编程语言的比较和纷争,将 是一个永恒的话题,热度无限......