零基础也可现学苹果Swift语言?太傻太天真

在刚刚过去的苹果 WWDC 2014 上,除了备受关注的 OS X 10.10 和 iOS 8 之外,苹果还发布了一款全新的编程语言 Swfit。对苹果遍及全球的开发者来说,Swift语言 无疑是 WWDC 2014 的一大爆点,但对于那些跟电脑编程没有太大关系的普通人来说,Swift语言 至多是苹果发布的一款不明觉厉的新东西。不过,当惊奇的在社交网络上看到这样:“实现我码农的梦想,就靠你了, Swift ! ” 的话之后,他们又觉得 Swift 这个 logo 为橙黄色俯冲雨燕的新东西离自己又没有那么远。

但和开发者们聊了一下会发现,事情没这么简单。

1. 比现在的编程语言要高级

作为 iOS 系统内部的开发语言,Swift 其实是现在正在使用的编程语言tive C (objc)的替代品。我们如今在 iPhone 中所使用的 app 都是用这个编程语言一行行代码敲出来的。这个编程语言在 1980 年代初由 Stepstone 公司发明,之后作为 iOS 操作系统的编程语言,随后者流行至今。

从级别上来看,objc 与 C语言/ C++ 同属较低级,而新晋的 Swift 要比这些都高级,属于跟微软的开发语言 C# 和安卓的开发语言 Java 看齐的开发语言。

2. 也更加高效

由于 objc 与同级别的 C语言/ C++ 同属较低的系统级,所以相对的开发效率、工程化程度也自然比较低,Swift 一出生就代表着更新换代升级,自然也是更高效,比如编程的语法更加简洁、语言的类型安全更加实现,以及引入了许多动态语言特征等,而在运行速度上,它更是比objc 快了 3 倍。“打个比方,objc 就像传统木工的锯、斧、刨等手工工具,而 Swift 就像是一体化的木工车床。它属于创作工具的升级。”科泰华捷科技有限公司 CTO 牛靖宇这样告诉《好奇心日报》。

3. 所见即所得,会让初学者更有存在感

在演示 Swift 的过程中,特地展示了实时代码效果预览功能(Swift Playground)。程序员可以在左侧输入代码的同时就在右侧实现代码执行演示。对于,资深程序员来说,这可能是一个检查 bug 提高效率的好办法,对于初学者来说,这个功能俨然就是一个鼓励机制,敲几行代码就会出现相应的图案,简直充满了即视感!

Swift语言 编程语言 ObjC 苹果公司 WWDC2014

4. 学 Swift,英语不好没关系

在发布 Swift 官方开发者指南不到12 小时的时间里,Swiftchina.org 雨燕中文网就已上线,该网站在全网发出网络众包翻译的邀请,这样看来,网络众包翻译的模式将有可能在尽可能短的时间内帮你扫清学习 Swift 的语言障碍。

5. 先别忙着学别人做评论

现在,各大社交网络,程序员社区都在忙不迭的评论 Swift 的性能,这些基于专业人士对于新产品敏锐洞察力下的判断当然无可厚非。但作为一个编程知识薄弱的初学者,就先别忙着看评论,然后学几句看似内行对 Swift 功能的喜恶评价。或者应该抱着学习的心态,感受一下 Ourcoders 站长,资深 iOS 开发者 tinyfool 的话:“评价 Swift 的好坏不应该是从一个抽象的概念上来,去判断它是好还是坏。我们应该看的是,它是否符合它们使用的具体场景,是否可以给(特定的)用户带来便利和幸福感,”

6. “从 Swift 开始,我们终于站在了同一条起跑线上!” 别天真了。

对于一个学习过 objc 编程语言的人来说,他们学 Swift 肯定比零基础的人容易的多。原因大概是平台和框架没变,只是语法变了。tinyfool 对《好奇心日报》这样解释这一点:“就好像是我说普通话,你说上海话,CPU 还是 CPU,电脑还是电脑,只是语音语调变了,但是主要的名词和世界观没变。”

7. 什么叫做学会了一门语言

学会编程语言,会用编程语言到了解语言背后的 API 是一个循序渐进的过程。基本上可以分为“三个段位”,第一段位是知道它的语法到底是怎么样的,这是一个死记硬背的阶段,相当于你在英语考试的选择题上可以全部做对,但是还不懂得怎么去用。第二段位是知道了怎么去用,从纸上谈兵到了真正跟人交流的过程,这个时候你知道写什么程序适合用哪种语言。第三段位,就是你能把你的思维完全转换成编程思维,这跟学一门外国语言也很类似。对 ALCOL 语言做出过重大贡献的 Alan J. Perlis 曾经说过:“一种不改变你编程的思维方式的语言,不值得去学。”所以长路漫漫,你得一点一点来。

8. 编程难度降低,然后呢?

“编程门槛虽然降低了,但生产力的门槛不会降低。 有越来越多的垃圾会被更容易的生产出来”,“开发门槛降低并不是一件坏事,因为新的人会进入到编程体系里来,带来更多全新的思路。”这是现在人们对除 Swift 功能之外另一个探讨的两大主流观点,这个类似于上升到技术与世界关系的伦理学问题是我们被“编程改变世界”或者“编程无用”冲昏了头脑时,应该思考的!


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.5iphp.com/?id=411