写在 Swift 5 发布之时:我和 Swift 的故事
发布于:2019-03-26 17:41,阅读数:861,点赞数:7
# 引言 今天 Swift 5 发布了,盼星星盼月亮终于盼来了 ABI 稳定的这一天,可谓是有生之年系列了。我和 Swift 有着很深的羁绊,因此今天想说一说我和 Swift 之间的故事。 # 初见 第一次见面是在 iTunes U 上,斯坦福的这套课程:[Developing iOS 8 Apps with Swift](https://itunes.apple.com/cn/course/developing-ios-8-apps-swift/id961180099),这是我入门 iOS 的课程。 2015 年初,我买了人生中第一台 MacBook,是一台 MacBook Air,大概六千多吧,然后就跑到 iTunes U 上学习了这套课程。当时的 iTunes U 还是没有字幕的(没错,连英文字幕都没有)。 在这之前我已经学过不少语言了,包括古老的 Delphi、C,上到 Java 等。但当年我还没有学过 Objective-C,心想着是不是只学 Swift 就够了,从此走上了一条不归路。 Swift 本身带给我的新东西其实并不多,非常好学。当年使用的 Xcode 6 代码提示速度飞起,也不容易崩溃,体验比我用过的其他 IDE 都要好太多太多了,于是就开开心心地学了下来。 # 摸索 2015年中,开始要实习了。阴差阳错地跑去上海实习了个 Javaweb 相关的岗位(至今都感觉自己是个智障),不过那是家对实习生很温柔的公司,没有加班。因此在业余时间我可以继续写 iOS,在那段时间里我完成了人生第一个上架的 App。那个 App 还使用了一些 SpriteKit 的功能,给整个 App 带来了沉浸式的粒子特效背景,当时的想法还是非常棒的。 当时身边没有做 iOS 的同学,只有少数几个做技术的网友。大家对 Swift 的看法不置可否,我也就没有在意。这段日子可谓说是有点后知后觉了,直到 2016 年初开始找工作时候,我发现我找不着工作,国内几乎没有什么公司用 Swift,而我既不是计算机专业,也不是什么好学校毕业的学生,开始进入人生一个相当灰暗的时段。 第一份工作在中国科学院某研究所,先是做了四个月安卓,趁着这段时间,我杀向了 Swift 服务端,那时候是 2016 年 11 月,只写了一个页面,全屏的大图,然后可以给我提交留言。服务端方面基于 Perfect,功能上只有渲染页面和接收留言存到 Mysql 的功能。 完成以后在微博上发了一下,当天微博得到了喵神等众多圈内好友(现在的好友,当时还不认识)的支持,一天内收获了五万阅读量。 既然 Swift 在客户端上没人用,我就在服务端上玩。2017 年初我又进行了一些对接 C 语言库的实验,例如在 Linux 上通过 C 接口对接 HDFS 进行分布式存储,事实证明这些路都是通的。 随后我就在服务端把 Swift 玩开了花。当然,只能玩玩,在生态上离生产差的不是一点半点。 # 屈服 随后的时间里,Swift 一版接着一版更新,被戏称每一次更新就像一门新的语言,旧的代码要进行大量修改。国内公司一次又一次地试探又一次又一次缩回了手。其中不妨有相对大的公司头铁,把项目重写着切过去。但近几年又不乏把项目又切回来的,这些公司在 Swift 上的付出基本都能写成一本书了。 渐渐地,大家开始失去耐心。原本对 Swift 信心十足的朋友们也纷纷离场。我也开始动摇,毕竟 Swift 服务端搞着玩可以,想当饭碗在现阶段基本就是天方夜谭。因此我重新开始学习 Objective-C 这门有着三十年历史的语言,开始走上一个正常 iOS 开发者该走的道路。 # 转机 按照剧情这里应该有转机。 但是仔细想了一下,好像确实没有转机。到现在为止还在写 Objective-C,Swift 仍然还在 Linux 上玩。 ![](//cdn.blog.yuusann.com/img/posts/18002_1.jpg) # 结语 在 Swift ABI 稳定以后,一年一门新语言以及包大小问题算是得到解决了,相信很多正在边缘疯狂试探的同学有了下手的机会。 今天在微博上还有同学说:“虽然这一天到来了,但是我已经转行了。” 这一天来的真的太晚了,等的你好辛苦。 最后附上我的 Swift 开发史,在服务端上玩得很开心: - 2015年初:入门 iOS 开发,使用 Swift 1.1 和 Storyboard,学习 iTunes U 上的课程。 - 2015年中:开始开发第一个上架 App,基于 Swift 1.1。 - 2015年末:上架第一个个人 App,由于语言更新,当时已经是基于 Swift 1.2 了。 - 2015年底:实习结束,找不着 iOS 的工作。 - 2016年初:用 Swift 2 几乎重写了一遍这个 App,继续上架。 - 2016年中:入职了中国科学院某研究所,写了几个月安卓,后面开始用 Swift 2.x 开发 App。(最终没能上架) - 2016年11月:进军 Swift 服务端开发,基于 Swift 2.x 开发了第一版个人博客,运行在阿里云上。随后 Swift 相关的工作完全转移到了服务端上。 - 2016年12月:重写了博客后台,之后在博客进行了各式各样的开发,包括在线编译平台、WebSocket 等。部分功能现在已经不再支持了。 - 2017年初:做了一些 Swift 和 C 库的对接工作,例如在 Swift 服务端上通过 C 接口对接 HDFS,验证了是可行的。 - 2017年6月:开始自己的 Swift 服务端框架 Pjango 开发并开源。这个项目基于 Swift 3。完成以后基于该框架完全重写了博客的后台和前端 Calatrava,并开源。 - 2017年Q4:在博客新增了各式各样的功能包括评论、留言、文集等待功能。 - 2018年Q2:在博客继续增加功能,包括Instagram 爬虫、数据统计、动态聚合等等功能。 - 2018年Q4:在尝试了很多次以后,终于把 Calatrava 从 Swift 3.2 切到了 Swift 4.2.1,其中的的困难真的能够写成一部血泪史。 - 2019年初:继续在博客增加功能,例如全站搜索等。 - 2019年3月:服务开始分层,开发了反向代理、流量监测等等内容,这些内容全部基于 Pjango。(部分暂时还未上线)
评论:0条