HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Swift 和其他语言的开源故事

  • 2015-06-15
  • 本文字数:2199 字

    阅读完需:约 7 分钟

首先我要认个错,其实严格来说,编程语言是不存在开源一说的,语言是一种规范,是一个标准,任何人都可以实现这种规范,我们通常说的开源语言,其实指的是它的官方基础类库、开发工具、编译器、解释器、运行时环境等等,所以咱就不深究措辞了哈。

最近苹果的 WWDC 大会上爆出的一条消息让我被强制刷屏,感受到了“视觉疲劳”——Swift 2.0 开源,据说当时现场响起了最热烈的掌声。“最”这个字用地很好很微妙,也从某种程度上反映出开发者们在苹果长期以来相对封闭的生态圈里看到了一丝开放的苗头。索性咱们就聊聊几个语言的开源故事。

Swift

先说说风口上的飞猪——Swift,刚刚一周岁的小家伙,由于出身苹果的正统名门,一出生就受到了移动开发者的强烈关注,学习的人很多,实践的例子也有,但是由于 Object-C 多年积累的成熟生态圈的固守,所以生产环境中的应用比例一直不是很高(之前看过一个报告,貌似在 10-20% 左右)。这一年苹果为了推广 Swift 也是拼了,各种优先规则都用上了,开源也是最新的大招。为啥,简单解释下:

  • 开源本身就是一种营销策略。铺天盖地的新闻报道已经是明证,特别是对于苹果这样的企业来说,一点广告费不用花,Swift 已经名声在外了。
  • 开源表明一种开放的态度,有利于吸引开发社区的参与。现在不玩开源的企业都已经 out 了,技术选型的重要标准之一就是是否开源。所以 Swift 的开源让开发者特别是苹果生态圈的其他公司更加放心,虽然我打赌没有多少开发者或者公司会去查阅哪怕一行 Swift 源代码,但是放在那里看着也安心,对吧。
  • 开源有利于生态圈的快速发展。没开源之前,Swift 的各种工具基本都依赖于苹果原创,但是开源之后,社区就可以提供各种开发工具,生态系统可以快速构建起来。

总之,苹果的目的就是让更多的开发者赶紧用 Swift,麻溜的,让你没有不用的理由,就是这么任性,而且还支持 Linux,目的是“成为主流开发语言”,好大的一盘棋,从开源起步~

Rust、Go

插一句,出身真的很重要(如果不是最重要的话),前几天和朋友聊起 Rust 语言的发展现状,是又爱又恨,挺好的一语言,发展的太慢。我们都感叹:唉,出身差了些,如果把后面的金主从 Mozilla 换成 Google,那肯定是另外一番景象了。

说到 Google,它推出的几门语言都是开源的,其中包括著名的 Go 语言,其实对于天生带有互联网基因的公司来说,开源语言是一个非常自然的决定,不需要太多的业务分析,所以也就没有太多的故事可以展开说。

Python、Ruby

除此之外,还有哪些开源的语言是自然之举?想一下(请思考 10 秒钟)。

时间到,还有那些由“个人发明”而不是“公司行为”的编程语言,比如 Python、Ruby,它们均来自于极客们的自我创造,没有过多的商业利益,也就没有束缚,所以开放给社区是自然而然的选择,事实上,这些语言的生命力也非常顽强,在自己的一亩三分地里耕耘地很不错,也体现了开源的强大力量。

Java

说到底,那些“诞生于公司”而后又开源的编程语言的故事更八卦一些。这里面主要就是两家,Java 和.NET(抱歉,我把.NET 家族算作一门泛语言了)。

刚刚过完 20 岁生日的 Java 算是命运多桀。诞生于 1995 年的它赶上了互联网发展的第一波潮流,快速成长为最主流的编程语言之一,并长期保持着大佬地位。可惜,背后的大树 Sun 公司也有日薄西山的时候(说到这里我忍不住插一句,江湖上传言 Sun 对自己的员工太好了,做技术做的太好了,以至于忽视了公司是需要盈利的,唉,做技术做到这份上也真谢谢它了),后来被财大气粗的 Oracle 收购。

收购是发生在 2009 年,不过 Java 在 2007 年的时候就开源了。从时间来看,开源应该是个无奈的选择,当时的 Sun 已经日渐式微,虽然贵为 Java 的领导者,但是始终没有在 Java 身上找到很好的商业模式,说白了,就是不知道如何更好地从 Java 身上赚钱。有读者会问了,做语言哪有图赚钱的?没错,做语言本身可以不赚钱(除了卖企业授权和衍生品之外),但是作为企业生态系统的一部分,一定要在商业模型中体现其价值。

Sun 的问题在于,没有想清楚 Java 的定位和价值,反而成了负担。开源 Java 的目的一方面是减轻自身的负担,另一方面也是为了增强 Java 语言的地位。可以说,Android 系统给了 Java 第二春,在移动开发领域也占据了半壁江上。Oracle 对待 Java 的方式和 Sun 完全不一样,以社区来推动 Java 的发展,自己承担的职责(成本)减少很多。同时,又利用 Java 相关的一些专利牵制了部分对手。所以 Oracle 是想的比较明白的。

就以今年的 20 周年庆祝活动为例,有熟悉的朋友告诉我,Java10 周年(当时 Sun 主办)的庆祝活动在国内当时是全民狂欢的级别,烧钱很多,而今年的 20 周年活动缩水很多,不可同日而语。或许,这就是两者最根本的区别吧。

.NET

说完 Java,当然也要说说它的老冤家对头.NET 了,微软这些年虽然有些坎坷,被互联网巨头冲击不小,但依然是 IT 巨无霸之一,最近又提出了移动和云优先战略,对开源技术也持开放的心态,逐渐把.NET 家族的上上下下开源出来,对社区的震撼不亚于苹果开源 Swift。有关.NET 开源的故事,我在另外一篇文章《.NET 开源,且行且珍惜》中已经做了详细的介绍,这里就不重复了,感兴趣的读者可以回复“.NET 开源”查看。

一句话总结

开源的势头势不可挡了,逆着激流会被吞没,不如顺着激流同化为激流。

作者的微信公众号“技术风向标”,关注 IT 趋势,承载前沿、深入、有温度的内容。感兴趣的读者可以搜索 ID:jishuqushi,或者扫描下方二维码加关注。

2015-06-15 08:441654
用户头像

发布了 501 篇内容, 共 255.9 次阅读, 收获喜欢 60 次。

关注

评论

发布
暂无评论
发现更多内容

程序员必备基础:Git 命令全方位学习

Java 程序员 后端

程序员的黄金五年,如何做到从月薪8K达到38K?

Java 程序员 后端

程序员缺乏经验的 7 种表现

Java 程序员 后端

程序流程控制(1)

Java 程序员 后端

站在巨人的肩膀上学习:五位阿里大牛联手撰写的《深入浅出Java多线程》

Java 程序员 后端

社招和校招有什么不同?阿里美团等大厂JAVA社招面经分享!

Java 程序员 后端

程序员欣宸文章汇总(Spring篇)

Java 程序员 后端

简单的词法分析器

Java 程序员 后端

第六章(1(1)

Java 程序员 后端

第六章(1

Java 程序员 后端

策略模式---动态更改算法

Java 程序员 后端

知道这些面试技巧,让你的测试求职少走弯路

Java 程序员 后端

程序流程控制

Java 程序员 后端

第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

Java 程序员 后端

程序员如何提高影响力

Java 程序员 后端

窥探Tomcat整体架构,server

Java 程序员 后端

站在筛选简历和面试流程角度,给培训班出身Java程序员一些建议!

Java 程序员 后端

硬核!SpringBoot连接MySQL数据库,十分钟啃透

Java 程序员 后端

硬核,这 3 款 IDE 插件让你的代码牢不可破

Java 程序员 后端

程序员如何利用技术变现?

Java 程序员 后端

程序人生:做了6年Java开发,海投28家简历被拒,该何去何从?

Java 程序员 后端

程序员欣宸文章汇总(Java篇)

Java 程序员 后端

程序员膨胀了?年薪100万,腾讯程序员跟南航飞行员差不多?

Java 程序员 后端

程序员面试防坑宝典,助你秋招一臂之力(建议收藏,文末有彩蛋)

Java 程序员 后端

程序员,你以为你很优秀,但却面试屡屡失败?

Java 程序员 后端

硬核,学习 Java 的一点小建议(思维导图,建议收藏)

Java 程序员 后端

秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

Java 程序员 后端

程序员必须掌握的600个英语单词

Java 程序员 后端

神了!对标阿里P8的JVM超硬核神仙笔记,了解至少定级P6+

Java 程序员 后端

程序员你了解零拷贝吗?

Java 程序员 后端

程序员必备的思维能力:结构化思维

Java 程序员 后端

Swift和其他语言的开源故事_Java_崔康_InfoQ精选文章