有了有了Swift,,iOS开发者为何仍需掌握开发者为何仍需掌握Objective-C??
在Swift编程语言出现之后,Objective-C和Swift似乎一夜之间就成了对手,尤其是对很多新手来说,在他们中间如何选
择很是头疼。Swift有没有可能将作为老大哥的Objective-C打败,拭目以待!
我记得很清楚,在 WWDC 2014 大会上,Apple 第一次宣布了一个为 iOS 准备的叫做 Swift 的新的编程语言。估计当
时的参会者大多数都会有这样的想法在大脑里闪过:
等等,这是虾米?
天啊,我一直喜爱 Objective-C,但现在开始要学习一个新的语言了?
这是为 iOS 8 构建 App 的唯一方式?
之前有人问过这样的问题:对于初学者,之前有人问过这样的问题:对于初学者,Objective-C 和和 Swift,你推荐先学哪一个?,你推荐先学哪一个?
真正从长远角度来看,学习 Objective-C 还是 Swift 语言其实很不重要。
Swift 刚发布的时候有人说“这下所有人都回到零起点了”,实际上是外行的一个常见的误解。Swift / Objective-C 和 iOS
开发是两个不同的概念,前者仅仅是一门编程语言,而后者则包括了编程思想、Cocoa 框架的使用,甚至交互设计规
范、界面设计规范等 iOS 开发所需的一整套东西,并且绝大部分是和语言无关的。从学习的角度看,大部分时间你将
花在学习 后者上,而具体语言和语法只占很小的比例。Objective-C 和 Swift 虽然语法上差异很大,但是背后的思想以
及所依托的类库都是相同的。关于 iOS 应用开发你能想到的绝大多数问题,例如:
一个应用的代码是从哪里开始执行的?
如何建立一个按钮,并实现用户点击这个按钮之后调用一个函数?
如何修改一个标签的文字?
如何控制系统发出声音或者播放视频?
如何检测设备的朝向?
它们的答案都取决于 Cocoa 框架如何使用,而非具体采用的语言是什么——你关注的应该是背后的“我该做什么,为什
么要这么做”,而不是简单的“具体怎么去写”——不同语言仅仅是一个写法不同而已,手册和网络上都可以查到,用多
了自然掌握。
因此,对于一个已经掌握了 Objective-C 和 iOS 开发的人,迁移到 Swift 是几天就可以搞定的;而对于一个掌握了
Swift 和 iOS 开发的人,迁移到 Objective-C 也不会很困难。
至于选择哪个语言,我想说 Swift 代替 Objective-C 肯定是有原因的,必须承认 Objective-C 的很多语法的确很怪很繁
杂(Objective-C 的啰嗦是出了名的),可能对编程语言的初学者不太友好,Swift 接受起来会稍微容易一些。但另一
个事实是,目前 Swift 的文档、教程和代码还比较少,并且大部分都是关于语法的。虽然有一两个官方文档是关于如何
从 Objective-C 切换到 Swift 的,也有一些 Swift 的示例代码,但和 iOS 开发这个庞大的体系比起来,覆盖面仍然很
窄。这对于已经掌握 Objective-C 的开发者不是问题,但是对于什么都不会的初学者,看过 Swift 的文档之后能写一个
类似 C 的控制台应用程序出来,但是很难写一个你自己想要的完整可用的 iOS App 出来。因此,基于你的情况,我还
是倾向于推荐从 Objective-C 开始学起。
有 Objective-C 开发经验的开发者说
Apple 很快就将大部分的开发者聚集到一起,正如它很绅士的向大家介绍 Swift 并回答所有疑问那样。Apple 向外承诺
说,iOS 开发者使用 Swift 一定能从一个现代语言里获得很多好处,包括像强类型化、类型推理、通用术语等等。这些
功能都是 Objective-C 开发者一直感兴趣的东西,但是有学习 Swift 编程语言需要花多少时间精力?