我不懂 Swift 语言
英文原文:I Don't Know Swift 作者:Rob Napier 翻译:翛凌
我略懂 Objective-C,这不是在吹牛。如果你看过我的博客, 你有可能会发现我比你懂得更多的 Objective-C 的知识,因此我对此有一些发言权。即使你不同意我以下的观点,你也应该认真的对待我的观点。我曾经自己写过大量的代码,也参加过一些大型团队,在里面写代 码,我写的应用面向 OS X 和 iOS。我曾经耗费 30 小时为乔布斯制作 demo。当然也有很多开发者比我更有经验,不过我确实是略懂 Objective-C 的,这个你不能否认。
我完全不知道应该怎么用 Swift 写代码。
其他人也不知道。
甚至连苹果自己也不知道。
没人了解 Swift,因为它实际上还没有发展完全。它还处在发展初期,我们仍旧需要时间去研究它。没有实现建立好的模式,Swift 的语法也很有挑战性,提供的标准库也有所变动。而更大的挑战出现在控制面界面上。我们不知道它们汇是什么样子。
也许有人知道 Tim Burks,我一直都很严肃地对待他的观点。他是一个充满思想的聪明的家伙。他创造的 Nu 是一个有趣的语言。我甚至同意他对于 Swift 感到失望的一些观点。不过我们在具体应该怎么改进这些缺点的想法上存在分歧。最近 Tim Burks 写了一段建议:
我觉得,学习一门新的编程语言的最好的方法就是花上几个月的时间,用这门新语言写一写复杂一点的应用,而后与专家一起看一看代码是否还有可以改进的地方。
这确实是常用的一种学习方法。拥有设计语言经验的人经常会默默地、偷偷的学习一门新语言。接着他们会把他们领悟到的只是告诉其他人,然后会产生 一写小型的开发者社区。这些都是「圈内人」,最初的适应者。他们尝试新鲜事物;他们捣鼓新鲜事物;他们能够创造出更加大型、更加高级的东西。他们也热衷于 写一些大型的库(比如 Go 的标准库)。他们会依据他们得到的知识,对语言稍作修改。接着更多的人过来使用这门新语言,这门新语言变得更加普遍,也许会有许多技术一般的开发者前来使 用这门新语言。由于更多的人使用这门新的编程语言,这门语言会逐渐变得更加「重要」。
Swift 已经呱呱坠地了。它只是一个半成品。Swift 有些部分被认为很烂,在你的眼前也有很多的问题。它大部分的库仍旧是用 Objective-C、C 还有 C++ 写的。而这只是一个开始。你是最初的改编者,你逐渐在团队中改进各种问题。由于现在还处于 Swift 的发展初期,因此你可能会需要对 Swift 进行成千上万次的改进。
这绝对是一个很重要的「成名」机会。我相信,Swift 会获得 TIOBE 的「年度编程语言」评价。要知道,在它还没发布的时候它就位于 TIOBE 列表的第 16 位。现在开发者处在 Swift 的第一层,脚下的地基是刚刚浇筑好的。地基看起来挺结实的,不过 Swift 目前还不是一栋「大楼」。
苹果已经把 Swift 列为苹果官方的推荐语言。但是我在想的是他们会不会真的严格地遵循这个决定。「开发者能用 Swift 开发出怎样美好的 iOS 和 Mac 应用,将成为评价 Swift 的唯一标准。」我相信在这个标准上,Swift 会比 Objective-C 表现得更好一些好(不过我爱 Objective-C)。尽管如此,我觉得苹果不会从现在开始起立刻全面推行 Swift、放弃 Objective-C。
现在你正在 Swift 发展的初期。没有什么 Swift 大师之类的人,也没有什么有经验的开发者高高在上指导你各种语法问题。你就是开发元老,你就是 Swift 开发大师。
你是一个使用 Swift 开发 0 天的 Swift 专家。如果你已经写了一段时间的 Swift 代码,那么你就是一个有 0 年 Swift 开发经验的专家,因为你在等待 iOS 8 正式发布。我推荐大家读一切能够阅读到的资料,写写东西,融入到 Swift 开发的大潮中。(我个人而言目前推荐这两个 Swift 博客:Airspeed Velocity 还有 nomothetis。我强烈推荐这两个博客,它们教了我很多的知识,也希望能够有更多的人这样写博客。)多试试新模式,看看它们能不能运行,告诉其他人你的发现。
并且,最重要的是,如果 Swift 让你感到困扰、对你来说不管用,或者如果你发现 Swift 能在某些方面进行提高,现在、立刻、马上就说出来。将你发现的问题放到开发者论坛上,写个范例,告诉其他开发者你的代码是什么样的。Swift 仍旧在改变,它是 beta 版本,所以它肯定是能够改变的。要知道如果你在它是 beta 版的时候还不提出问题,那么如果你可能会需要很久时间才能让它进行改进。