查看: 1325|回复: 5

编程语言进化链的顶端:为什么说Swift正在颠覆整个互联网...

[复制链接]
  • TA的每日心情
    擦汗
    2014-11-30 10:07
  • 签到天数: 170 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-6-6 07:54:06 | 显示全部楼层 |阅读模式
    分享到:
    苹果自家的编程语言 Swift 一经推出便引起了多方讨论,一些人说 Swift 将会改变整个苹果的应用生态,一些人则认为这不过是一个玩具语言。因此今天我和极客学院的创始人靳岩,以及氪加的 iOS 开发工程师卢侃一起聊了聊 Swift 对互联网的影响。有趣的是,我们三个,一个是互联网的观察者(我),我一个是互联网技术教育的从业者(靳岩),一个是 iOS 应用的开发者(正为避免失业而开始看 Swift 的卢侃),都对 Swift 可能带来的前景感到兴奋。
    观察者暮山:
    从一个旁观者的角度,我认为 Swift 的代表的是编程语言的基本发展方向。
    纵观计算机的发展史,我们可以看到,计算机编程语言在由以机器为中心向以人为中心发展,即,从更便于机器阅读的语言发展为更便于人类编写,更接近人类自然语言。
    最开始的电脑编程都是人工输入“0”和“1”的机器语言,完全以电脑为中心。后来大家觉得每天输“0”“1”效率实在太低了,便有人发明了汇编语言,用一些符合和字母来代替特定的“0”和“1”的组合。再后来,汇编语言也显得写起来太慢,如果想用汇编语言写一个较大的程序需要海量的代码。于是有人发明了 C 语言这门“高级语言”,让开发者本身能够更高效快速的编写代码,同时不太牺牲计算机读取代码的效率。然后 C 语言迅速成为了代码界的主流语言。
    尽管 C 语言比起最初的机器语言已经好懂很多,而且需要写的代码量更少了,但依然有人想,编程语言能不能更简单,更像人话?这就出现了脚本语言,比如大家熟知的 Python,Perl,以及我们的网站所用的 PHP。然而脚本语言并没有像 C 语言一样基本替代了汇编语言,这是为什么呢?
    最简单的原因便是,脚本语言运行效率较低。电脑并不理解脚本语言,因此,用脚本语言写的程序会被转化为机器语言,从而让计算机执行。然而问题是,这就好像我说中文,你说英语,我们之间隔了一个翻译,翻译给机器后总是会产生词不达意的情况,因此许多本来很简单的运行会被拖的冗长,从而降低了运行效率。而 C 语言等面向机器的语言则更像是一个懂英语的人用中文说话给翻译,他了解英语思考者的思路和逻辑,并且明确的用中文中类似的表达说出来,所以 C 语言的运行效率更高。
    而我对 Swift 看好的原因便是它既解决了脚本语言运行效率的问题,又继承了其简洁的语法和强大的功能。Swift 语言的发明者 Chris Lattner 之前最大的成就便是开发了编译系统 LLVM,能将高级语言转换为机器语言,也就是前文所说的“翻译”。Lattner 也因为 LLVM 其极大的提高了包括 Objective C 在内的诸多高级语言的执行效率而获得了美国计算机协会颁发的“软件系统奖”。这次 Lattner 开发 Swift 相当于从高级语言到编译器做了个全套,并且他表示 Swift 在许多方面的运行效率都优于 Objective C,而且远超的 Python。
    也就是说,如果 Swift 的运行效率真的像 Lattner 描述的那样,那么 Swift 代表的程序猿先进生产力的发展要求(提高编程效率),代表了计算机先进文化的发展方向(语法简洁,现代),代表了广大人民的根本利益(写起来爽,学起来快)。当然,前提是 Swift 真的像 Lattner 所说的那样强大。
    教育者靳岩:
    我认为现在大家不论怎样高度评价 Swift 都是低估了它会对业界带来的影响。
    首先是他是一门新语言,而且关键是它是被苹果推动的,有非常好的应用场景。围绕 Swift 未来会出现与之相关的社区,开源代码,培训课程等...Swift 将会带动一整个与之相关的生态,而里面一个非常小的部分都有很大的商机。
    其次我个人也非常看好 Swift,因为它是苹果对自己的一次颠覆,而它对抗的正是代码界的官僚化。举个例子,现在 Java 都更新到 8.0,但现在大部分人用的都还是 Java 1.6,为什么大家不用有更多新特性的 Java 8.0 呢?说白了就是大家觉得 1.6 已经能做许多事情,懒得去看新功能了。而 Java 本身也一样,一度我都觉得它要死了,结果 Andorid 又把它救活了。但现在 Java 修修补补到 8.0 依然还是有许多问题是没法解决的,因为本身就是架构上的过时,那为何大家还在用它?因为那些大公司都用习惯 Java 了,没有勇气去换一个更现代更高效的语言,而 Swift 则是逼着公司和开发者去适应新的语言和功能。
    Swift 的情形和 Go(Google 发布的编程语言)不一样。大家都知道 Go 很好,但 Google 从来没说要大家用 Go 来写 Andorid 的应用。这就不像苹果,推出 Swift 后,对 Objective C 的支持肯定会逐渐减弱,最后完全转到 Swift,这就逼大家必须抛弃二十多年前发明的 Objective C 而必须用 Swift。退一步,如果用 Swift 的效率比 Objective C 高,你如果不用 Swift 在应用市场上的反应就会比别人慢,那还是逼你用 Swift。
    特别是这样一来,Google 最后还是只能要求大家用 Go 而不是 Java 来写 Andorid 的应用,这样对整个 IT 圈都是一件进步的事。
    iOS开发者卢侃:
    自从 Swift 推出后小伙伴们都嘲笑我这个 Objective C 的开发者要失业了... 所以我最近一直在看 Swift...
    事实上,我身边的很多人都在看 Swift,除了一些其他领域的 coder 外,也有人想从 Swift 作为编程学习的入门。但我觉得 Swift 并非一门为入门者准备的语言。
    Swift 参考了诸多主流脚本语言的语法,这让它在语法上非常容易,一些有经验的开发者花一两个小时看看开发指南就能上手,但开发应用和了解语法毕竟是不一样的事。举个例子,如果一个开发者本来做服务器端的人,那他可能完全不知道一款应用的开发模式(比如苹果推崇的 MVC) 模式,那么,尽管他对语言本身很熟悉,但和应用开发有关的一切都还是要重新学。因此,尽管 Swift 降低了编程语言的学习成本,但程序开发依然需要经验,所以很多人说 Swift 只是表面上把大家拉到了同一个起点,原本熟悉 iOS 的开发者还是拥有极大的优势。而对初学者来说,语言门槛之后还有许多门槛,不可能突然涌现出许多之前对编程没什么了解的开发者。
    当然,Swift 的特性会得到怎样的应用,能否提高 iOS 应用的性能等,我们可能需要在用 Swift 编写的应用上线后才能看到。
    我看 Swift 去了...
    (可怜的即将失业的 Objective C 工程师...)
    当然,我们对 Swift 的讨论都以它是一款开发 iOS 端和 OS X 端的编程语言为前提,并非讨论各种编程语言本身的优劣。目前 GitHub 上已经出现了一些 Swift 的开源项目,极客学院也上线了 Swift 的开发课程,有兴趣的同学可以去查看。

    04a67ae6a060c9bfcc558d67caf4a9db.png
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-12 10:32
  • 签到天数: 295 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-6-6 08:13:08 | 显示全部楼层
    又是一门高上大的语言要诞生了~~~~~~~~~~··
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-9 11:32
  • 签到天数: 151 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-6-6 14:29:37 | 显示全部楼层
    新玩意,很牛的样子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-9-23 05:09
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-6-7 05:55:42 | 显示全部楼层
    谢谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-31 10:17
  • 签到天数: 447 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-9-16 20:49:31 | 显示全部楼层
    谢谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-31 10:17
  • 签到天数: 447 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-9-16 20:49:47 | 显示全部楼层
    谢谢楼主分享!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    手机版|小黑屋|与非网

    GMT+8, 2024-4-23 20:49 , Processed in 0.146975 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.