即使是封闭的苹果,也不得不开源了 Swift

简介:

在2015苹果WWDC上,最受欢迎和关注的不是iOS 9和OS X,也不是新的Apple Music,而是苹果软件工程副总裁 Craig Federighi 宣布,苹果的编程语言 Swift 2.0 将会开源。

为 什么大家会如此激动?在过去的15年间,开发者已经显示了对开源工具和平台的偏爱,然而苹果一直让开发者适应自己的技术,远离第三方技术。苹果这样做有一 定风险,有可能会与开发人员关系疏远,也正是这些开发人员一直在开发第三方应用或者服务。程序员想自由选择自己想要的工作方式 ,要留住他们,苹果不得不对外开放。

Swift发展非常迅猛,但近几年很多新出现的其他的编程语言都较着劲,想吸引开发者的注意。Facebook在使用Hack和D语言;Google开源了它的Go语言;Mozilla也推出自己的第一版编程语言Rust。这些编程语言都各有优劣,其中会有一种或者几种会成为下一个软件开发的标准,并且每种编程语言都已经开源。

重 要的是,去年微软决定开源它.NET框架。微软允许所有的开发人员有Windows以外的系统中使用自己的语言,包括OS X以及iOS ,并且还提供了代码,使得开发人员更便于根据自己的需要对 .NET进行修改或者延展。苹果面临这样一个事实,开发者将用微软的工具来为开发苹果产品,因 此它只能开源Swift。

苹果的目的

苹果在去年的WWDC上推出了Swift 1.0,替代Objective C。Objective C的历史可追溯到1983年,一直是开发iOS应用的主要语言。Swift是一种更加现代化的语言,增加许多新的特性,既可以帮助新程序员学会编码,也能 使有经验的程序员避免出现一些严重的错误。

尽管苹果已经不是第一次开源。苹果开源过Darwin(它是OS X的基础)和WebKit(Safari 浏览器的基础),但是苹果不会开源Objective C。理论上似乎可以将Objective C应用于其它操作系统,但如果没有苹果的帮助,跨平台代码很难。

Xamarin 公司开发的工具,能让开发者用微软的编程语言,开发运行在Windows,Linux,iOS和Android上的软件。这就意味着开发者不需要用 Java为Android开发,再用Objective C为iOS开发。他们甚至可以使用同样的代码,作为桌面或者服务器端应用的基础。

尽管大多 iOS 和 OS X 开发人员仍然在使用Objective C 或者Swift,苹果可以通过使得Swift用于其它操作系统,阻击微软。最终的结果可能是,苹果的语言用于为其竞争对手开发应用。

开源到底要多开放?

在一份声明中,苹果写道开源会包括Swift系统的核心部分,包括编译器和标准库,但在开源的程度上细节还不是特别清楚。

苹果很可能会保留关键产权,就像当初的Java那样。苹果也可能最终收回Swift的开源,就像当初苹果一度承诺将FaceTime作为一个视频通信的公开标准一样。不管怎么说,这对于作为苹果的Swift而言都是一个巨大的转变。

苹果本身也在协助将Swift应用于Linux中,并且能够接触到苹果用于开发软件的代码,其他公司也将能够支持Swift。然而,苹果却没有提到要开源Cocoa界面,这也是大多数iOS 和OS X应用的一个核心部分。

不管怎么说,Swift的开源至少给开发人员吃了一颗定心丸,保证他们不会陷入诉讼当中,就像当初Google与Oracle关于Java上漫长的版权之争一样。Oracle声称Google为Android开发了一个类似于Java的编程平台,这侵犯了知识产权。

将编程语言以及其他的一些开发技术开源之后,像苹果这样的公司能够保证开发人员合法使用技术。做开发已经够麻烦了,就不要用其它的事来打扰程序猿了。
文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
717 3
|
机器学习/深度学习 人工智能 移动开发
Swift语言作为苹果公司推出的现代编程语言
Swift语言作为苹果公司推出的现代编程语言
238 8
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
365 2
|
Swift iOS开发 Kotlin
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
209 7
|
调度 Swift Android开发
苹果iOS新手开发之Swift中的并发任务和消息机制
Swift的消息机制类似Android的Handler,实现任务调度有三种方式: 1. **Grand Central Dispatch (GCD)**:使用`DispatchQueue`在主线程或后台线程执行任务。 2. **OperationQueue**:提供高级接口管理`Operation`对象。 3. **RunLoop**:处理事件如输入源、计时器,类似Android的`Looper`和`Handler`。 **示例**: - GCD:在不同线程执行代码块。 - OperationQueue:创建操作并执行。 - RunLoop:用Timer添加到RunLoop中。
268 2
|
安全 编译器 Swift
苹果重磅发布Swift 6:在 Swift 6 中如何实现并发开发?相比Swift 5.5 有哪些重磅升级?
Swift 6 强化了并发编程,引入结构化并发、任务、执行器、隔离、同步原语、类型化错误处理和取消超时功能。对比Swift 5.5,它默认启用全面并发检查,改进错误处理,增加了隔离区域、类型化抛出、包迭代等新特性,优化了性能并更新了库。
409 2
|
SQL 前端开发 JavaScript
2021最受欢迎的编程语言排行:苹果编程语言Objective-C被Swift取代
苹果公司的Objective-C最终退出了Tiobe跟踪的流行编程语言的前20名,但是「恐龙」语言却获得了意想不到的推动,Swift语言取代Objective-C的时代要来了。
562 0
2021最受欢迎的编程语言排行:苹果编程语言Objective-C被Swift取代
|
设计模式 算法 编译器
Apple 正式开源 Swift 语言及其核心库和包管理器
Swift 语言自去年发布以来,就成为了历史上发展最快的编程语言之一。本周四,Swift 团队宣布 Swift 编程语言正式开源,一同开源的还有 Swift 核心库及包管理器。
374 0
Apple 正式开源 Swift 语言及其核心库和包管理器
|
人工智能 安全 编译器
Swift5.5、DocC、Notifications,苹果WWDC21带来的最大技术变化
WWDC (苹果开发者大会) 2021已经落下帷幕,今年的WWDC 提供了 200 多个深度课程,以帮助开发者了解WWDC2021 引入的新技术,本文会帮国内开发者梳理部分WWDC 2021带来的技术上的变化。
Swift5.5、DocC、Notifications,苹果WWDC21带来的最大技术变化

相关课程

更多