SegmentFault Weekly - vol.25优质阅读感受及更多讨论,请查看原文:
https://segmentfault.com/a/1190000009662146
万众瞩目的 WWDC 2017 已经落下帷幕,对于 Swift 开发者而言最关心的自然是 “What's New in Swift” 了。
在介绍 Swift 4.0 的新特性之前,还是让我们先回到 2014 年 —— Swift 横空出世的那一年吧。
2014 年的 WWDC 大会上,苹果在毫无预兆的情况下发布了用于 Mac OS X 和 iOS 编程的新一代编程语言 Swift。这一举动让很多专业的开发者一夜回到解放前,OC 程序员表示心很凉,在一门全新的编程语言面前,所有人都是零基础。所幸苹果降低了 Swift 的入门门槛,在程序编写上依然支持 Objective-C 和 C 语言,同时弥补了 Objective-C 的一些不足之处,让更多人更快地入门。
Swift 1.0 —— 横空出世
Swift 以前的 iOS 和 OS X 应用开发均使用 Objective-C,而 Objective-C 是一门及其繁琐(verbose)且学习曲线比较陡峭的语言。现在看来,Swift 1.0 确定了整个语言的基线:类型安全、迅速、现代,它告诉开发者使用 Swift 进行开发是完全可能的。Swift 1.0 有了可选的、智能的值类型,以及很多受欢迎的重大特性,得到了很多 Objective-C 程序员的认可。
[【WWDC 2014】带您一览苹果全新编程语言Swift][2]
从这个程序中我们可以看到,用 Swift 足够写出简洁易懂,语法上与其他脚本语言区别非常小,几乎无需学习 Swift 就能理解大概意思的程序。
[来自苹果的编程语言 —— Swift 简介][3]
Swift 是什么?简单的说:
- Swift 用来写 iOS 和 OS X 程序。(估计也不会支持其它屌丝系统)
- Swift 吸取了 C 和 Objective-C 的优点,且更加强大易用。
- Swift 可以使用现有的 Cocoa 和 Cocoa Touch 框架。
- Swift 兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。
仅在 Swift 发布的 11 个小时后,开发者 Nate Murray 就放出了基于测试版 Swift 开发的应用 —— 一个重制 Flappy Bird 的简易原型。
[第一个受到关注的Swift应用?“Flappy Swift”分享与简析][4]
推荐对 Swift 感兴趣的开发人阅读这个新作品的代码,并同时建议下载一份目前的版本试用或收藏。
动作快的小伙伴也第一时间上手用起来,嗯,用过都说好。
[用 Swift 开发一个 TODO 应用][5]
手把手教你如何完成一个 TODO 的应用,功能很简单,就是添加任务和浏览任务。将视屏内容整理了一下。虽然没有什么高深的内容,但是作为一个入门的小程序还是挺适合的。
上一次微软大张旗鼓的推出 C# 及其编程平台还是在 2000 年,而将近15年之后,苹果推出了另一门编程语言 Swift。作为一个开发者,能见证一门编程语言的诞生,备感荣幸。
Swift 2.0 —— 开源万岁
在 2015 的 WWDC 大会上,苹果宣布将开源 Swift。此外苹果还将公开发布在 OSI 标准许可下的 Swift 的源代码,包括编译器和标准库,开放 Linux 的源代码端口,开发者可以在 Linux 上编写 Swift 程序。不难看出,苹果这些举动意在鼓励开发者从而进一步推动 Swift 的发展。
经过一年的发展,Swift 2.0 有了哪些新特性呢?
[Swift 2.0 到底「新」在哪?][6]
Swift 2.0 涵盖了更多新的功能,如升级的错误处理、协议扩展和可用性检查等。
[Swift 2.0 初探][7]
今年 6 月,一年一度的 WWDC 大会如期而至,在大会上 Apple 发布了 Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用。
作为这门语言的使用者,必然也会受到它的影响。
[浅析 Swift 给开发者带来的变化][8]
每一门编程语言都会有一个从推出到趋之完善的过程。Swift 和 Xcode 的问题虽然饱受诟病,然而,个人相信,随着时间的推移和语言自身的成长,Swift 的将来必定会成为主流开发语言之一。
Swift 横空出世,如火如荼,那 Swift 在未来有可能会取代 Objective-C 吗?
[《Swift基础教程》作者Boisy Pitre:Objective-C很不错,但它已经是过去时][9]
当然。但是没人知道会用多长时间,但是我认为应该是在 5 年之内。我们很容易就忘记计算机语言的生命有多长(现在 C 语言已经 40 岁了)。Objective-C 不会彻底消失,但是我能预见在未来的某一个时刻,它在语言世界中的份额将变得非常小。
那么问题来了,如何以最短的时间快速从 Object-C 过渡到 Swift?
[[分享]iOS开发-快速从Object-C过渡到Swift的一个小技巧][10]
那就是查看 API 文档,这是一个极其取巧且快速省心掌握 OC 和 SW 之间语法变化的方法
Swift 3.0 —— 打破一切
2016 年 9 月,苹果发布了被称为 “破坏性更新” 的 Swift 3.0。Swift 3.0 可谓 “打破一切”,如果你已精通 Swift 2.0,那升级到 Swift 3.0 无疑是从精通到入门。
保证语言基础的健全以及一致性是一门新语言发展的必经之路,因此也将受到挫折。Swift 3.0 可能不是最有趣的版本,但它让 Swift 更为干净。
[Swift 3.0:你的代码即将崩坏][11]
这意味着什么?恩,首先,从 Swift 2 过渡到 Swift 3 不可避免地将是悬崖式的过渡,大量的代码需要重写,Cocoa 的重命名工作也要落地了,我们将再次创建令人瞩目的科技成果。同样地,我们应该尝试将 “重新布局式的” 改变放到 Swift 3 中,如果可能的话,Swift 3 到 Swift 4 的过渡尽可能平缓一些。
还是按照惯例,继续来看看 Swift 3.0 的新特性吧:
[Swift 3 新特性][12]
[Swift3.0 都改变了什么][13]
经历了从 Swift 1.0 到 2.0,一个版本之后代码居然就不兼容了。这如何在团队推广呢?没有想到 3.0 居然变化更加的大。有多大,来体会一下。
[【译】Swift 3.0更新概要][14]
如果你没有一直紧跟 Swift Evolution 的话,你也许会想知道都有哪些改变,以及它将会怎么影响你的代码,并且你该什么时候开始着手把代码 convert 到 3.0,那这篇文章就是写给你的。
嗯,看到这里,Swift 2.0 的开发者的内心是崩溃的,含泪写下从 Swift 2.2 到Swift 3 的迁移指南。
[一个才适应 Swift 2.2 的开发者眼中的 Swift 3.0 和 iOS 10][15]
Xcode 8 带着 Swift 3 风风火火的到来了,作为一个平时使用 OC 为主的 iOS 开发来说,Swift 3 正式和 OC-like 语法划定了界限。
Swift 4.0 —— 充满希望
在开始 Swift 4.0 之前,还是先来看看开发者们对它的期望吧。
[【译】回顾 Swift 3, 展望 Swift 4][17]
Swift 3 的正式版已经接近完成状态了, 是时候来回顾一下发布之前的事情, 从中汲取经验, 并且用来整理一下我们(Swift 社区)在今年做的事情了. 总的来说, Swift 3 无疑将会是一个 Amazing 的版本, 我们做到的很了不起, 谢谢每一个为这件事情贡献力量的人. 比起马上推进那一堆新计划, 更重要的是让我们每个人从整个大局来看, 了解自己做到的这些了不起的事情.
需要补充的一点是,自从 Swift 开源之后,大部分社区成员提交的提案都在讨论和修改之后被接受了。而那些被驳回的提案也都在激烈的讨论之后由核心团队来做最后的决定。就连 Apple 自己的工程师在想要做出改变的时候也会打开 Repo 去写提案。借助开源,苹果充当管理者的角色,确保了语言的一致性,通过开源社区的力量更好的完善语言的功能,让 Swift 成为一个更好的语言。
说回本次的更新。
[What's new in Swift 4.0][16]
new encoding and decoding, smarter keypaths, multi-line strings, and more!
从 WWDC 2017 发布的情况来看,Swift 4.0 做了很多重大的改变,包括 String 的重新设计,Codable 协议的原生支持,原生的 JSON 解析,以及其它很多功能的改进等。因此 Swift 4.0 与 Swift 3.0 并没有十分良好的代码兼容性。
然而,Swift 推出伊始,它的编译器就是支持兼容性模式的,选择 -swift-version-3
能编译大多数 Swift 3.0 的源码,此外在 Swift 4.0 中还修复了错误代码也能在旧编译器中编译通过的漏洞。而 -swift-version-4
将支持所有在 Swift 4.0 设计准则中提到的新特性,开发者可以以 package 为单位逐步将自己的代码库迁移过来。
拥抱变化
Swift 4.0 将在 2017 年秋季发布。“种一棵树最好的时间是十年前,其次是现在”,如果你也想尝试用 Swift 进行 iOS 开发,那么现在就动手吧!
Swift 2.2 版本:[iOS开发入门案例实战(Swift版)][24]
Swift 3.0 版本:[Swift 编程语言学习][25]
“Write the Code, Change the World”,开发者们,让我们拥抱变化,用代码来改变世界吧!
(本期完)
# SegmentFault 技术周刊 #
「技术周刊」是社区特别推出的技术内容系列,一周一主题。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。
© 本文版权归作者 SegmentFault 所有,文中提及所有文章版权归原文作者所有,任何形式转载请联系作者。
[1]: /img/bVOTJe
[2]: https://segmentfault.com/a/1190000000531511
[3]: https://segmentfault.com/p/1210000009692707/read
[4]: https://segmentfault.com/a/1190000000531810
[5]: https://segmentfault.com/p/1210000009697912/read
[6]: https://segmentfault.com/a/1190000003497072
[7]: https://segmentfault.com/a/1190000002922232
[8]: https://segmentfault.com/a/1190000005004313
[9]: https://segmentfault.com/a/1190000003781891
[10]: https://segmentfault.com/a/1190000005084856
[11]: https://segmentfault.com/a/1190000004665443
[12]: https://segmentfault.com/a/1190000007467754
[13]: https://segmentfault.com/a/1190000006058419
[14]: https://segmentfault.com/a/1190000006237653
[15]: https://segmentfault.com/a/1190000007286006
[16]: https://www.hackingwithswift.com/swift4
[17]: https://segmentfault.com/a/1190000006235300
[20]: https://segmentfault.com/a/1190000004619965
[21]: https://segmentfault.com/a/1190000006024193
[22]: https://segmentfault.com/a/1190000006116489
[23]: https://segmentfault.com/a/1190000008317093
[24]: https://segmentfault.com/p/1210000009661911/read
[25]: https://segmentfault.com/a/1190000004200422
网友评论