现在开发者说一个语言也就透露了他的年纪。编写Mac操作系统老将Andy Hertzfeld说:“当看到Swift公告的时候我非常激动。因为我一直鄙视Objective C,我喜欢其背后的原则,但是讨厌其语法,我从来没能够真正的享受编程。” Apple将其下一代产品、编程语言项目委托给一位名叫Chris Lattner的计算机科学家,LLVM项目的主要发起人与作者之一。LLVM 是一个开源项目,其核心库提供了与编译器相关的支持,可以在不同的平台上运行(包括Apple和Google在内,都广泛的使用它)。在2005年加入Apple后,Chris Lattner继续LLVM项目以及相关的工作,随后在大众视野里消失了几年,去年6月份,在Apple全球开发者大会上,其携带Swift出现在大家的面前。 Swift旨在成为“第一款工业级质量的系统编程语言!”换句话说,Swift是有前途的,你将能够不用费力就可写出运行迅速的代码。这赢得了大批iOS开发者和旁观者的欢呼。 Hertzfeld说::“做得好,它缓解了每个人巨大的痛点。对于iOS开发者来说不去追求Swift的顶端是愚蠢的。” 如果你“签约”了Swift,意味着你购买了Apple的整个领域:你需要通过Apple开发和销售你的程序;你的程序将运行在Apple机器上;如果你想在其它地方运行的话,你需要使用其它语言重新写一遍;你的命运将和Apple密不可分。 Hertzfeld说:“你必须提交到这个“有围墙的花园”,所以他抵制了用Swift工作的诱惑。不过如果他们实现开源,或者对跨平台有一点点兴趣的话,我可能会接受Swift工作。” 开源版本的Swift意味着开发者能够找到一种方法快速的将程序移植到不同的平台,并且这也能保证在未来,当Apple失去了Swift继续下去的兴趣,该语言还是有未来的。那些曾逗留在“有围墙的花园”外围的开发者往往非常关心这个问题。Apple对于开源并不完全过敏,虽然它似乎决心要抓住世界范围内iOS的控制权。在Swift公布不久后,LLVM项目里的开发者开始就Swift“隔绝自然”问题纠缠于Apple和Lattner,Lattner回应说: 伙伴们,你的推测仅仅是——投机。我们还没有讨论过这个,因为我们有大量的工作去应对大量的反馈,并要在今秋发布1.0版本之前落实大量的事情(如访问控制)。你可以想象我们当中有很多人希望它开源,并成为LLVM的一部分,但是讨论尚未发生,并且短时间内也不会出现。 Swift的出现并没有Go时间长,在任何情况下,其未来在Apple领域是安全的,如果Apple说Swift是十亿iOS设备的未来,那么它就是。就像一位波特兰独立的iOS开发者David Wheeler一样,人们会采用它,因为从长远看来,他们别无选择,同时它也有意义。Wheeler说Swift迅速的将他“拿下”了,他以为Apple将继续修补Objective C,“我想知道它现在去哪了?”Wheeler说。 语言本能 大型计算机时代的主流语言有相似的起源:来自IBM的FORTRAN,以及COBOL在很大程度上是基于Grace Hopper的Flow-matic,而这个是为Remington Rand公司的Unicac创建的。在1990年,Sun创建了Java,2000年 Microsoft创建了C#。 事实上,大多数的语言是大型机构、企业或学校的产物。 Hertzfeld说:“创建一种新的编程语言需要花费大量的资源。这是一个长达十年的项目去让新的语言完全用工具加工、建立和使用,小公司做不到这点。” 尽管有困难,但是悲哀的是自1960年以来,计算机行业里有太多的语言存在重复的部分。今天的悲哀是无用的,程序员不太可能停止设计新的语言,或者同意去分享,因为如早期开发者Alex Payne说的那样:没有激励,语言的历史充斥着标准化的努力。这是非常错误的,浪费了大量的时间,却没有产出一个让任何人都满意的结果。 这么说并不意味着忽视Facebook开发的新语言Hack,尽管Hack是开放源代码的,但是本质上PHP语言的变体或扩展。并没有受到公司外部的人追捧。毫无疑问,Facebook希望看到变化,但是它并不是社交网络积极推动的东西。这些天对于Facebook的Hack的反应就是“观望”。 开发者指出,每一个新的语言开始作为一个摆脱不掉的种子存在于个人或小组的大脑中,这一直困扰着我。我们可以做的更高。无论如何,需要有耐心和努力去学习一个新的语言;开发者要仔细选择。Payne说:“当选用一个新的语言时,我会跟随其他人的东西,因为这些人和你一样依赖于图书馆和文档,我想你希望知道你是否进入了一个正确的‘小镇’。” 有一点我们可以有信心的说,新语言是好的,它们简化了程序员的生活;简化了编程的工艺;它们融入了新的有前途的思想;它们赢得了包括公司内外部开发者的尊重。 因为这些原因,霸权主义可能是一个错误的历史对照来制造新编程语言潮流。相反,我们讨论的这些更像是称为软实力的外交政策类型:Go和Swift以特定方式体现它们公司的精髓。服务器VS个人设备;开放Web VS应用商店;一个跨平台的世界VS一个公司。所有区分编程语言的分歧——编译或解释?静态VS动态变量类型?内存管理/垃圾回收?在今天这些可能都是很重要的。 换句话说,任何人担心企业发展编程语言的真正原因可能不是“OMG,他们想要接管世界!”相反,他们担心的原因是不管他们成长的多大,他们总会受到根源语言的约束。 关于编程语言,一旦它们占领程序员的“头脑”,那么你永远不会知道它们最终会去哪里。在80年代创造Objective C的面向对象编程爱好者,他们可能不知道该语言在25年以后会变成一个巨大的全球生态系统移动设备所必要的编程语言。当Sun于1995年推出Java时,每个人都认为它将是一个用于构建浏览器小程序的好工具,然而它的命运走向了服务器端。同时发布的Javascript被广泛的遗忘,在今天却让很多Web“移动”。 对于开发者来说,选择一个语言就像选择一个国家的国籍,你不仅仅购买语法和语义,你也购买了经济和文化,以及你怎样获得生计和力量的规则。就像他们常说的:为了避免一个“死”语言控制了世界,购买需要谨慎。 原文链接:Medium 转自:http://www.csdn.net/article/2014-12-09/2823025 |