写点什么

专访 Chris 与 Greg:国外 iOS 大牛的分享经验,以及如何看待 Swift?

  • 2016-03-28
  • 本文字数:3745 字

    阅读完需:约 12 分钟

今年 1 月份 Swift 大会在北京召开,这是国内第一次由社区组织的移动技术大会,大会取得了圆满成功,来自国内外的 iOS 开发大牛为大家奉献了精彩的演讲。在大会期间 InfoQ 记者采访了两位国外讲师 Chris 和 Greg,他们分享了平时是如何工作的,如何做分享,以及对 Swift 的看法。

嘉宾介绍

Chris Edihof 是一名生活在德国柏林的荷兰开发者,他是 iOS 与 Mac 开发者,同时还是 Objc.io 的创建者,组织了德国的 UIKonf 技术会议,还写了两本书:Functional Programming in Swift 和 Advanced Swift,成为了 Swift 的布道者。

Greg Heo 是一名韩裔加拿大人,自由职业的软件开发者,他同时还是 Ray Wenderlich 的作者和编辑,还编写了一些 iOS 开发的视频教程,还出席了不少的 podcast.

InfoQ:作为 iOS 开发者,如何安排一天的时间?

Greg:早起对我是一个挑战,早上起来我通常难以集中精力做事情,所以我一般先检查邮件、和别人沟通,到了下午我才开始专心写代码,一直工作到晚上,吃完晚饭后继续写代码,因为编程是我所喜爱的事情,有时候会写到很晚。当然,我也知道这样是不健康的,所以也尝试着改变。

因为我在家工作,所以基本每天都是这样,当然,有些时候也会有其它的事情插入进来,比如电话、会议等等。

Chris:我的情况有一些不一样,我早上的头脑是最清醒的,所以我一般早上来解决工作上的难题。随着时间经过,我的脑袋转得越来越慢,所以如果工作很晚的话我也会写出 Bug,最后我进入梦乡,做的也是和编程相关的梦,经常是关于那些 Bug 的。当年我写 PHP 的时候,曾经有一段时间做噩梦(笑。

我也是在家工作,因为我是独居,家里非常安静,所以我拥有很多无人打扰的思考时间,我很容易分心,如果有人打扰我的工作效率也会变慢。

因为上面这些原因,我会避免工作到很晚,并且避免为白天的工作列太多计划。

InfoQ:Objc.io 和 Ray Wenderlich 都是非常好的 iOS 学习资源,你们都是产出了不少好的学习内容,对于分享经验方面有什么诀窍?

Chris:Objc.io 的诞生完全是个意外,某次参加大会后,我和我的朋友 Florian 和 Daniel 坐在那里突发奇想,要不咱们开个博客吧。当然,我想做得和其它博客不一样,所以模仿杂志,每月出一期,每一期围绕一个主题,并且我们会雇佣专业的编辑,改善文字的可读性以及排版设计等等。Daniel 以前在苹果工作,所以他知道很多东西,Florian 和我则有很多自由时间。所以这种联合让我们可以做出一些高质量的内容出来。当我们发布了第一期 issue 后,很多人很喜欢并且催促我们出下一期。我们一开始设定了很高的标准,后面要想达到同样的标准真的是很难,不过也很有趣,因为在这过程中我学习了很多东西。当你需要表达某东西时,你必须了解其细节。我可以说,如果我写篇文章,文章最后所表现的和我需要了解的不成正比,我需要学习的要多得多。所以分享对我来说,先是学习,然后才是分享,这可能有点自私,不过最后大家都获得了好处。

Greg:2012 年开始我在 Ray Wenderlich 担任技术编辑,作者写完文章后,我会先审校一遍,然后是第二个、第三个编辑审校,最后才会发布到网站上。正因为每篇文章都经过了很多双眼睛,所以 Ray Wenderlich 上的文章质量才能保持一个很高的水准。对于分享,我的情况和 Chris 有些相似,因为如果你要做一个技术分享,你必须完全了解技术的背景、内涵以及可能遇到的各种问题,另外还要保证分享的内容完全无误,哪怕是缺少一个逗号,文章的代码可能就不能运行。在一个分享中,我所学习的要远远超过最后分享出来的内容,而且作为编辑,我有机会学习别人的思想,和聪明人进行交流,所以我很享受这个过程。刚才 Chris 提到一个词语自私,我想这也适合于我吧,因为在分享中我所获得的要远超过所分享的。

Chris:还有一点,分享也和我是独立开发者有一定的关系。如果是大公司的开发者,公司内有足够的学习资源,还有经验丰富的老人教导,学习对他并不是一件难事。但如果是独立开发者,你需要持续学习以保持自己的竞争力,而分享是一个很好的学习的办法,它迫使你去了解更多更深入的知识。甚至可以说,如果我不分享的话,我不知道如何才有动力持续学习。

InfoQ:苹果每年都会推出很多新产品和技术,特别是去年 watchOS 和 tvOS 带来了新的平台和机会,你们是如何跟随苹果的新产品的?

Greg:是的,(要做到关注所有产品)的确很难。每年苹果都会推出很多令人兴奋的产品,对我来说,Apple Watch 推出让我特别兴奋,我学习了大量的关于它的资料和视频,打算做一些开发,结果马上 tvOS 也出来了,对于这个我也非常兴奋,然而我精力有限,只能做出选择。所以我最终选择聚集在 iOS 和 watchOS 平台上。要知道现在 Swift 开源了,光是 Swift 就有一大堆的东西要关注了。我想,比起什么都会一点,我还愿意精通少数一些技术。

Chris:对我来说,情况可能不太一样,直到 iOS 7 之前我只开发 iOS Apps,但之后我转向了 Mac 开发,对于 iOS 世界里发生的事情已经不太关注了,而现在 Swift 出来,我的精力都扑在 Swift 上,对于 Mac 开发也没有以前那样关注了。对于我来说,很难同时去关注所有事情,所以,我决定去关注和做那些让我感到开心和有趣的事情,比如目前就是学习 Swift。我觉得,与其一个人去学习那么多东西,还不如大家都只关注自己感兴趣的部分,然后将它们分享出来,这样能节省大家的时间。事实上,要同时掌握那些技术是不太可能的,你最终必须要选择一些深入进去。

InfoQ:你们第一次接触 Swift 是什么感受,它比 Objective-C 好在哪里呢?

Chris:14 年我本来想去现场参加 WWDC,可惜抽签没有抽中,于是我和朋友们去波兰度假了。当时我正在山上,只有一点点的网络信号,我只能拿它刷刷 Twitter,来看 WWDC 上出现了什么,当我看到他们都在说 Swift 时候,我的感觉是 Oh My God,我立马去下载了它的电子书,当我深入了解 Swift 后,就彻底爱上了它,因为现在我们有了 FP,有更好的类型系统,它可以帮助我们编写更好的,更安全的代码,我认为它几乎在每个方面都胜过 Objective-C。

Greg:我很同意。之前很多人对 Objective-C 的观感并不好,就是因为它的语法比较奇怪,虽然我觉得没有什么,但我发现这对于很多人来说还是很重要的。而 Swift 没有这种缺点,它的语法很现代,人们会更愿意学习它。所以,我觉得 Swift 的优点之一还在于它让更多的开发者进入到 iOS 开发里来。

Chris:Swift 对于你来说更简单吗?

Greg:不能这么说,我觉得 Swift 会比 Objective-C 看上去简单,并且代码的可读性更好,而我认为这是很重要的,但实际上,它们都是 iOS 开发,难度都差不多,甚至因为 Swift 有更多的特性,有时候会更难一些,看上去简单但实际上更难,这的确是一个难解的问题。

InfoQ:对于 Swift 的开源,您认为这次苹果是否足够开放?

Greg:是的,苹果的确更开放了,这是第一次苹果将它的项目管理都放在 Github 上,开发者能够在线的关注项目的进展。之前苹果每次发布了新版的 iOS,过几个月,扔出一堆代码说,Hi,这就是我们的开源代码,但现在开发者能够看到每一个 commit 的内容,看到哪些地方的代码修改了,并且能够参与 Swift 新版特性的讨论。

Chris:拿 Webkit 来说,因为它是继承自 KHTML,所以苹果不得不开源,但 Swift,是苹果自主决定来更开放的做这件事。我觉得 Swift 团队是的确关心这门语言,也关心语言的用户,并不是所有的团队都是这样,有的只是干他们必须做的工作,而 Swift 团队的动力来自于他们的激情。而且,我还有一个印象是 Swift 团队想让 Swift 扩展到更多的地方,而不仅仅是苹果的平台,开源也能够帮助它们达到这个目的。

InfoQ:Swift 还要多久成为 iOS 开发主流,是否还需要达成某些里程碑事件?

Greg:我知道 Swift 3 的目标之一是 ABI 的兼容性,一旦达成这个目标,Swift 3 开发的应用就可以向前兼容,甚至运行在 OS X 10.10 的系统上,这对于 Swift 来说是非常重要的。另外还有并发特性,现在的移动设备上多核已经很普遍,有了并发就可以更好的利用 CPU,对于 Swift 来说也将是一个里程碑。

Chris:我相信 Swift 会很快成为 iOS 主流开发语言,如果你去看看年轻的开发者,他们不喜欢写 Objective-C 代码,并且很多新加入的 iOS 开发者,他们首先学习的也肯定是 Swift,另外对于像我这样的人来说,我已经不写 Objective-C 了,虽然有很多朋友仍然在写,但他们的数量也越来越少。对于找工作,开发者想进入那些已经开始用 Swift 开发的公司,所以对于公司来说,要想找到有才能的开发者,他们必须尽快采用新技术。对于什么时间发生,我不知道一个确切的时间,但我知道会非常快。至于里程碑,我认为 Swift 仍需改进的一点是它的编译时间,与 Objective-C 相比太慢了,如果改进之后,Objective-C 开发者再也不能用它当做拒绝 Swift 的借口了。另外也许当某个 WWDC 上的 Session 全部都是 Swift 相关的,这应该也能算做一个里程碑。

Greg:我还想到一个就是,什么时候苹果能够推出一个 Swift 独有的框架,本身用 Swift 编写,并且你只能用 Swift 来调用它,这应该也算一个巨大的里程碑事件。到了这一步,Objective-C 才真算是渐渐推出历史舞台吧,因为你想要进行新的开发,使用新的特性,你就必须用 Swift。不过目前的话,苹果还是宣传 Objective-C 不会离开,能够用在任何地方,所以且让我们期待这一天的到来。

2016-03-28 19:002606
用户头像

发布了 164 篇内容, 共 109.6 次阅读, 收获喜欢 392 次。

关注

评论

发布
暂无评论
发现更多内容

“开源软件供应链点亮计划-暑期2020”公布结果 基于ChubaoFS开发的项目获得最佳质量奖

京东科技开发者

大数据 开源 云原生

谈谈敏捷开发概念和迭代开发方案

Learun

敏捷开发

分库分表的 9种分布式主键ID 生成方案,挺全乎的

程序员小富

分库分表 Java 分布式

移动安全加固助力 App 实现全面、有效的安全防护

蚂蚁集团移动开发平台 mPaaS

安全攻防 App风险 mPaaS

如何实现后台管理系统的权限路由和权限菜单

徐小夕

Java 大前端 编辑器 H5 数据可视化

帮助企业摆脱困境,名企归乡工程师:能成功全靠有它!

Philips

敏捷开发

浅谈API网关(API Gateway)如何承载API经济生态链

华为云开发者联盟

API 网关

LeetCode题解:77. 组合,递归回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座

华章IT

数据库 postgresql

Apache DolphinScheduler 是如何走进Apache的

代立冬

大数据 数据湖调度 DolphinScheduler Apache DolphinScheduler

go-zero如何追踪你的请求链路

万俊峰Kevin

Trace microservice Go 语言

嗯,查询滑动窗口最大值的这4种方法不错...

王磊

Java 数据结构和算法

揭秘在召唤师峡谷中移动路径选择逻辑?

华为云开发者联盟

算法 地图 最短路径

架构训练营 - 第7周课后作业 - 学习总结

Pudding

会展云技术解读 | 面对突发事故,APP如何做好崩溃分析与性能监控?

京东科技开发者

云计算 云服务

每周一看:16份文档资料,程序员软硬实力全概览,总有一个适合你

小Q

Java 学习 程序员 架构 面试

【云小课】版本管理发展史之Git+——代码托管

华为云开发者联盟

git 代码管理 托管

接口测试如何在post请求中传递文件

测试人生路

接口测试

天啦撸!打印日志竟然只晓得 Log4j?

沉默王二

Java 日志 log4j

阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版

阿里云基础软件团队

内核

技术分享:WebAssembly能否重新定义前端开发模式?

葡萄城技术团队

webassembly

重磅解读:K8s Cluster Autoscaler模块及对应华为云插件Deep Dive

华为云开发者联盟

容器 k8s 服务

解决大中型浏览器(Chrome)插件开发痛点:自定义热更新方案——2.基于双缓存更新功能模块

梁龙先森

Java chrome 大前端 浏览器 技术方案

【运维思考】如何做好云上运维服务?

嘉为蓝鲸

云计算 运维 数字化转型 数据中心 云服务

简析低代码开发与传统开发的区别与优势

Marilyn

敏捷开发 低代码

【涂鸦物联网足迹】API及SDK介绍

IoT云工坊

软件开发 物联网 API sdk 云平台

mongodb 源码实现系列 - 网络传输层模块实现三

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 分布式 高性能 分布式数据库mongodb

终于啃完了这份Java核心原理+框架“面试圣经”,成功五面上岸美团

Java架构追梦

Java 架构 面试 微服务 框架开发

《Python:Python编程简介:计算机编程和机器学习入门指南》

计算机与AI

Python

医疗界“最强大脑”落户杭州!阿里巴巴联合浙大一院共同打造

互联网

架构师训练营 - 第 7 周课后作业(1 期)

Pudding

专访Chris与Greg:国外iOS大牛的分享经验,以及如何看待Swift?_移动_徐川_InfoQ精选文章