给大家推荐一篇文章 (本文作者Amit Bijlani,由CocoaChina翻译)
文章原文:http://blog.teamtreehouse.com/learning-swift-vs-objective-c
当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C。此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分。通过这篇文章,我希望能扫清你的疑惑并且将你送到正确的学习轨道上。
我应该先学C/Objective-C还是直接学Swift?
Swift是一个全新的语言,与Objective-C或C都没有任何关系。我的意思是它们都是编程语言并且遵守一些基础概念和范例,但是你并不需要在学习其中一个之前先学另一个。即使你是编程新手,你也可以学习苹果发布的官方的Swift文档(中文版)而无需先学Objective-C。
我正在学习Objective-C,我应该转为学Swift吗?
这要试情况而定。如果你把学习iOS当做一个爱好或者出于好奇心才学,那么转到Swift学习上吧。如果你将从事iOS开发视为职业,那么你要知道外面至少有100万个应用都是用Objective-C编写的,Swift于2014年才刚刚发布,所以你将来的职业的app开发仍然很有可能使用Objective-C。所以你需要学习Objective-C来获得一个工作,直到Swift成为标准,这大概将花费数年时间。同时学习两门语言也将对你有好处。你未来的上司甚至可能会让你来将现存的Objective-C app切换到Swift上。不过我对这个观点有所保留,因为一个应用最重要的部分是它的功能而非它使用的语言,因此重写现有app的做法可能不会流行。
我建议初学者选择Swift是因为它是一种友好的语言,并且感谢playground让它变得容易学会。一旦你学过了Swift,如果将iOS开发视为职业的话,对于学习Objective-C也将更容易理解。
最后,Swift是一种现代语言,如果你学习Swift,意味着也同时做好了面向未来的准备,因为Swift将是新一代的应用所用的语言(包括Apple Watch上的应用)。Swift语言是苹果送给每个人的礼物。世界上还没有5年经验的Swift开发者,但如果你现在开始学习Swift,那么过了5年你就将成为其中一位了。
我最后的建议是,不管你选择哪一门语言,学习它并且精通它。最后你将发现,只要你学会iOS SDK,使用哪种语言并不是最重要的。并且学了一种语言之后可以很容易的开始学习另一门,最紧要的是,从现在就开始学习。
是的,还是要从OC学起,因为至少两三年内各大应用的维护还是要用OC的,swift也许未来会逐渐替代,但是毕竟还要看工业界的脸色的,所以OC是保险的。
以前,我会建议先学OC。我现在所在的公司不让用Swift,因为不成熟,怕被里面的坑影响项目进度。
但是,现在我会建议先学Swift。因为我现在持有的是“先学一切最新技术”的理念。如果来面试的人,不懂Swift,我会尽可能拒掉。当然,我也在开始学Swift。至于OC,大可以边做项目边学,我可以把我懂的所有OC的知识和经验教给同事。
但是,如果新来的同事,拒绝学Swift,我就一点辙都没有,因为毕竟现在公司项目只用OC,而老大也不要求懂Swift。
所以,只要是不懂Swift的,我都会尽可能拒掉。