写点什么

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

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

关注

评论

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

Java 构造函数与修饰符详解:初始化对象与控制权限

小万哥

Java 程序人生 编程语言 软件工程 后端开发

喜报!博睿数据荣获中信银行2023年度优秀服务伙伴奖

博睿数据

大模型+影像:智能手机“上春山”

脑极体

AI

代码+案例,实战解析BeautifulSoup4

华为云开发者联盟

html 爬虫 开发 华为云 华为云开发者联盟

【自己实现Sora客户端】颠覆级的王炸般的文生视频工具——Sora

派大星

已解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa1 in position 0: invalid start byte异常的正确解决

小明Java问道之路

万字干货-京东零售数据资产能力升级与实践

京东零售技术

大数据 数据资产

掌握Python编程与ChatGPT的强强联手:开启人工智能助手新时代

快乐非自愿限量之名

Python 人工智能 编程开发 ChatGPT

全新市场周期推动 LaunchPad 迎新起点, Penpad 成新兴生力军

西柚子

链接Web3和公链的中间件Smart Layer (SLN)是什么

币离海

strk SLN pixel Smart Layer

这份攻略帮助你分分钟构建出“幻兽帕鲁游戏”极致体验

极狐GitLab

OpenLDAP 接入 NineData SSO

NineData

SSO openldap 单点登录 NineData phpLDAPadmin

SDWAN组网基于软件,部署灵活且周期短

Geek一起出海

已解决error: legacy-install-failure异常的正确解决方法,亲测有效!!!

小明Java问道之路

新型储能|储能电站|2024山西国际储能产业展会

秋硕展览

中国大型企业数字化升级路径研究

快乐非自愿限量之名

4家券商综合评级上升,1月券商App终端业务体验评测报告发布

博睿数据

龙年大吉,新的一年开启你的职业飞跃之旅

亚马逊云科技 (Amazon Web Services)

架构师 亚马逊云科技 培训与认证

分布式存储技术:总结2023,展望2024

黄岩

分布式存储 zstorage 全闪分布式

文心一言 VS 讯飞星火 VS chatgpt (199)-- 算法导论15.2 1题

福大大架构师每日一题

福大大架构师每日一题

2024年中国(北京)国际智能锁产品展会

秋硕展览

2024太阳能产品展|2024山西国际供热采暖展会

秋硕展览

跃迁:从普通到卓越的成长路径

老张

个人成长

博睿数据率先发布HarmonyOS NEXT系统的应用异常观测SDK

博睿数据

80% 的学校还在给新生上 C 语言,是它们 OUT 了吗?

算法的秘密

代码人生

一款高输出电流 PWM 转换器

芯动大师

2024年工业展|2024越南国际工业技术装备展会

秋硕展览

京东app商品详情数据接口

tbapi

京东 京东商品详情接口 京东API 京东APP商品详情接口

AP引擎助力加速生产SQL运行

GreatSQL

数据库 ap greatsql

《数字化运维路线图》第四部分-数字化运维转型场景 震撼发布!

博睿数据

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