博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift还是Objective-C,你怎么选择
阅读量:5342 次
发布时间:2019-06-15

本文共 1610 字,大约阅读时间需要 5 分钟。

苹果在2014WWDC上发布了新编程语言Swift,并宣称其快速、现代、安全、互动,且全面优于Objective-C,将在未来改变我们编写iOS和Mac应用的方式。但面对这门全新的编程语言,新入行者对学习Swift还是有些疑惑和纠结。

Swift

Swift用来撰写OS X和iOS应用程序,可与Object-C共同运行于MAC OS和iOS平台,改变了Obejective-C复杂的语法,更加简单易用、有未来,让许多开发者心动不已,Swift明显的特点有:

1、为开发工具带来了Xcode Playgrounds功能,该功能提供强大的互动效果,能让Swift源代码在撰写过程中实时显示出其运行结果;

2、基于C和Objective-C,而却没有C的一些兼容约束;

3、采用了安全的编程模式;

4、界面基于Cocoa和Cocoa Touch框架;

5、保留了Smalltalk的动态特性。

当然,Swift的更多优点在于细节处理上,比如提供类型推导、泛型、集合可变性、字符串比较等等,熟悉Objective-C的开发者都能明显感受到Swift的优胜之处,小编就不在此班门弄斧了。

但关于学习Swift,不少开发者还是有些迷惑,Amit Bijlani给出了自己的见解,供大家参考。

编程新手也可直接学Swift,无需先学Objective-C

Swift是一个全新的语言,与Objective-C或C都没有主从关系,就是说它们都是编程语言并且遵守一些基础概念和范例,但是并不需要在学习其中一个之前先学另一个。编程新手也可以直接学习苹果发布的官方的Swift文档,而无需先学Objective-C。

正在学习Objective-C是否转为学Swift要视情况而定

1、如果你把学习iOS当做一个爱好或者出于好奇心才学,那么转到Swift学习上吧。

2、如果你把从事iOS开发视为职业,那么你要知道外面至少有100万个应用都是用Objective-C编写的,Swift于2014年才刚刚发布,所以你将来的职业的app开发仍然很有可能使用Objective-C。因此你需要学习Objective-C来获得一个工作,直到Swift成为标准,这大概将花费数年时间。

3、同时学习两门语言也将对你有好处。你未来的上司甚至可能会让你来将现存的Objective-C app切换到Swift上。Amit Bijlani对此观点有所保留,他认为一个应用最重要的部分是它的功能而非它使用的语言,因此重写现有app的做法可能不会流行。

学习Swift的好处

1、playground让Swift变得容易学会,一旦你学过了Swift,如果将iOS开发视为职业的话,也更容易理解、学习Objective-C。

2、Swift是一种现代语言,如果你学习Swift,意味着也同时做好了面向未来的准备,因为Swift将是新一代的应用所用的语言(包括上的应用)。

3、世界上还没有5年经验的Swift开发者,但如果你现在开始学习Swift,那么过了5年你就将成为其中一位。

DevStore小编:关于这门汲取了Objective-C、Rust、Haskell、Ruby、Python、C#以及CLU等编程语言精华的新语言,现在已经有了许多教程、DEMO等资源,开发者可以通过各种渠道进行学习。

关于是否学习Swift各方观点也都是一家之言、仅供借鉴,苹果官方称:Objective-C不会消失,Swift和Objective-C可同时用于Cocoa和CocoaTouch开发。但苹果似乎鼓励开发者使用Swift进行新的开发,可能在未来的框架和API开发中减少使用Objective-C语言,甚至弃用。总之有备无患、保持领先是没错的,so,从现在开始学习吧。

转载于:https://www.cnblogs.com/chenxuan123/p/3998334.html

你可能感兴趣的文章
从C语言的弱类型属性说起
查看>>
图片的显示隐藏(两张图片,默认的时候显示第一张,点击的时候显示另一张)...
查看>>
Docker 安装MySQL5.7(三)
查看>>
python 模块 来了 (调包侠 修炼手册一)
查看>>
关于CSS的使用方式
查看>>
本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
查看>>
跨域解决方案之CORS
查看>>
学习RESTFul架构
查看>>
分析语句执行步骤并对排出耗时比较多的语句
查看>>
原生JS轮播-各种效果的极简实现
查看>>
软件工程总结作业---提问回顾与个人总结
查看>>
计数器方法使用?
查看>>
带你全面了解高级 Java 面试中需要掌握的 JVM 知识点
查看>>
sonar结合jenkins
查看>>
解决VS+QT无法生成moc文件的问题
查看>>
AngularJs练习Demo14自定义服务
查看>>
stat filename
查看>>
关于空想X
查看>>
CF1067C Knights 构造
查看>>
[BZOJ2938] 病毒
查看>>