|
|
苹果应该将Swift编程语言开源的7个“是与非”! |
|
作者 Peter Wayner 火龙果软件 发布于 2014-9-25 |
|
|
更快的创新,更加的安全,更大的市场,如果苹果将Swift编程语言开源的话,相信它会更吸引人们的注意力的。但是就这个话题,估计苹果不会轻易将Swift开源的,面对Adroid这样强大的对手,他是不会掉以轻心的。
苹果的新编程语言Swift已经流行好几个月了,苹果的忠实粉丝的数量也在翻倍的增长,他们的宣传语主要围绕着“更加清洁”,“更加简单”,“更加现代化”,“更加强大”。
而一些冷静的人肯定会对 Swift 做这样的假设:一旦编程工具免费,黑客一定会攻击用在苹果硬件上的 Xcode 或者是 Playground。当然,如果你真的想试试的话,可以到这个网站上挑战一下,前提是不许碰所有的类库。
苹果从来都是不走寻常路,即使很多课程里面的 Swift 是开放的,但并不意味着苹果会将它开源,我们不要去假设苹果会给你什么免费的东西,像 Swift 这样新星的东西是不会轻易开源的。
下面就是我们总结出的苹果为什么应该将 Swift 开源,以及它为什么不愿意开源的7个是与非。
1、苹果应该开源 Swift:开源点燃创新的火花
在编程世界里,新的想法、工具和架构经常是以开源的形式开始的。如JavaScript、PHP、Clojure、Haskell 都是通过开源的动力来吸引程序员的。例如 Node.js,将 JavaScript 带到服务器里,这也多亏了开源的 JavaScript 引擎V8和 Rhino。如果你想分享好的东西,最简单的机制就是免费的将代码发布到共享网站像 GitHub 或 Sourceforge 上面,尽可能广泛地传播开来。开发人员会蜂拥而至扩大其功能和实现。
苹果不应该开源 Swift:创新并不是苹果真正想要的
Swift 的语法看起来与众不同,新闻上面一次又一次的重复“新”这个词,但其核心,Swift 只是一个智能业务策略,目的是用来维持现状和在有限的时间内在现有的类库内挤出更多的空间。
就优雅程度而言,Swift 被设计用来支持一个完全由 Objective-C 编写出来的世界。这是为了讨好无数行现有的 Objective-C 代码,而不是用 Swift 取代 Objective-C。这意味着苹果在创新方向并没有多少长进,更别谈在开源上有什么激情了。苹果想要的是保持其硬件平稳的运行就好,而不是鼓励混乱的创新。
2、苹果应该开源 Swift:未来劳动力市场的开源时代就要到来了
一位计算机科学的教授曾经跟我说,他很喜欢 Swift 编程语言,但是他不忍心让学生花很多钱去购买硬件,最终去只是为了使用这个语言。这也是一个很重要的原因为什么很多计算机科学的课程里面使用的是像 Eclipse 这样的免费的 IDEs,运行在商用硬件上。同时,很多初学者课程都是将重点围绕在 HTML5、JavaScript 还有简单的 Firefox OS 上面。
如果苹果想要在编程课程和自学者群体方面获得更大的牵引力,那么他就需要让 Swift 运行在更便宜的硬件上面。一旦孩子们在 Eclipse 上学习 Java,只需要几分钟就能把 Android Development Kit 安装完毕;相反,如果等他们攒足了钱去买一台 Mac 安装 Xcode 区需要很长的时间,那我敢说,Android 开发的进程至少领先苹果一代人。
苹果不应该开源 Swift:市场决定程序员的选择
虽然通过大力开发Android技术有可能最终打败iOS,但是从学校毕业的学生还是需要工作。目前iOS仍然是App开发者的大部分收入的主要工具,收入和工作是成正比的。学生总是想学习支持付费客户的平台,而现在,很多的低端 Android 手机并没有这个平台。只要苹果有,学习者就会遵循——即使他们不得不购买昂贵的硬件进入到“围墙花园”。
3、苹果应该开源 Swift:开源让所有的bug变得肤浅
开源的核心宗旨是:人多力量大,bug无处逃。因此,保养良好的开源代码通常是由许多程序员共同维护的结果。如果 Swift 想要更快速的运行、添加新功能,并确保最优性能和安全性,那么它就需要为程序员提供方便:使得他们在代码和孔隙之间查漏补缺,并与每个人分享自己在代码上的调整。
苹果不应该开源 Swift:“围墙花园”有自己的优势
开源界可能会吹嘘自己的战绩,但是根本没有办法去衡量修复bug的效率。宣布所有的bug都已经被修复就相当于证明更加负面的影响。让人信任这么多年的OpenSSL是可以信赖的。
一个“围墙花园”可能会要求我们相信一个黑盒,而这个黑盒子有可能被虫子和隐藏的后门撕开了,但这有一个优势:坏人和我们一样都很困惑。我们不应该庆祝自己的无知,但有的时候无知又是一个优势。另外,苹果最尴尬的bug就是“goto fail”,而且是在很久以前开源的代码。我们只是想知道,开源社区花了多长时间才找到这个bug的?
4、苹果应该开源 Swift:开放意味着扩张和新兴市场
很久很久以前,苹果独霸智能手机市场,后来 Google 开源了 Android 系统,并在市场上占有惊人的比重——根据最近的一次评估,至少是85%的份额。对于开发者来说这是一个很诱人的数字。开源提供了一个很神秘的方式来渗透进市场,培养新的设备,吸引大量的新的伙伴。可以看看 Android 的产品,包括电视、照相机、电脑,甚至是冰箱。而 iOS 方面最新的消息就是出了很多颜色的iPhones。
>苹果不应该开源 Swift:分享会导致分裂
分享也许会吸引很多有趣、可行的新想法,但是通常情况下这会带来分裂和困惑。为什么苹果想要鼓励更多版本的 Swift 来困惑人们呢?这样就很难在同一时间支持 iPhone 4 和 iPhone 5。Android 开发者就一直在诅咒永无止境的变换花样。
另外,如果一些很不错的 Swift 新代码只运行在 Linux 上而不是在 Mac 上会怎么样呢?那怎么帮助苹果和它的用户呢?苹果的业务主要是将流畅的运行系统交付给用户,而不是为程序员创造黑客节日。
5、苹果应该开源 Swift:开源可以确保一个强有力的工具生态系统
如果你想开发 Android,可以使用开源世界里多得是的工具,Java,Eclipse,IntelliJ,Ant 或者是 Maven 命令行。可使用的 Java 工具列表很长,各个工具都很有创新。不过这个列表有一个重要的事实:Sun/Oracle 都不是用它们构建的。开源 Swift 也有可能培养开发者生态系统,确保开发者有更多的理由来选择 Swift。
苹果不应该开源 Swift:开放式 Android 的胜利
Apple 也许并没有出售最智能的手机,但是他出售的这些手机主要还是为了带动App的销量。大量的研究表明,iPhone 用户花在Apps 上的钱远远超过了 Android 购买人群。这也正是为什么移动开发者将 iPhone 视作第一目标,使得 App Store 成为一个完美的购物体验中心。如果开发这可以按下一个按钮就能将 Swift 代码调配到 iPhone 和 Android 市场上的话,苹果很有可能失去App领域的主导地位。如果用户可以在一个昂贵的 iPhone 上和一个便宜的 Android 手机上获得同样的App,那么最后肯定是价格便宜的一方胜利。
6、苹果应该开源 Swift:苹果亏欠开源很多
就其本身而言,苹果并没有实现 Swift 的所有荣耀,它只是站在了巨人的肩膀上。这不像苹果自己构建 GCC 或者是 LLVM。Swift 的创建基础是从开源开始的,就算现在开源,也可以认为是苹果在回报开源。苹果已经通过 Darwin 向 BSD 贡献了很多开源项目,为什么不能再多一点点呢?
苹果不应该开源 Swift:苹果根本不欠开源什么东西
如果你使用开源工具构建了一个产品,最好不要将其开源出来。不过,有些像 GPL 这样的许可证可能强制你分享你对工具的所有修改内容,但它范围有限。苹果已经在一个开源基础的顶端构建了一些新的东西,我么也做了同样的事情并使之私有化,为什么苹果就不能呢?
7、苹果应该开源 Swift:Swift 可以被克隆
Microsoft 曾试图将 .Net 保留在 Windows 平台,然后开源社区就将它克隆了。其实这样的事情很有可能会发生在 Swift 身上。一旦有人构建了一个完全开放的程序包,它就有可能成为这个编程语言的主导版本。程序员可以开始构建这么一个程序包,然后苹果估计就没什么用了。从一开始就开源 Swift 的话,苹果肯定会采取措施以抵御一个合法的竞争对手的出现。
苹果不应该开源 Swift:谁想要这个克隆体?
一个 iPad 可能价值 500 美刀,在 eBay 上出售的使用 Android 系统的克隆 iPad 不会超过100美刀。一些在地下室里的黑客基本上可克隆出一个 Swift,但那么做的最终目的还是为了钱和高薪工作,一旦有了资金支持,这些克隆产品就是很不错的demos。直到人们开始排队购买运行开源 Swift 系统的硬件商品的时候,才不会有太多的财政支持。
|
|
|
|
|