速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

专访 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:002536
用户头像

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

关注

评论

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

蓝易云:当云服务器频繁被暴力破解时的防护措施有哪些?

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ECS

2023年,小游戏分发平台的机遇与挑战

没有用户名丶

分布式架构完结篇

亮哥的成长三板斧

架构 分布式架构

轻量应用服务器到底有多好?华为云云耀云服务器L实例来告诉你

轶天下事

华为云云耀云服务器实例L:为企业提供安全可靠的轻量应用服务器架构

平平无奇爱好科技

轻量级云服务器推荐,华为云云耀L实例助你一臂之力

平平无奇爱好科技

多重安全防护加持,华为云828营销季为中小企业构建上云安全感

平平无奇爱好科技

mac电脑录屏截图标注首选 CleanShot X 最新激活版

胖墩儿不胖y

Mac软件 截图软件 截图工具 屏幕截图软件

Mac端电脑风扇控制 Macs Fan Control Pro激活中文版

mac大玩家j

电脑风扇控制软件 风扇转速控制 好用的电脑风扇软件

视频剪辑中花式抠图的代码实操与案例详述

阿里云CloudImagine

云计算 阿里云

微服务架构简要剖析

亮哥的成长三板斧

架构 分布式 微服务

数据通信网络之使用 eNSP 组网

timerring

数据通信网络

为什么选择华为云云耀云服务器L实例作为轻量应用服务器?

轶天下事

蓝易云:RabbitMQ安装、端口修改、基本操作详解!

百度搜索:蓝易云

云计算 Linux 运维 RabbitMQ 云服务器

七种 BeanDefinition,各显其能!

江南一点雨

Java spring

接网线怎么保留了568B线序

小齐写代码

WorkPlus Meet | 私有化部署视频会议系统,实现安全高效跨屏协作的利器

WorkPlus

快速试错01-重新理解低成本创业

亮哥的成长三板斧

精益创业

轻量应用服务器怎么样?云耀云服务器L实例值得入手吗?

轶天下事

华为云云耀云服务器L实例:中小企业和开发者的云端伙伴

平平无奇爱好科技

ARTS 打卡第 29 天

自由

ARTS 打卡计划

混合应用前端框架HybridApp篇

没有用户名丶

时序数据库 TDengine 官网全新上线,四大亮点抢先看

TDengine

tdengine 时序数据库 工业互联网

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