苹果全球开发者大会今年的“大新闻”虽不如往年,但Swift开源的消息足以引起开发者的关注。苹果为什么开源Swift的分析铺天盖地,就不用多说了。在此,我想思考一下语言发展的趋势和随之而来的现象。苹果全球开发者大会总能掀起一股旋风。虽然今年的大会不如往届,但Swift将在今年晚些时候开源的消息也足以引起开发者的关注。其实我挺喜欢苹果的做事风格:“苹果做好自己的事情,给用户最酷的体验,它的实力就是我行我素的资本,用户也很容易接受这样的苹果。”不过,苹果距离Swift发布自己的平台、软件和硬件也才将近一年时间,这么快就开源了Swift?关于Apple为什么开源Swift的分析已经铺天盖地。毋庸置疑,我认为最重要的一点是,通过吸引更多的开发者使用Swift,获得更多的支持和创造力,能够给Apple带来更大的收益。商业利益。在此,我想思考一下语言发展的趋势和随之而来的现象。1.语言/工具的封闭模式已经过时。十多年前,软件公司仍然拥有封闭的资本。那时候VB和Delphi很好用。虽然盗版也很普遍,但仅仅通过销售这些工具就可以赚到很多钱。满碗。后来,德尔福几经挣扎还是倒下了。在《Borland传奇》,李伟将主要原因归结为管理层的接二连三失误。从历史轨迹来看,依靠封闭、单一的工具产品来支撑业务发展,交叉点必然会越来越窄。让我们来看看庞大的微软帝国。其产品和技术涵盖各个角落,但最终在2014年底宣布开源.NET开发框架。回顾Java20年的历史,JDK是开源的(你只需要打开src.zip就可以看到源代码),以开源免费的Eclipse和NetBeans为支撑,同时以“一次编写,处处运行”的口号吸引了无数开发者积极投入,构建了庞大的Java社区,至今仍占据主导地位当今世界。这就是开源的力量。过去十年,当然不得不提的是PHP、Python、Ruby等一大波开源动态语言的盛行。这些早已被业务证明是成熟稳定的解决方案。在Internet上,使用PHP、Django或RoR构建的网站比比皆是。看看TIOBE语言排行榜就知道开源编程语言有多受欢迎!随着互联网/移动互联网的发展,“免费”已经是经典的商业盈利模式,而现在互联网的盈利点越来越集中在云平台/云商租赁、各种增值服务、流量、订阅和广告。用户量越大,收益越明显。而且开发者支持的越多,创新就越多,产品也就越丰富。因此,我认为作为开发支撑基础的编程语言和工具的开源免费趋势将逐渐成为主流。毕竟用户资源和开发者资源是产品生存的生命线。但是为什么还有那么多产品没有开源呢?比如很多数据库产品不是开源的?其实开源是一种模式,商业也是一种模式。看看著名的《大教堂与集市》,就会有更多的感悟。君不见,开源的大数据和NoSQL解决方案已经对商业数据库产生了很大的影响,开源也是商业公司的一个选择,比如微软的开源.NET框架和苹果的开源Swift。商业公司的选择总是考虑最大利益,可能是短期的,也可能是长期的,但无论如何,不??要把商业公司当成开源的天敌,在正确的时间做出正确的选择,如果需要,开源也是可能的。要知道,微软和苹果其实都为开源做出了很多贡献!2.语言开发有时候还是很怀念十年二十年前的软件开发环境,好像只需要会C或者C++就可以了。但时过境迁,尤其是近年来,语言趋势呈现出许多新的特点。这些新特性的流行得益于2000年代的动态语言,比如前面提到的PHP、Python、Ruby。这些语言的日益流行也是由于互联网应用的兴起。PHP在建站方面占据了大半江山,Python在科学计算领域可以复用应对互联网数据量的爆炸式增长,RoR成就了众多创业公司的辉煌。当年被人嫌弃的小剧本,在网络时代找到了大显身手的好机会。现在连动态语言都不会,都不好意思说自己是程序员。还必须提一下JavaScript,这个当年几乎所有人都不愿意看到的丑小鸭,谁能想到它的地位在今天如此显赫呢?甚至像Node.js这样的高质量平台也得到了扩展。多少JavaScript开发者希望用它来实现心中的“全栈”梦想。同样,没有互联网,就没有JavaScript。我认为JavaScript在当代的价值不会输给十几年前的Java。动态语言的流行也让很多组织和个人意识到了它存在的价值——即开发效率得到了极大的提升。以前编程需要为1M甚至上百K的内存绞尽脑汁,使用各种Hack技术。但是,根据摩尔定律,硬件的发展速度是非常快的,所以开发者逐渐将注意力转向了开发效率。动态语言中广泛使用的filter、map、reduce等具有强烈函数式风格的高阶函数被认为是提高开发效率的有效手段。当然,Apple的Swift也大量使用了这些特性。对于当前编程语法发展过程中关注的几个点,我的理解是:不仅仅是面向对象,功能回归也在进行中。近十年来,Java和C#占据了主流,面向对象编程被赋予了至高无上的地位。但是现在大家越来越意识到,当面向对象编程达到一定的规模时,复杂性也随之而来。因此,旧的函数式风格又出现了,尤其是一些函数式的特性在动态语言中得到了很好的验证。现在,开发者已经没有了面向对象和函数式风格的印象,而是意识到它们可以相互补充,比如Scala。连Java都开始引入一些函数式的特性,更何况C#,更是领先了一步。更进一步,抛开风格之争,以应用为先,采用实用的编程模型,比如Golang和Rust。并发增强。随着多核和大数据时代的到来,现实对并发特性提出了新的要求。新兴的系统级语言如Scala、Clojure、Erlang、Go,以及新发布的Rust,都非常注重并发特性,并且各有各的解决方案。就连PHP、Python、Ruby等动态语言也在这方面不断尝试。同样,函数式语言中的不变性概念更能满足并发实现的实际需求。3、语言营销,语言魅力各种语言之间的比较和争论由来已久,至今仍历久弥新。这其实说明,语言的流行不仅受客观条件的影响,还受到一定的主观因素的影响。确切地说,这些主观因素中最重要的两个是:语言的官方组织或作者为进一步扩大语言影响而采取的宣传运动;球迷出于对语言的热爱而发出的赞美之词,反过来也宣泄了对手的不满。因此,语言中存在着“营销”的因素,或许这也算是各种编程语言的魅力之一吧。当然,在语言营销过程中,利益关系往往紧随其后。比如让我印象最深的一个语言营销例子就是每年推出的Java短片,里面可以看到各种恶搞的比喻语言,无形中让人对Java产生了兴趣。此外,目前流行的各种语言/技术会议,且不说参与价值如何,也是一种典型的语言/技术营销方式。在WWDC2015大会上发布了Swift开源的消息,可谓是一种成功的营销。再加上Swift的现代语言特性,Swift的开源战略可谓一炮而红,足以让粉丝们激动许久。一种语言如果有几位业内知名专家的支持,有强大的组织和平台,有一定的优质特性,有合适的营销策略,就很容易吸引很多粉丝。你我都是凡人,我们都有过冲动之后大喊“再买再买”的经历。可见,营销的影响几乎是无孔不入的。对于开发者对语言的追求,一是现实需要,二是自身利益,三是利益契合。靠一时冲动,迟早会迷失自我。如何在感性与理性的平衡中选择自己的语言方向?这很重要,但也许这是另一个话题。4.Swift开源带来了什么?从技术角度来看,Swift开源能给我们带来什么?我觉得主要有以下几个方面:除了苹果自己的平台,以后也可以用Swift在Linux上开发应用,吸纳更多Linux平台上的Swift开发者;基于Swift的应用会更加丰富,随着开发者对Swift的普遍热情,未来可能会出现各种Swiftweb框架或者其他有趣有用的应用;虽然Windows平台不在这个列表中,但官方并不反对将Swift迁移到其他平台,但需要有人来做这件事。那么,Microsoft不应该忽略Swift吗?总之,只要机遇之门敞开,一切皆有可能;苹果的私房菜Cocoa没有开源,但是Swift编译器和标准库是开源的。无法在非苹果官方平台开发iOS应用;Swift是开源的,最终能否成功,尤其是在不同的平台上,很大程度上取决于生态的建立,以及支持多少框架/第三方库。同时,也直接受到Swift最终采用哪种开源许可的影响。总而言之,Swift开源是向前迈出的一大步。除了Swift开源本身,当今编程语言的发展趋势也值得我们认真思考。如果从完全理性的角度来看待编程语言,那么编程语言无非就是一种编程语言:“选择适合自己的编程语言即可”。但问题是如何选择合适的编程语言?语言的魅力可能就像盲人摸象一样。你不够理性,或者这个世界上没有灵丹妙药。编程语言的比较与争论将是一个永恒的话题,而最火的...
