苹果自家的编程语言 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 的开发课程,有兴趣的同学可以去查看。

为什么说Swift正在颠覆整个互联网生态?相关推荐

  1. 互联网生态建设落地五大挑战——保险科技生态建设...

    解决生态建设五大主要挑战,推动生态落地. 以下是数字化转型的分享线路图,您现在所在的位置为序号的分享:生态圈建设. 以下是正文: 前面论证了生态建设的必要性:大小企业在生态建设第一步,选择App还是微 ...

  2. 效率,互联网生态模式的本质!——保险科技生态建设...

    事实上,互联网作为技术,最大的作用就是提升效率.为什么每家企业都想要建互联网生态,因为在可见的商业模式中,互联网生态是效率最高的模式. 都在讨论建生态.进生态和投生态,却未曾有人讨论生态建设的必要性. ...

  3. 腾讯汤道生:2020年加大投入产业互联网生态建设

    新一轮产业革命正在不断深化,为全球经济发展提供了历史性机遇.如何通过数字化.智能化等手段打通产业链不同环节,优化产业效率,实现产业协同,加速产业转型升级? "与合作伙伴'共创'是产业互联网发 ...

  4. 权威报告丨2018-2019 新型互联网生态研究报告摘要

    来源:商业伙伴 摘要:核心观点: 1.传统ICT企业与互联网企业,正在相互进入对方业务领地: 2.新型互联网企业既有互联网的基因,又专注于B端企业级市场: 3.政府.金融与制造是新型互联网市场规模最大 ...

  5. 亚信产业互联网生态亮相2016南京软博会

    9月2日,第十二届中国(南京)国际软件产品和信息服务交易博览会在南京国际博览中心拉开帷幕.本届展会围绕"中国制造2025"和"互联网+"展开,规模达10万平方米 ...

  6. 拓步机器人联网说明书_科沃斯IPO聚焦三大战略 谋划转型互联网生态企业

    家电单品市场正在逐渐饱和,面对日益激烈的市场竞争,企业纷纷寻求破局之道.在智能物联技术的催化下,智能家居成为公认的破局方向,彩电.冰箱.音箱.服务机器人相继成为企业争夺智慧家庭入口的焦点. 5月15日 ...

  7. weiit—智慧中台,互联网生态体系构建者

    weiit信息的数字化商业平台由三个部分组成,即:前台.后台.中台. 前台:由前端交易系统组成的前端平台. 每个前台系统就是一个用户触点,即企业的最终用户直接使用或交互的系统,是企业与用户的交点.例如 ...

  8. 【报告分享】5G+工业互联网生态合作白皮书-中国电信(附下载)

    今天给大家分享的是  5G+工业互联网生态合作白皮书-中国电信 "行业报告智库"查看完整或下载更多报告 2020-11-19-2019-2020动画电影市场研究报告-艺恩1.pdf ...

  9. 互联网生态建设的切入方式——保险科技生态建设...

    这一篇通过介绍参与生态圈建设的四种模式:进·生态.联·生态.投·生态.建·生态,为大中小企业提供了参与生态的参考方式. 以下是数字化转型的分享线路图,您现在所在的位置为序号的分享:生态圈建设. 以下是 ...

最新文章

  1. 2020大部分知名公司Java面试题(一)
  2. ajax servlet怎么接收_AJAX常见面试题(修订版)
  3. (转) SolrCloud之分布式索引及与Zookeeper的集成
  4. Dijkstra算法的粗略学习
  5. 最小覆盖字串—leetcode76
  6. Java 8之新特性详解
  7. 漫画贴:16岁和36岁打球的区别,你是否怀念球场上那个年少的你?
  8. PHP实现图片的等比缩放和Logo水印功能示例
  9. 【MySQL】MySQL 5.7 sys Schema
  10. Cocos2d-x动画播放(序列帧)
  11. Windows加密视频播放器使用教程
  12. 为什么要使用MVP架构
  13. 数据库版本管理框架-Flyway
  14. 打造云原生大型分布式监控系统
  15. Pb数字变成英文字母金额
  16. 澄清 | snappy压缩到底支持不支持split? 为啥?
  17. 说说background-size:cover;与background-size:contain的区别
  18. 【19调剂】华东师范大学计算机/软件工程非全日制调剂
  19. 基于典型相关分析(CCA)的多元变化检测算法(MAD)
  20. 拒绝“内卷”跃迁软件测试最大门槛,我是如何从月薪8K到15K的?

热门文章

  1. mysql linux 下载安装,Mysql 下载 安装 for linux
  2. vue部署到服务器 接口调用不了_Python 调用 Azure API 实现服务器自动部署
  3. python求球的表面积_892. 三维形体的表面积(Python)
  4. 三、linux目录浏览管理及维护
  5. 限界分支法(实际上没有剪枝,介绍的是广度优先搜索):01背包问题,队列实现方式(FIFO)
  6. [TCP/IP] TCP如何实现流量控制和拥塞控制
  7. Deploy One Project on Heroku (Week IV)
  8. 使用sphinx搜索子域名过程中需注意的问题
  9. VC中怎么读取.txt文件
  10. 关于real210开发板linux系统可能无法解析域名的问题解决方法