【转】我应该直接学Swift还是Objective-C?
(本文作者Amit Bijlani,由CocoaChina翻译)
当我们发布了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,使用哪种语言并不是最重要的。并且学了一种语言之后可以很容易的开始学习另一门,最紧要的是,从现在就开始学习。
推荐阅读:
Swift编程语言 FAQ
Swift语言亮点:站在Objective-C开发人员的角度看
【转】我应该直接学Swift还是Objective-C?的更多相关文章
- 从0开始学Swift笔记整理(五)
这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...
- 从0开始学Swift笔记整理(四)
这是跟在上一篇博文后续内容: --重写方法 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person { var n ...
- 从0开始学Swift笔记整理(三)
这是跟在上一篇博文后续内容: --Swift中相关的属性 存储属性 Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性 ...
- 从0开始学Swift笔记整理(二)
这是跟在上一篇博文后续内容: --函数中参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方 ...
- 从0开始学Swift笔记整理(一)
Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全的编程模式,增加了现代 ...
- 我应该直接学Swift还是Objective-C?
当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C.此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分.通过这篇文章,我希望 ...
- 那些年,学swift踩过的坑
最近在学swift,本以为多是语法与oc不同,而且都是使用相同的cocoa框架,相同的API,但是或多或少还是有些坑在里,为了避免以后再踩,在这里记下了,以后发现新的坑,也会慢慢在这里加上 [TOC] ...
- 快看Sample代码,速学Swift语言(1)-语法速览
Swift是苹果推出的一个比较新的语言,它除了借鉴语言如C#.Java等内容外,好像还采用了很多JavaScript脚本里面的一些脚本语法,用起来感觉非常棒,作为一个使用C#多年的技术控,对这种比较超 ...
- 我应该直接学 Swift,还是 Objective-C?
当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C.此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分.通过这篇文章,我希望 ...
随机推荐
- [linux] 线程和wait命令,sleep命令
在linux脚本编程中使用多线程编程,其中wait命令可以实现shell的多线程同步控制. 1. 启动后台子任务 在执行命令后加&操作符,表示将命令放在子shell中异步执行.可以达到多线程效 ...
- Excel表格常用的函数,留着备用
1. vlookup(lookup_value, table_array, col_index_num, boolean) -- 查找匹配函数 lookup_value: 你要去匹配的值 table_ ...
- [php-src]一个Php扩展的结构
内容均以php5.6.14为例. 要拥有一个PHP扩展的架子,使用源码中准备好的 /ext/ext_skel 工具,可以生成一个可运行的扩展骨架. 不加选项运行 ./ext_skel,可查看所有可用选 ...
- ARM Linux 3.x的设备树(Device Tree)
http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1. ...
- CityEngine中动态水的实现
地址:http://pan.baidu.com/share/link?shareid=3871210059&uk=3492170216 密码:am5b 在今年Esri全球用户大会和Esri中国 ...
- Qt 5.7 版本+2013VS环境配置
原本是使用MSVC5.5.1的版本,碍于习惯,之前一直使用creator,后面才转向VS,因为它的调试实在是太棒了,小程序还是creator调试(比如抽出大程序中的小模块之类的) 不知道是版本问题还是 ...
- ubuntu 14.04 键盘快捷键显示
安装完ubuntu14.04后 第一次登陆,会弹出键盘快捷键的一个大体预览, 也没有一个关闭按钮, 没看完就自动消失了. 让其重现的方法: 按住 super键 ,也就是键盘上的 win键 . 键盘 ...
- I Hate It(hdu1754)(线段树区间最大值)
I Hate It hdu1754 Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- SQL入门经典(一)之简介
今天是我第一天开通博客,也是我的第一篇博客.以后为大家带来第一篇关于学习技术性文章,这段时间会为大家带来是SQL入门学习.希望大家坚持读下去,因为学历有限.我也是初学者.语言表达能力不好和知识点不足, ...
- Idol之坑
1. 编码格式不统一 Idol的API 是基于 Http 的 Get 调用,输入N多参数,可以吐出Xml和 Json. 由于Idol没有在输出文档中指定编码格式(ContentType),用 Http ...