苹果在2014年的WWDC大会上发布了Swift语言之后,很多初学者都有一个共同的疑问, 是否还需要学习C或者Objective-C。除此之外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分。
应该先学C/Objective-C还是直接学Swift?
虽然Swift是一个全新的语言,但它与Objective-C和C却有着千丝万缕的关系,Swift其实就是Objective-C的文本变种,对于这门全新的语言,苹果做的工作其实远没有我们想像的艰巨。LLVM编译器做工作只是先把swift翻译成Objctive-C代码,然后再把Objective-C代码翻译成C语言代码,然后再把C语言代码翻译成汇编,最终翻译成机器码。虽然Swift其实就是Objective-C, 但是对入门者而言Swift远比Objective-C好学,它吸取所有语言的精华, 所以如果在家自学建议直接学习swift, 但是如果参加培训建议先学习C/Objective-C, 这样能够更好的理解底层的实现原理.
正在学习Objective-C,应该转为学Swift吗?
这要试情况而定。如果你把学习iOS当做一个爱好或者出于好奇心才学,那么转到Swift学习上吧。如果你将从事iOS开发视为职业,那么你要知道外面至少有100万个应用都是用Objective-C编写的,Swift于2014年才刚刚发布,所以你将来的职业的app开发仍然很有可能使用Objective-C。所以你需要学习Objective-C来获得一个工作,直到Swift成为标准,这大概将花费数年时间。同时学习两门语言也将对你有好处。你未来的上司甚至可能会让你来将现存的Objective-C app切换到Swift上。
我建议初学者选择Swift是因为它是一种友好的语言,特别是playground让它变得容易学会。一旦你学过了Swift,如果将iOS开发视为职业的话,对于学习Objective-C也将更容易理解。
最后,Swift是一种现代语言,如果你学习Swift,意味着也同时做好了面向未来的准备,因为Swift将是新一代的应用所用的语言(包括Apple Watch上的应用)。Swift语言是苹果送给每个人的礼物。世界上还没有5年经验的Swift开发者,但如果你现在开始学习Swift,那么过了5年你就将成为其中一位了。
我最后的建议是,不管你选择哪一门语言,学习它并且精通它。最后你将发现,只要你学会iOS SDK,使用哪种语言并不是最重要的。并且学了一种语言之后可以很容易的开始学习另一门,最紧要的是,从现在就开始学习。