也谈 Swift

swift
Image from konstantinfo

初看Swift

说实话,第一时间用手机下载完《The Swift Programming Language》,就发现这家伙长的有点奇怪,类似于JavaScript的变量定义,又有着Ruby一般的Array, Hash操作,那个func 定义写起来怪怪的,发现和Go长的像亲兄弟,当然,也会有一些ObjC的特性。难怪有人调侃到这种奇葩组合,在月饼界有个专门的名词,叫作五仁。

再回头看OC,从iPhone热之后随之而火的编程语言,本身就不够大众,没有太多的高层人士,一直都是这门语言面临的大问题。语言的拖沓,一个小功能要写大段的代码,开源的类库和Web比,还是太少。这一点经常被FED朋友嘲笑,有时花很长时间做了一个交互的动画,在他们看来这只是分分钟的事情。

想必Apple自己也无法忍受,不然不会在自己这么火的情况下,抛出一门新的语言。

理想很丰满、现实很骨感

关于新语言的各种学习资料,各种Demo也都已经上线,就抛开这些不提,看看要学这门新语言背后的东西。

语言能做什么,一门语言只要没有缺陷,理论是是什么都能做的,但徒手无法建成大厦,做产品,始终需要合适的工具、类库支持,除了这些,想用一门语言做好一个项目,还要有相应的背景知识,像线程,API的熟悉库,好的项目,还要有好的模式支持,和好的实践总结。

除了上面种种,有一点不得不提,语言很容易,但语言里的坑却要花大量的时间去熟识,规避,这些经验,都不是一朝一夕能练就的。

对于学习来说,这些都不是太大的问题,IDE有XCode在支持,ObjC的类库也都能嫁接到SWift上,只是要多花点时间。开源项目也终会向新语言转换。至少说是个好的开头。

未来

很多人说,有了Swift,学习iOS开发的成本降低不少,现实呢,其实不是。

当初我在学iOS开发时,单Provision的配置就花了两天时间,现在XCode会自己帮你做掉一些事情,但,iOS开发依然是一个很繁琐的事情。多系统版本的匹配跟兼容各浏览器没大差别。

之前只需要用ObjC一门语言就能搞定一切,现在你不仅要看ObjC,还要时时关注Swift,新人来说,2年内的项目,应该大都都是ObjC,想只学Swift,哈哈。

是变难了,还是容易了,有了推论吧。

但有新东西出来总归是好的,说明这个市场还是在扩大,有市场就有机会,趁着这个机会,再重新学习,把之前缺的漏的都给补上。