图拉鼎:和 Swift 亲密接触的这半个月…

简介:

又是半个月没更新 Blog 了,这段时间主要在和 Swift 打交道。具体的说,主要是两件事情:

首先,在六月末时,开源中国的红薯约我在杭州的源创会上讲一个关于 Swift 的话题,尽管我完全对该话题陌生,但还是硬着头皮接了下来;其次,我的微博客户端这个项目遇到了困难,我已经不下十次拿起来,又放下去,最后我做了一个艰难的决定——用 Swift 重写该项目。当然,还有第三重意义,那就是尝鲜。就这样,我和 Swift 的亲密接触正式开始了…

于是在这半个月,我趁着用 Swift 重写微博项目的机会,一边学习 Swift,一边为演讲准备具体内容。这半个月可以说过的很戏剧,有苦有乐。

因为 Swift 实在是太另类了——相对于 Objective-C,以致于我刚刚开始用它写代码的时候,痛苦无比,几小时才憋出几十行,我常常怀疑是不是智商不够了,加上还要在活动上演讲,我都考 虑是不是得取消这个安排。后来我不断安慰自己:一、这是适应性问题;二、这是 Beta 的问题…就这样,我挺过了前三天,然后终于开始慢慢上手了。

用 Swift 写了一周左右,算是慢慢地找回了一点感觉,尽管因为 Beta 的原因,还是充满各种莫名的问题,但总算是可以进行下去了。另外,得益于实际编程过程中的思考和理解,我也准备好了活动的演讲内容,并且顺利地在上个周六 (7月19日)在杭州网易进行的源创会上完成了《初探 Swift》的这个演讲话题。

过去几年每年必定会有至少一次在上百位听众面前演讲的机会,当然都是讲的和 Linux、Ubuntu 和 Ubuntu Tweak 有关的话题。这次讲刚刚出炉的 Swift,讲这个自己还不熟悉的话题,算是一个很大的挑战。这次成功的讲演,让我对挑战未知的事物增加了更大的信心。希望今后还能在各种活动上讲自己不 熟悉的话题,每次都能有一个新的突破。

关于这次活动,还是看开源中国的具体报道吧《7月19日杭州源创会图文报道+主题PPT》,这里只引用一下他们拍的照片 :D

image

关于演讲本身值得一提的是,这是我第一次在演讲的过程中同时穿插了大量的 demo,也就是在 Playground 里写 Swift 代码。对于讲述一门语言的分享话题,如果只说不做,我觉得听众会听得云里雾里,于是我在三十分钟的演讲中插入了共 4 个 demo 来写代码。过程还算顺利,主要还是 Xcode 的 Playground 实在是太好用了,简直就是为了这种演示和教学准备的。不过由于对 Swift 还没有了如指掌,在演示过程中也遇到过一些小错误,好在都一一化解了。这种临场写代码的能力还是需要不断地练习。

比较重要的还有后来的提问环节。

大家问了一些都比较有实际意义的话题,比如 Swift 的出现意味着是不是可以不用 Objective-C, Swift 有什么优势,是不是更好学等等。在这里,我简单地总结一下吧。

关于 Swift 是不是会取代 Objective-C

根据之前我和同行的一些交流以及自己的一些感触,毫无疑问的是:Swift 的出现意味着 iOS / Mac 开发的门槛更高了,更具体的说:成为一个优秀 iOS / Mac 开发者的门槛更高了。因为即使 Apple 决定力推 Swift,但是经过这么多年发展的成熟的 Objective-C 生态圈不是那么容易会被撼动的,在可以预见的将来,三年到五年内,Swift 不会取代 Objective-C,顶多做到平起平坐。因而这个过渡时代,必须同时熟练掌握 Swift 和 Objective-C 将成为开发者的基本功。

关于 Swift 的优点

这是一个比较大的话题,现场我也是说,我对 Swift 的研究还比较浅,这次话题准备也主要是从小的几个特性着手,而这些特性基本都是围绕着「安全」出发的:比如变量必须初始化使用、Optional 是为了让使用空值更加安全、if 只能判断 LogicValue 也是为了更安全。

可以说,从语言的设计和限制上尽可能地尽少程序员常犯的错误是 Swift 的一个重要设计理念,这实现上会带来更多需要理解和掌握的概念,但根据我这几天的编写经历,我相信这还是值得的。

关于它的其他优点,是不是开发效率更高、运行效率也更高,由于我还是初学,暂时还没有深刻体会。

总之, 在 Swift 世界的探索就这样开始了。

这个世界的变化是如此之快,Beta 3 带来的变化还没有熟练,今天 Beta 4 又带来新的语言特性——Access Control 了。这个世界又是如此的充满激情,每天开源项目、周边作品都层出不穷…

未来 Swift 会发展的怎么样我无法预言,我是肯定会怀念这段时间和世界人民一起为 Swift 疯狂的日子的。

相关文章
|
11月前
|
数据可视化 搜索推荐 数据管理
干货满满!J 人电商团队圣诞季,哪 6 款办公软件能促进团队学习进步?
圣诞节期间,电商零售行业竞争激烈,J人特质的团队需借助高效办公软件优化流程、提升协作与个人能力。本文推荐6款可视化团队协作工具:板栗看板、Trello、Airtable、Asana、Miro和Notion。这些软件在任务管理、数据处理、创意激发等方面各具优势,帮助团队在圣诞季保持高效工作节奏,提升沟通效率,实现业务与个人成长双丰收。通过合理运用这些工具,J人团队能在激烈的市场竞争中脱颖而出,取得优异成绩。
186 4
|
Java API 数据安全/隐私保护
POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格……
POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格……
935 0
POI 导出 Excel:字体颜色、行列自适应、锁住、合并单元格……
|
SQL 运维 安全
基于web漏洞扫描及分析系统设计_kaic
随着信息技术的发展和网络应用在我国的普及,针对我国境内信息系统的恶意网络攻击也越来越多,并且随着黑客攻击技术的不断地更新,网络犯罪行为变得越来越难以应对,用户日常访问的网站是否安全对于普通网民而言难以辨别,保护人民不受不法侵害也是难上加难。如何识别网站的潜在危险性,以及网站出现安全性问题该如何防御,尽可能减少网站被攻击后造成的实际损失,是目前迫切需要解决的难题。 本文使用VMware虚拟机技术模拟真实的网络环境,使用渗透测试技术对模拟网络进行薄弱点测试信息收集、攻击测试等,再现了渗透测试的重要流程和技术方法。在对目标主机实施渗透测试时,会从系统层面和Web层面两个维度进行测试,扫描出存在的漏洞
|
弹性计算 大数据 测试技术
阿里云服务器价格表2023,云服务产品价格对比
阿里云服务器价格表2023,云服务产品价格对比,CPU内存配置可选2核2G、2核4G、2核8G、2核16G、4核4G、4核8G、4核16G、4核32G、8核8G、8核16G、8核32G、8核64G等配置,云服务器包括轻量应用服务器和云服务器ECS,ECS实例可选通用算力型u1、计算型c7、通用型g7和内存型r7实例
844 0
阿里巴巴开源的15个顶级Java项目
上个周末抽时间整理了一些阿里开源的一些 Java 开源项目,希望对大家有帮助!这篇文章收录的所有开源项目都是还在继续维护并且可以使用的。 虽然有部分项目不是那么”完美“,但是依然非常值得我们学习。 感谢阿里技术团队的小伙伴们为 Java 开源生态做的贡献!
|
缓存 安全 前端开发
|
弹性计算 安全 Linux
阿里云服务器ECS开启或关闭SELinux图文教程
SELinux提供支持访问控制的安全政策保护机制,Linux百科来以阿里云Linux服务器CentOS 7.2 64位操作系统为例
1176 0
阿里云服务器ECS开启或关闭SELinux图文教程
|
缓存 安全 前端开发
来来来,通用权限管理解决方案(上)
来来来,通用权限管理解决方案
580 0
来来来,通用权限管理解决方案(上)
|
Docker 容器
Docker社区版删除及离线安装
使用rpm包离线安装Docker社区版比较繁琐的是依赖包的下载,使用yum工具下载离线安装包可以简化这一操作
967 0
|
存储 运维 监控
SmartX:敏态、稳态兼顾,拓展超融合价值边界
SmartX:敏态、稳态兼顾,拓展超融合价值边界
773 0
SmartX:敏态、稳态兼顾,拓展超融合价值边界