阅读更多

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 操作系统的终端之外,更重要的是拥有内容采集、分析及云计算能力,同时...

  • spring-ai-spring-boot-autoconfigure-1.0.0-M5.jar中文文档.zip

    # 【spring-ai-spring-boot-autoconfigure-***.jar中文文档.zip】 中包含: 中文文档:【spring-ai-spring-boot-autoconfigure-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【spring-ai-spring-boot-autoconfigure-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-spring-boot-autoconfigure-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-spring-boot-autoconfigure-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-spring-boot-autoconfigure-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-spring-boot-autoconfigure-***.jar中文文档.zip,java,spring-ai-spring-boot-autoconfigure-***.jar,org.springframework.ai,spring-ai-spring-boot-autoconfigure,***,org.springframework.ai.autoconfigure.anthropic,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,springframework,spring,ai,boot,autoconfigure,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【spring-ai-spring-boot-autoconfigure-***.jar中文文档.zip】,再解压其中的 【spring-ai-spring-boot-autoconfigure-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-spring-boot-autoconfigure</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'org.springframework.ai', name: 'spring-ai-spring-boot-autoconfigure', version: '***' Gradle (Short): implementation 'org.springframework.ai:spring-ai-spring-boot-autoconfigure:***' Gradle (Kotlin): implementation("org.springframework.ai:spring-ai-spring-boot-autoconfigure:***") ``` # 含有的 Java package(包): ``` org.springframework.ai.autoconfigure.anthropic org.springframework.ai.autoconfigure.azure.openai org.springframework.ai.autoconfigure.bedrock org.springframework.ai.autoconfigure.bedrock.anthropic org.springframework.ai.autoconfigure.bedrock.anthropic3

  • 50页-道路环卫保洁服务项目管理计划方案.pdf

    在当今智慧城市的建设浪潮中,智慧环卫作为城市管理的重要组成部分,正以其独特的魅力引领着环卫行业的变革。本方案旨在通过一系列高科技手段,如物联网、大数据、云计算等,全面提升环卫作业效率与管理水平,为城市居民创造更加清洁、宜居的生活环境。 一、智慧环卫系统概述与核心亮点 智慧环卫系统是一个集机械化保洁、垃圾清运、设施管理、事件指挥调度等多功能于一体的综合性管理平台。其核心亮点在于通过高精度定位、实时监控与智能分析,实现环卫作业的精细化管理。例如,机械化保洁管理子系统能够实时监控机扫车、洒水车等作业车辆的运行状态,自动规划最优作业路线,并根据作业完成情况生成考核评价报表,极大地提高了作业效率与服务质量。同时,垃圾清运管理子系统则通过安装GPS定位设备和油量传感器,对清运车辆进行全方位监控,确保垃圾清运过程的规范与高效,有效解决了城市垃圾堆积与随意倾倒的问题。此外,系统还配备了垃圾箱满溢报警系统,通过智能感应技术,当垃圾箱内垃圾达到预设高度时自动报警,提醒作业人员及时清运,避免了因垃圾满溢而引发的居民投诉与环境污染。 二、智慧环卫系统的趣味性与知识性融合 智慧环卫系统不仅实用性强,还蕴含着丰富的趣味性与知识性。以餐厨垃圾收运管理子系统为例,该系统通过为餐厨垃圾收运车辆安装GPS定位、车载称重、视频监控等多种感知设备,实现了对餐厨垃圾收运过程的全程监控与智能管理。作业人员可以通过手机APP实时查看车辆位置、行驶轨迹及收运情况,仿佛在玩一场现实版的“垃圾追踪游戏”。同时,系统还能自动生成餐厨垃圾收运统计报表,帮助管理人员轻松掌握收运量、违规情况等关键数据,让数据管理变得既科学又有趣。此外,中转站视频监控子系统更是将趣味性与实用性完美结合,通过高清摄像头与双向语音对讲功能,实现了对中转站内外环境的实时监控与远程指挥,让管理人员足不出户就能掌控全局,仿佛拥有了一双“千里眼”和一对“顺风耳”。 三、智慧环卫系统的未来展望与社会价值 随着科技的不断进步与智慧城市建设的深入推进,智慧环卫系统将迎来更加广阔的发展前景。未来,智慧环卫系统将更加注重数据的深度挖掘与分析,通过大数据与人工智能技术,为城市环卫管理提供更加精准、高效的决策支持。同时,系统还将加强与其他城市管理系统的互联互通,实现资源共享与协同作战,共同推动城市管理的智能化、精细化水平。从社会价值来看,智慧环卫系统的推广与应用将有效提升城市环境卫生质量,改善居民生活环境,提升城市形象与竞争力。此外,系统还能通过优化作业流程、减少资源浪费等方式,为城市可持续发展贡献重要力量。可以说,智慧环卫系统不仅是城市管理的得力助手,更是推动社会进步与文明发展的重要力量。

  • 微信小程序驾校管理平台约车小程序demo完整源码下载-完整源码.zip

    微信小程序驾校管理平台约车小程序demo完整源码下载_完整源码

  • MATLAB实现含风电不确定性的电力系统低碳调度模型

    内容概要:本文详细介绍了使用MATLAB和YALMIP工具包构建的电力系统低碳调度模型。该模型主要解决风电和负荷不确定性带来的挑战,采用模糊机会约束处理风电预测误差,将复杂的非线性约束转化为混合整数线性规划问题。文中展示了如何通过分段线性化、大M法等技巧提高求解效率,并实现了包括火电、水电、风电、储能等多种能源类型的综合调度。此外,还讨论了碳排放成本、启停时间约束、爬坡率约束以及储能系统的建模方法。最终,通过结果可视化展示各成本构成及其对调度策略的影响。 适合人群:从事电力系统优化研究的专业人士,尤其是熟悉MATLAB编程并希望深入了解低碳调度模型的研究人员和技术人员。 使用场景及目标:适用于需要处理风电不确定性、优化电力系统调度的研究项目。目标是降低电力生产成本的同时减少碳排放,确保电力系统的稳定性和经济性。 其他说明:代码中包含了详细的注释和扩展提示,方便进一步修改与应用。对于大规模电力系统调度问题,提供了高效的求解策略和性能优化建议。

  • OFDM、OOK、PPM、QAM 的误码率模拟【绘制不同调制方案的误码率曲线】附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

  • my lib1.SCHLIB

    my lib1.SCHLIB

  • 工控领域西门子PLC动态加密计时催款程序:设备催款与规范验收的技术实现

    内容概要:本文详细介绍了西门子PLC动态加密计时催款程序的设计与实现。该程序旨在解决工控领域中常见的客户拖延付款问题。通过利用PLC的定时器功能和复杂的加密算法,程序能够在设备运行一段时间后自动触发锁机机制,提醒客户按时验收付款。主要内容包括加密计时的核心思路、代码示例与分析、动态加密的具体实现方法以及柔性锁机的应用技巧。此外,文中还提供了具体的SCL代码片段,展示了如何通过时间校验、动态密钥生成和渐进式降速等方式实现灵活的锁机控制。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是负责PLC编程和设备管理的专业人士。 使用场景及目标:适用于设备调试完成后客户拖延付款或拒绝验收的场景。主要目标是通过技术手段保障供应商的合法权益,促进客户按时履约,减少因款项延迟带来的经济损失。 其他说明:文中强调了技术催款并非为了惩罚客户,而是为了建立良好的契约精神。同时,作者分享了一些实用的经验和技巧,如设置合理的调试接口、时间缓冲期和操作提示,确保程序既有效又人性化。

  • 75页-智慧环卫平台解决方案(2022).pdf

    在当今智慧城市的建设浪潮中,智慧环卫作为城市管理的重要组成部分,正以其独特的魅力引领着环卫行业的变革。本方案旨在通过一系列高科技手段,如物联网、大数据、云计算等,全面提升环卫作业效率与管理水平,为城市居民创造更加清洁、宜居的生活环境。 一、智慧环卫系统概述与核心亮点 智慧环卫系统是一个集机械化保洁、垃圾清运、设施管理、事件指挥调度等多功能于一体的综合性管理平台。其核心亮点在于通过高精度定位、实时监控与智能分析,实现环卫作业的精细化管理。例如,机械化保洁管理子系统能够实时监控机扫车、洒水车等作业车辆的运行状态,自动规划最优作业路线,并根据作业完成情况生成考核评价报表,极大地提高了作业效率与服务质量。同时,垃圾清运管理子系统则通过安装GPS定位设备和油量传感器,对清运车辆进行全方位监控,确保垃圾清运过程的规范与高效,有效解决了城市垃圾堆积与随意倾倒的问题。此外,系统还配备了垃圾箱满溢报警系统,通过智能感应技术,当垃圾箱内垃圾达到预设高度时自动报警,提醒作业人员及时清运,避免了因垃圾满溢而引发的居民投诉与环境污染。 二、智慧环卫系统的趣味性与知识性融合 智慧环卫系统不仅实用性强,还蕴含着丰富的趣味性与知识性。以餐厨垃圾收运管理子系统为例,该系统通过为餐厨垃圾收运车辆安装GPS定位、车载称重、视频监控等多种感知设备,实现了对餐厨垃圾收运过程的全程监控与智能管理。作业人员可以通过手机APP实时查看车辆位置、行驶轨迹及收运情况,仿佛在玩一场现实版的“垃圾追踪游戏”。同时,系统还能自动生成餐厨垃圾收运统计报表,帮助管理人员轻松掌握收运量、违规情况等关键数据,让数据管理变得既科学又有趣。此外,中转站视频监控子系统更是将趣味性与实用性完美结合,通过高清摄像头与双向语音对讲功能,实现了对中转站内外环境的实时监控与远程指挥,让管理人员足不出户就能掌控全局,仿佛拥有了一双“千里眼”和一对“顺风耳”。 三、智慧环卫系统的未来展望与社会价值 随着科技的不断进步与智慧城市建设的深入推进,智慧环卫系统将迎来更加广阔的发展前景。未来,智慧环卫系统将更加注重数据的深度挖掘与分析,通过大数据与人工智能技术,为城市环卫管理提供更加精准、高效的决策支持。同时,系统还将加强与其他城市管理系统的互联互通,实现资源共享与协同作战,共同推动城市管理的智能化、精细化水平。从社会价值来看,智慧环卫系统的推广与应用将有效提升城市环境卫生质量,改善居民生活环境,提升城市形象与竞争力。此外,系统还能通过优化作业流程、减少资源浪费等方式,为城市可持续发展贡献重要力量。可以说,智慧环卫系统不仅是城市管理的得力助手,更是推动社会进步与文明发展的重要力量。

  • spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar中文-英文对照文档.zip

    # 【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar中文-英文对照文档.zip】 中包含: 中文-英文对照文档:【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar中文-英文对照文档.zip,java,spring-ai-autoconfigure-vector-store-mongodb-atlas-1.0.0-M7.jar,org.springframework.ai,spring-ai-auto

  • MATLAB多目标粒子群算法优化冷热电联供系统运行成本与能效

    内容概要:本文介绍了利用MATLAB实现多目标粒子群算法(MOPSO),用于优化冷热电联供(CCHP)系统的运行。文中详细描述了系统架构,包括燃气轮机、电制冷机、锅炉以及风光机组等设备的协同工作。通过引入多目标优化,同时追求最低运行成本和最高综合能效。算法实现了自适应惯性权重调整、动态边界处理、非支配排序等关键技术,显著提升了优化性能。实验结果显示,相比传统方案,该方法能够节省15%以上的运营成本,并提高系统能效23.7%,减少碳排放18.2%。 适用人群:从事能源管理、电力系统优化的研究人员和技术人员,尤其是对MATLAB编程有一定基础的人士。 使用场景及目标:适用于需要进行冷热电联供系统优化的企业或研究机构,旨在寻找成本与能效之间的最佳平衡点,提供多种可供选择的优化方案,帮助决策者制定合理的运行策略。 其他说明:代码设计注重实用性,包含详细的注释和模块化的文件结构,便于理解和修改。此外,还提供了24小时调度结果的三维可视化展示,直观地反映了不同目标间的权衡关系。

Global site tag (gtag.js) - Google Analytics