| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> (下)苹果有开源,但又怎样呢? -> 正文阅读 |
|
[移动开发](下)苹果有开源,但又怎样呢? |
一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上成功。(详情请戳:《(上)苹果有开源,但又怎样呢? 再后来,苹果攻坚浏览器,WebKit 成为幕后英雄。在这个时期,苹果开始涉入开源的深水区,不仅要与 WebKit 上游的开源社区 KDE 磨合,还要面临与竞争对手谷歌的开源合作。面对外界的压力和指责,苹果从 WebKit 的开源上,应该学到了不少。(详情请戳:《(中)苹果有开源,但又怎样呢? 随着开源软件对行业的渗透越来越深,即使是苹果,似乎也不得不作出成长和改变。这种在开源上的成长,苹果在 Swift 上表现得十分明显。有人说,开源改变世界,那么,开源会改变苹果吗? 下篇: Swift “统治世界” 是从开源开始的吗?除了 Jordan Hubbard,Chris Lattner 在业内,Chris Lattner 被冠以 “编译器大神” 的称号,因为他是?LLVM(Low Level Virtual Machine)的主要发起人与作者之一,同时还是?Clang 编译器的作者。 2000 年,苹果 Darwin 开源,初涉自主开源。同年的 Chris Lattner 刚从波特兰大学本科毕业,正准备去 UIUC(伊利诺伊大学厄巴纳香槟分校)攻读计算机硕士和博士。正是在 UIUC,Chris Lattner 开始使用一种用于优化编译器的创新基础架构,去设计和构建 LLVM,这也成为了他的博士学位论文的主题。 年轻时的 “小鲜肉” Chris Lattner 不同于 Jordan Hubbard,Chris Lattner 几乎是被苹果一手发掘和培养的。 2005 年,Chris Lattner 正值毕业,LLVM 仍然是一个高级研究项目。另一头,苹果也为了编译器焦头烂额。在 LLVM 之前,苹果的软件产品都依赖于整条 GCC 编译链(GNU Compiler Collection,就是自由软件运动发起人 RMS 捣鼓的那个)。 那时,苹果在 GCC 上投入大量资金,想要新增很多特性,但 GCC 开发者不怎么愿意专门为了苹果公司的要求优化和改进 GCC 代码;而且,到后期 GCC 的代码质量也变得难以保障了。 为了摆脱 GCC 的束缚,苹果开始寻找 “替代品”。而 Chris Lattner 的 LLVM 显然是个不错的选择。由此,苹果开始成为 LLVM 计划的主要资助者。2005 年,Chris Lattner 刚毕业,苹果就直接雇用了他及他的团队。
在苹果,Chris Lattner 又发起了 Clang 项目,并在多项指标上超过 GCC。如虎添翼的 LLVM 开始走向成熟。至此,Chris 在苹果可谓是如鱼得水,在编辑器上立下大功,后来直接坐上了苹果开发者工具部门主管的位子,领导 Xcode、Instruments 和编译器团队。? 除了 LLVM 和 Clang,Swift 是 Chris Lattner 所缔造的第三个伟大的项目。2015 年,Swift 官宣开源,迅速成为当下最炙手可热的编程语言之一。 这次,苹果的开源,似乎没有以前强势了。Chris Lattner 注重社区的力量,同时苹果也想要通过开源让更多的人来使用这门语言,傲慢和强势的态度没有益处。 PS:2017 年 1 月,Chris Lattner 离开了自己工作了 12 年的苹果,去过特斯拉、谷歌和 SiFive 等公司。2022 年 2 月,Chris Lattner?被曝 01 Swift 一诞生,就是冲着开源去的时间调回到 2010 年。那年的 WWDC(苹果全球开发者大会)上,苹果刚刚在 Clang 中推出了 C++ 支持。 为了让 Clang 支持 C++,Chris Lattner 和他的团队付出了巨大的努力,有点筋疲力尽。这不禁让他们开始思考
就是这样,Chris Lattner 没有声张,在和苹果软件团队负责人 Bertrand Serlet 聊了几次后,他们明确了建立一种新语言的想法。当时它的代号是?“Shiny”,“就好像你正在建造一个闪亮的新东西。” 2019 年?Chris Lattner?回忆 一旦确立想法,Chris Lattner 立马就开工了。从 2010 年夏天开始一直到第二年年末,他利用晚上和周末的时间,就那么吭哧吭哧地干着,没有告诉任何其他人,当他在伊利诺伊大学厄巴纳香槟分校的导师 Vikram Adve 知道后,都惊叹苹果的口风有多紧。
2011 年,Chris Lattner 将这门编程语言的骨架搭建完毕了,但显然仅靠他一个人是不够的。那年 4 月,他向公司管理层透露了自己的秘密,这个项目立马得到了重视,数名资深工程师加入了进来,团队不断扩大,甚至成为了苹果的主要关注对象。 很难说,苹果这种严密的保密文化是好是坏,苹果的确是受够了创意被偷走了(微软和谷歌都干过);但从开发者的角度来说,有点残酷,要知道当?Swift 已经成为苹果内部的主推项目时,开发者们还在苦学 Objetive-C。当 Swift 出世的那一刻,他们得多心碎。 2015 年 12 月,苹果兑现了 6 月在 WWDC 中的承诺,将新编程语言 Swift 开源,同时苹果还开源了两个项目:Swift 核心库项目和全新的 Swift 包管理器项目。这次,苹果采用的是?Apache 2.0,软件开发者将可以对这款新编程语言根据自己的需要进行修改。 在 Swift 之前,苹果不是没有语言。1988 年,乔布斯的 NeXT 公司获得了 Objective-C 的授权,并开发出了其语言库和 NEXTSTEP 的开发环境。此后,Objective-C 是苹果的当家语言,且随着 2007 年 iOS 移动设备的爆发,让这门 iOS 应用开发的主要语言获得了火箭一般的蹿升速度。 而 Swift 正是作为 Objective-C 的继任者的姿态出现的。2012~2013 年,苹果试图对 Objective-C 进行大规模的优化和升级改进,增加了各种现代语言的特性,让编写 App 更加容易,以吸引更多的程序员投入到了 App Store 的生态圈里。 这些努力都不如直接来上一款开源新语言有效。事后,Chris Lattner 表示,动手做 Swift 的原因有三:
更重要的一点是,Swift 是开源的,而且这次苹果的开源的确更开放了。 在 Chris Lattner 在职期间,苹果已经彻底开放了 Swift,不仅仅是开源而已,还构建了一整套社区开放合作的规范,Swift 语言的协议也是很宽松,社区十分活跃。这些动作,为 Swift 及生态圈打下了一个很好的可持续的基础。 首先,这得益于 Chris Lattner 对开源的态度:
其次,早期的社区反馈确实在塑造 Swift 1 和 2 上,功不可没。 Swift 1 的头一两年,很多事情都是由社区直接推动的。甚至多年后,Chris Lattner 仍将 Swift 的成长归功于社区的力量:“?Swift 现在很好的主要原因之一是有一大群人在写博客和反馈,当人们有抱怨时,就是推动进步的时候。” 再次,正是在开源的推动下,Swift 项目乃至苹果都对开源实践有了许多心得。 社区的建设,意味着 Swift 能从很多核心团队以外的地方收获。比如,Codable?协议的设计就来自于苹果的一个框架团队(他们甚至不在 Swift 团队中);Result?类型进入 Swift 5,也是因为社区力量推动的。这些巧妙的设计被证明是很有意义的。 除此之外,为了更好地和社区产生互动合作,苹果采取了强制一定数量的文档和流程的方法。多年来,Swift 一直在平衡社区力量上作出努力,比如,是否将设计权限分配给社区?还是分配给社区优先级能力?这些问题都很有挑战性。
在开源的推动下,Swift 有了出人意料的成长。 一开始,Chris Lattner 仅仅设想这门语言会在几年后在苹果内部圈子里产生影响,而苹果则认为这是一个更快速、更有效开发 iPhone、iPad 以及 Mac 电脑软件应用的工具。 2015 年 WWDC 大会上,苹果公司高级副总裁 Craig Federighi 表示,“我们认为未来 20 年 Swift 将成为编程的标准语言。我们认为它将成为未来主要的编程语言之一。” 同时,他也表示,如果想要给更多企业开发者开发自己的移动应用提供支持的话,最好的办法就是开源。
曾经有一句话很火 ——“Swift 统治世界”。这是 Chris Lattner 开玩笑说的,但渐渐地,无论是主创团队还是苹果其他人,都开始将 Swift 当成是未来世界的主流语言来看,在他们眼里,它将会超越 Python,甚至有一天取代 C。 在 Chris Lattner 的规划中,开源是重要的一环;然后,Swift 必须要有一个杀手级的产品;再然后,就要把 Swift 应用到服务器端;再接下来,Swift 要取代 Java。 02 开源多年,苹果也有委屈,大家过度揣测了吗?尽管 Swift 致力开放,且雄心勃勃;但始终难以摆脱苹果封闭的刻板印象。 大家始终觉得,?Swift 只是苹果自己搞出来的东西,是苹果自己的玩具,只能用在苹果自己的 iOS 系统和 macOS 系统上。对此,Swift 不断加大开源和构建社区的力度,希望 Swift 能更好地被接受,并在系统开发领域追上来。
情况究竟是怎样的呢?在 Swift 社区网站写着这样一段话:
在结构上,Swift 项目由一个核心工程师团队(7 人)管理,该团队通过与社区合作来推动战略方向。技术领导者来自贡献者社区,任何人都可以获得领导 Swift 领域的权利。 但是,Apple Inc. 是项目负责人并担任该项目的仲裁者。Ted Kremenek(Chris Lattner?离开社区后,钦点的继任者)是苹果的指定代表,并担任项目负责人的代言人。 这意味着,苹果并没有打算将 Swift 完全交给外部人员,苹果始终保持着领导权,外部开发者能参与进来,引导 Swift 的发展,为它的运作和功能作出贡献,并且他们的工作将会公开。 苹果的确在把握着主导权,但外界对此的揣测只会层层加码。这种刻板印象和怀疑论调,在 Chris Lattner 的离职风波中,得到了很好的体现。 2017?年,Chris?Lattner?离开了苹果,下一个东家是特斯拉。媒体从苹果之前多次发动的专利战争、被专利出庭困扰而辞职的前员工、特斯拉在专利上的开放态度等 “蛛丝马迹”?揣测 没过多久,2017 年 1 月 13 日,Chris Lattner 不得不站出来在?Twitter 上辟谣:
在开源上,Chris Lattner 力挺老东家。他表示,苹果其实有开源的传统,?LLVM 虽然不是始于苹果,但是最终是苹果完成并将其开源。Clang 则完完全全是生于斯开源于斯。还有其他工具,比如 LLDB、libc+ 以及 compiler-rt 都是如此。 但是,媒体和外界的看法是冷峻的。更多人认为,开源从来都是不是苹果的初衷,而是一场不得不顺势而为的改变。 第一,在过去的 15 年间,开发者已经显示了对开源工具和平台的偏爱。如果苹果继续让开发者适应自己的技术,远离第三方技术,是很有风险的。这会让苹果与开发者的关系变得疏远,苹果对外开放是迟早的事。 第二,最近几年,新编程语言层出不穷,谷歌的 Go 语言、Mozilla 的?Rust、Meta 的 Hack 和 D 语言等,都是开源的!他们之中甚至会有可能出现下一个软件开发的标准。 而且,2014 年,微软开源了 .NET 框架,这个框架被正式许可在包括 iOS 和 macOS 等的非 Windows 环境使用。(有意思的是,直到 2020 年 9 月,苹果才正式官宣将 Swift 引入 Windows,也不知道为啥动作那么慢。)面对这样的挑战,苹果没有选择,Swift 必须开源。 第三,多年来,苹果一直致力于完善自己的的闭环生态圈,Swift 的开源也与此脱不开干系。尤其是在移动互联不断深入以后,要想抢占先机,就必须要有强有力的技术支持和出色的用户体验。 如今,苹果自己的硬件设备市场占有率正在稳步提升,iOS、macOS、iPadOS 等系统则在不断完善。不少人认为,推出开源的 Swift 对于丰富应用体系、挖掘人才等方面有很好的促进作用,苹果下的这盘棋很大。 目前苹果主要的几个软件平台 03 结语:通过开源,苹果能实现自我超越吗?有句名言:开源吞噬世界。 我们能够看到,这个世界的确在被开源软件改变着,包括微软这样的专有软件大本营。2015 年,当微软拿出印有 “Microsoft Loves Linux” 字样的 T 恤和徽章时,也不知道有多少人被咖啡呛到了。 开源声势很大,苹果在开源界也难免一鼻子灰,比如,与 GCC 的合作。现在,苹果又不得不向开源靠拢。除了 Darwin、WebKit 和 Swift,苹果还有一些其他开源项目。但是,苹果每次开源,都会有异样的声音。 比如,2018 年苹果宣布开源一款增强型 NoSQL —— FoundationDB(是苹果在 2015 年的时候收购的开源公司开发的项目),就有人表示,商业巨头总是这样,自己不想维护了,就丢出来给社区维护,等社区维护好了,又闭源拿来卖钱。 除此之外,苹果还积极参加各种开放计划、开源基金会等,比如 Facebook (当时还叫这名)领军的开放计算项目(Open Compute Project, OCP)以及 Blender 基金会、开放媒体联盟等。 一路上,苹果不停招兵买马。这两年,苹果不断发布有关 RISC-V 开发者和开源项目工程师的招聘,想要从开源界吸收力量。 2011 年,乔布斯去世,苹果始终没能走出他的影响。在乔布斯的构建下,苹果对软硬件有强烈的控制欲,并发展出一种独特的闭源方式:封闭系统代码的同时,通过和第三方分享利益的方式来构建生态。 电影《史蒂夫?乔布斯》中,法鲨饰演的乔布斯刚刚复仇归来,面对昔日伙伴 Wozniak 的质问,他将所有的一切归罪于 “开放” 在 Tim Cook 的领导下,苹果的商业模式始终没有脱离软硬件一体化消费电子公司的范畴,依旧需要不断推出远远超过市场预期的新品来维持地位。 通过开源,苹果能超越自己一直以来的封闭模式吗? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 1:23:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |