阅读更多

2顶
0踩

移动开发
在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的编程平台,这侵犯了知识产权。

将编程语言以及其他的一些开发技术开源之后,像苹果这样的公司能够保证开发人员合法使用技术。做开发已经够麻烦了,就不要用其它的事来打扰程序猿了。

本文由 雷锋网 翻译自 wired
来自: 雷锋网
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

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

    在2015苹果WWDC上,最受欢迎和关注的不是iOS 9和OS X,也不是新的Apple Music,而是苹果软件工程副总裁 Craig Federighi 宣布,苹果的编程语言 Swift 2.0 将会开源。 为 什么大家会如此激动?在过去的15年间,开发者...

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

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

  • (下)苹果有开源,但又怎样呢?

    有句名言:开源吞噬世界。我们能够看到,这个世界的确在被开源软件改变着,包括...现在,苹果又不得不向开源靠拢。除了 Darwin、WebKit 和 Swift,苹果还有一些其他开源项目。但是,苹果每次开源,都会有异样的声音。

  • Swift 开源带来的思考

    关于苹果为什么开源Swift的分析已是铺天盖地,就无需多言,在这里更想由此思考一下语言发展的趋势及伴随的现象。 苹果全球开发者大会总能掀起一股旋风,虽然今年大会的“猛料”不如往期,但Swift在今年晚些时候开源...

  • Swift 之父 Chris Lattner 访谈录(超长完整版)

    这样我们就不得不去花大量的时间去维护开源社区,而不是专心去做计划内的工作。 第二个原因是,尽管稳定的 ABI 很重要,但是对于开发者来说,稳定的 ABI 对他们来说没有明显的好处,他们更关心是语法和兼容上的...

  • 第三方库并不是必须的

    苹果和谷歌实施的任何政策都是如此,例如“你不得对用户追踪”。 减少风险 当对一个库(是否)进行使用评估时,我们首先要问几个问题,以了解对库的需求。 我们内部能做么? 有时候我们只需要简单的粘贴复制真正需要...

  • 历时五天用 SwiftUI 做了一款 APP,阿里工程师如何做的?

    作者|姜沂(倾寒)出品|阿里巴巴新零售淘系技术部导读:自 2014 年苹果发布会发布 Swift 之后, Swift 经过多年迭代,终于达到了 ABI 稳定版本,也意...

  • Android vs iOS 程序开发:我该选哪一个?

    仅是在2020年,据估计用户将大约87%的在线时间用于移动应用程序,也就是手机的App。 若要开始进入移动应用程序市场,我应该选哪一个呢? 总结概要 用于iOS开发的编程语言比Android语言的学习曲线短,更容易掌握...

  • iOS 九年,技术迭代迅捷下如何保持核心竞争力?

    Swift 的开源以及苹果在 WWDC 2016 上推广了Server-side Swift,使得用 Swift 一种语言来写前台 iOS App 和后台服务器成为现实。本次分享将围绕 Isomorphic Swift 展开,介绍和展望 Swift 的前台和后台开发功能, ...

  • 2014 I/O归来:Google连接一切

    2012年推出地图大失败,但苹果也不得不这么做,否则Google拥有的资源会越来越强。苹果现在最忌惮的就是Google。 Google 除了拥有搭载 Android 操作系统的终端之外,更重要的是拥有内容采集、分析及云计算能力,同时...

  • 飞歌G6IV刷机包,恢复出厂解决车机问题

    飞歌G6IV刷机包,恢复出厂解决车机问题

  • 人工智能大作业-无人机图像目标检测.zip

    无人机最强算法源码,易于部署和学习交流使用

  • node-v10.9.0-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • Telecord机器人,无electron依赖。.zip

    无人机最强源码,无人机算法,易于部署和学习交流使用

  • 中国统计NJ面板数据-(更新至2022年)林业有害生物防治情况.xls

    数据来源:中国统计NJ-2023版

  • 无人机共享平台小程序.zip

    无人机最强算法源码,易于部署和学习交流使用

  • node-v10.14.2-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • en-PP-OCRv3-det.onnx

    PP-OCR det

  • 毫无特色的 QQ 机器人.zip

    无人机最强算法源码,易于部署和学习交流使用

  • 麦肯锡 营销 概述与基本框架gl.ppt

    麦肯锡 营销 概述与基本框架gl.ppt

Global site tag (gtag.js) - Google Analytics