AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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:441863
用户头像

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

关注

评论

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

在RPA立项阶段,银行需要做哪三件事?

易观分析

银行

Apipost 多人多角色实时协作 爆赞!!!

Xd

数据库 后端 接口测试 API

未来3年,远程办公或成普遍现象,如何提高远程办公效率?

BeeWorks

照亮旷野的,是少年开发者眼中的炬火

脑极体

TiDBv6.0与TiDBv5.1.2 TiKV 节点重启后 leader 平衡加速,提升业务恢复速度对比测试

TiDB 社区干货传送门

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

okokabcd

LeetCode 查找

在线HTML转PHP工具

入门小站

工具

乌卡时代来临,企业供应链管理体系的应对策略

数商云

数字化转型 供应链

【云管理】企业多元化私有云设施管理用什么软件好?

行云管家

云计算 私有云 IT运维 云管理

两分钟带你体验ApiPost的魅力!

Xd

自动化 接口测试 API

他做了跟世界首富同样的选择|ONES 人物

万事ONES

EAM与ERP有什么区别?

低代码小观

资产管理 企业管理系统 ERP CRM系统 ERP系统

Apipost 6.0.4版本 支持离线使用

Xd

后端 接口测试 API

linux之xargs使用技巧

入门小站

Linux

分享ApiPost的个人体验感受

Xd

后端 API

等保测评师是做什么的?工资怎么样?

行云管家

网络安全 IT运维 等保测评 等保测评师

网络空间测绘国内外发展及现状

郑州埃文科技

网络安全 IP地址 网络空间测绘技术

月薪 30K 以上的程序员都在学啥?附书单合集

C++后台开发

后端开发 Linux服务器开发 C++后台开发 Linux后台开发 后端开发书籍

NVIDIA安培架构下MIG技术分析

天翼云开发者社区

PolarDB-X迎来开源后首个重大版本升级,2.1版本新增5大特色功能

阿里云数据库开源

数据库 阿里云 开源 国产数据库 PolarDB-X

王者荣耀商城异地多活架构设计

哈喽

「架构实战营」

如何挑选文档管理软件?

小炮

文档管理

在线二进制转文本字符工具

入门小站

工具

uniapp 和 HTML5 区别

CRMEB

一个关于SDWAN单臂部署方案验证的实验

天翼云开发者社区

网络

喜讯|旺链科技成为TBI数字藏品项目组首批成员

旺链科技

区块链 产业区块链 数字藏品

用开源github,还是咱中国自己的代码托管平台云效?

阿里云云效

GitHub 云计算 阿里云 代码管理 代码托管

你会用Apifox写断言吗?

Liam

测试 Postman 自动化测试 测试工具 测试自动化

LinkedHashMap 源码分析-访问最少删除策略

zarmnosaj

5月月更

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