最近苹果发布了一个新的开发语言Swift,也即将开始在职研究生的学位论文的相关工作,出于综合的考虑,开发公司软件啊Mac版,实质上就是一种调研,最先也想完全摒弃OC开发而完全使用Swift,但是通过一小段时间对Swift的具体了解和学习,产生了一系列的问题。

我最先想到的是,Swift能够直接使用playground,那么Swift和OC相比是否容易被反编译,一直都在开发金融产品,所以对这方面比较好奇,尽管苹果当初说Swift比OC更安全,就像苹果在介绍Swift的时候说在排序算法中比OC快,而有人对别的方面进行试验,试验结果如下:

  • 循环100万次,Objective-C比Swift快29倍
  • 变量+1,Objective-C比Swift快46倍
  • 对象赋值,Objective-C比Swift快31倍

所以我一直就在想,是不是苹果没有找到针对的方式,仅仅是片面的,Swift的反编译是否又经过一系列的试验,结果是否够全面。

另外我今天看到的教程都是数据类型以及函数的处理,没有看见对控件的处理,或许有人会说网上已经有一系列的开源代码,但是现如今有的功能软件所需要的页面逻辑、功能逻辑是特别复杂的,Swift是否能够给予充分的支持,另外数据库处理、钥匙串、Core Data等方面的处理是否在Swift上得到了很好的支持,以前所存在的OC控件接口和算法接口等方面是否能够很好地衔接。

有了一系列的思考,今天也很凑巧地看到http://onevcat.com/2014/06/walk-in-swift/,充分地感觉到现如今的Swift相关资料不完全,特别是中文资料,另外现在还没有看到相关Swift对特殊接口的支持处理的文章,所以感觉到合适的才是最好的,而不是只听别人所说。

因为我清楚,我是要在一年的时间内开发完成,并且现如今的Swift相关东西都是未知,这让我想起了曾经为了社团而弄的决赛系统。记得大三的时候开展了趣味数学竞赛,完全使用PPT演示出现了一系列的不足,所以开发出了一个当时比较好的决赛系统。由于前期没有充分的调研,就直接使用与自己方向有所关联的MFC进行开发,但是后期发现了一系列的弊端,一年之后只好重新采用C#进行开发。虽然这其中也有一些收获,但是如果最先进行相关的可行性调研,就肯定会有更多的收获,也会更早地把软件做得更好。

一个东西在别人眼中可能是好的,但是不一定就适合你,记得似乎在高中的时候,学习《红楼梦》,我问了老师一句不都说浓眉大眼好吗,怎么作者不用浓眉大眼来比喻所谓美女的美呢,后来得知是从哪个角度看,不是出现一个新颖的东西就必须要去选择,而是要选择真正适合的。

今天,一个老同学问我现如今是否还要学习OC,我说要学,并且OC和Swift都要学习,尽管现在Swift没有完全地替代OC,但是或许是一个趋势,比如以前的项目是OC为主,以后的项目可能是Swift为主,就要多方面地学习与运用。就像我要学习Mac开发不是为了完成任务,而是因为在开发iOS过程中感觉到如果有什么什么软件该有多好,记得曾经我就用C#开发过许多常用的软件。

或许有人会说,既然现在Swift的相关信息不是那么地全面,那么你为什么不赶前一步争取做个Swift方面的大神呢。但是联想到成本和目标的对比,要全面地进行考虑,就像公司开发中的出错率并不是越小越好,因为要考虑成本,要考虑到时间、目标所达成的一致性,如果有充足的空余时间与学位设计的时间不紧急,我肯定也会充分地进行研究学习,而不是坐在这里想这些。

无论什么结果,感觉到了自己在这方面是一种成长,因为让自己知道了做事情要充分地去考虑实际情况而不是一股脑子钻进去不进行任何的思考,有些东西可能是最好的,但是不一定对你自己合适,有些东西再捡回来可能是最好的,但是相对现在的你可能不是最好的。多思考,也会带给自己或多或少的成长,也会让自己选择要学会哪些。因为一个方面是综合的考虑,另一个方面是多方面的完美主义所带来的痛,让我想起了大学即将毕业的时候李老师所说的一句“做事情可以追求完美,但是做人不必太追求完美”,无论获取到哪方面的成长,都让自己思考后给予选择。