Swift 开源带来的思考
苹果全球开发者大会今年的“猛料”不如往期,但Swift开源的消息,却足以赚足开发者眼球。关于苹果为什么开源Swift的分析已是铺天盖地,就无需多言,在这里更想由此思考一下语言发展的趋势及伴随的现象。
苹果全球开发者大会总能掀起一股旋风,虽然今年大会的“猛料”不如往期,但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和C#两种语言占据主流,面向对象编程被赋予至高无上地位。但现在大家越来 越认识到,面向对象编程达到一定规模时,复杂度也伴之而来。因此,旧有的函数式风格又重出江湖,特别是一些函数式特性在动态语言中得到了良好验证。现在, 开发者对待面向对象与函数式两种风格,已经不是非此即彼的印象了,而是认识到它们是可以相辅相成的,比如Scala。即使是Java,也开始引入一些函数 式特性,更不用说先行一步的C#。再进一步,抛开风格之争,遵从应用为先,从而采取实用的编程模式,比如Golang、Rust。
并发特性的增强。多核及大数据时代的来临,现实对并发特性提出了新需求。新出现的系统级语言如Scala、Clojure、 Erlang、Go及刚正式发布的Rust,都对并发特性给予极大关注,并各有各的解决方案。即使是动态语言如PHP、Python和Ruby等,也在这 方面不断尝试。同样的,函数式语言中的不可变性概念,能够较好地符合并发实现的现实需求。
三、语言营销、语言魅力
语言间的各种对比、争论由来已久,而且还历久不衰,这其实也说明了语言的流行除了客观条件,还存在一定主观因素的影响。确切地说,这些主观因素中很重要的两点是:
语言的官方组织或作者希望进一步扩大该语言影响力而采取的宣传攻势;
爱好者出于对该语言的热爱而释放出的赞誉之词,反过来还有反对者的不满宣泄。
因此,语言是有“营销”因素存在的,也许这也算是各种编程语言的魅力之一。当然,在语言营销过程中,利益关系往往紧随其后。举个例子,我印象最深 刻的一个语言营销例子就是每年推出的Java短片,其中可以看到暗喻语言的各种恶搞,无形中让人对Java产生了不小兴趣。此外,当下流行的各种语言/技 术大会,姑且不言参会价值,同样是一种典型的语言/技术营销手段。
Swift开源的消息在WWDC 2015大会上发布,可谓天时地利人和,算是一种成功的营销。加上Swift具备的现代语言特性,Swift开源的策略可谓一炮打响,足以让粉丝激动许久。
一门语言,如果有几个业内知名大牛支持,有一个实力雄厚的组织和平台,具备一定优质特性,再加上合适的营销策略,就很容易吸引众多粉丝。
你我皆凡人,都有冲动之后就嚷嚷“再买就剁手”的经历,可见营销的影响力简直无孔不入。而开发者对语言的追求,一是现实刚需,二是自我兴趣,三是 利益契合,如果光靠一时冲动,那么早晚会迷失自我,如何在感性和理性的平衡中选择自己的语言方向?这很重要,但也许是另一个话题了。
四、Swift开源带来了什么?
从技术角度来思考,Swift开源能带给我们什么?我觉得主要有以下几个方面:
除了苹果自家的平台,以后也能在Linux上用Swift开发应用了,这样可以吸收更多Linux平台上的Swift开发者;
基于Swift的应用会更加丰富,有了开发者对Swift的普遍热情,以后也许会出来各种Swift的Web框架或其他什么有趣、有用的应用;
Windows平台虽然不在此列,而官方并不反对把Swift移至到其他平台,但需要有人做这件事。嗯,微软应该不会忽略Swift?总之,只要机会之门打开,一切皆有可能;
苹果的私房菜Cocoa并未开源,开源的是Swift编译器和标准库,要在非苹果官方平台开发iOS应用,暂时还不太可能;
Swift开源后的成功,特别是在不同平台上的成功,很大程度上取决于生态的建立、有多少框架/第三方库的支持。同时,也直接受Swift最终采用何种开源许可的影响。
总而言之,Swift开源是大大前进了一步。而超越Swift开源本身,当今编程语言的发展趋势也值得我们认真思考。如果从完全理性的角度看待编 程语言,那么编程语言无非就是一门编程语言:“选择好适合自己的编程语言就是了”。但问题就在于如何选择合适的编程语言呢?语言的魅力也许就像盲人摸象, 你无法做到足够理性,或者这世界就没有银弹,编程语言的比较和纷争,将是一个永恒的话题,热度无限......
文章转载自 开源中国社区 [http://www.oschina.net]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 调试器爆漏洞,可获取设备内存数据
本月中旬,谷歌推出了针对查找安卓系统漏洞的“安卓安全奖励”计划,发现一次漏洞最少可获500美元奖励。不过半月,真的有人发现了安卓系统漏洞。趋势科技(Trend Micro)近日发现了存在于Android调试器Debuggerd中的漏洞,该漏洞可以获取设备内存中的数据,包括Android 4.0 Ice Cream Sandwich(冰淇淋三明治)到Lollipop(棒棒糖)等系统均受到影响。 Debuggerd 是android的一个daemon进程,负责在进程异常出错时,将进程的运行时信息dump出来供分析。Debuggerd生成的coredump数据 是以文本形式呈现,被保存在 /data/tombstone/ 目录下,共可保存10个文件,当超过10个时,会覆盖重写最早生成的文件。从4.2版本开始,Debuggerd同时也是一个实用工具:可以在不中断进程 执行的情况下打印当前进程的native堆栈。这可以协助分析进程执行行为,但最最有用的地方是:它可以非常简单的定位到native进程中锁死或错误逻 辑引起的死循环的代码位置。 然而一个构造精巧的ELF(Executable and ...
- 下一篇
面对史上最严重漏洞,Google 对 Android 采取了新措施,但是……
几天前,网络安全机构 Zimperium 在 Android 系统上发现了一个 Stagefright 漏洞。它堪称 Android 史上最严重漏洞,波及了约 95% 的 Android 手机,从多年前的 Android 2.2 到最近的 Android 5.1 之间的各个系统版本都有可能中招。而它最严重的地方在于,黑客只需要知道你的手机号码,发一条彩信(都不用你去打开这条信息)就可以入侵你的手机,在远端 执行代码读取、控制你手机中的内容。 对黑客来说,这个漏洞执行方便、支持范围广、无需用户主动触发、隐蔽性强,实在是居家旅行杀人放火黑你手机的必备良方。 Google 当然不可能坐视不管。为了这个事情,他们今天宣布: 除了常规的平台升级之外,从本周开始,所有 Nexus 设备每个月都将收到 OTA 升级推送。首个安全更新在 8 月 5 日放出,将修复 Stagefright 问题。Nexus 设备们都会在上市后三年时间里或者在其于 Google Store 下架后一年半时间里持续收到安全更新。 听起来还不错是吗?怕就怕在这个时候来个“但是”——但是,只有Nexus 4, Nexus 5,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案