专访梁杰:Swift或将取代Objective-C

发表于2014-06-20 08:5820208次阅读| 来源CSDN164 条评论| 作者钱曙光

摘要:北航的90后大学生梁杰(兼Swift语言开发者社区Swiftist.org管理员)用9天时间组织完成近670页的Swift语言文档翻译,那这位90后当时是为什么做这件事情呢?Swift语言吸引他的地方是什么?不妨看下这篇采访。

53a37d5c3cb6c.jpg

北航的90后大学生梁杰

在上周五笔者发表了一篇文章《唯快不破!90后大学生9天组织完成近670页的Swift语言文档翻译》,引起了大家的广泛讨论和关注,之后,联系到了这个北航的90后大学生梁杰(兼Swift语言开发者社区Swiftist.org管理员),对其进行了一个专访,一探这位90后大学生是谁,他对Swift语言又是怎样的理解以及了解翻译背后的故事等。

CSDN:请和大家介绍下你及开发经历。

梁杰:我接触计算机很早,大概小学二年级家里有了第一台计算机。不过真正开始接触技术是初中,偶然看到同学的一本***杂志,觉得很有意思,就开始自学。高中参加计算机竞赛,虽然没拿什么大奖不过算法和数据结构的基础还是不错的,大学学习了Python,觉得做网站很有意思,互联网上所有人都可以看到,很有成就感,所以就开始做网站。目前主要还在研究Python和JS,之后的话准备用空闲时间学一下iOS开发。

开发经历的话,我主要是做Python的,我极其讨厌C++和JAVA,写起来又臭又长,非常不爽。前端我也做,因为自己做网站嘛也没人给我写前端那我只能自己写了,写到现在慢慢兴趣也就上来了,所以以后主要想做web开发方面的工作,Python和JS我都想深入研究一下。

其他事情的话,做过学校MSTC(微软技术俱乐部)的技术部部长,给大家普及过GitHub、StackOverFlow和Google的重要性。

CSDN:你是如何一步步走上编程之路的?其中有什么特别的事情吗?

梁杰:对计算机感兴趣最早是在刚上小学的时候,大概是二年级时候家里买了一台电脑,当时自己对电脑很不了解,但是比较特别的一点是我会安装软件。其实在现在看来这是非常非常简单的事情,往往是一直点“Next”就行,但是在那个年代会安装软件已经是很了不起的一件事了,很多小朋友甚至父母的同事安装东西都会叫我去帮忙,这大概是我第一次因为计算机获得成就感。

当时并不懂编程,只是玩游戏。真正对编程感兴趣是在初中,初二的时候我的同桌拿了一本“***手册”到学校,我觉得很好奇就借过来看,记得很清楚第一篇文章是讲肉鸡的,虽然看了很多遍也没有看懂,但是我知道这个东西非常有意思。顺便说一句,这本书现在还在我家里放着,后来一直没有还给我同桌。

后来开始自己买***杂志,慢慢就对技术有了一个大概的了解,初中毕业的暑假自己学VBS,用按键精灵做了一个游戏辅助程序,当时还卖了1000块钱,非常开心。

高中之后由于自己本来就了解编程,学校恰好又在培训计算机竞赛,我就报了名,系统地学习了各种算法和数据结构。虽然后来只拿了省级二等奖,但是打下了比较好的基础。

实际上高二的时候我就决定大学要读计算机了,家里也没什么反对意见,所以后来出成绩之后就是根据专业挑学校,北大清华都去不了,就来北航了,倒是和我预计的差不多。

大学期间总体来说没怎么好好学习,主要在做自己的事情。

大一学会了Python和网页制作,大一结束的那个暑假我家人都在外地,我就叫了一个好朋友,我俩在我家窝了两周,搞出来了第一个网站。当时基本上就是从起床写代码写到半夜,中间饿了就出去吃个饭回来继续写,然后两周写完之后自己搞了个VPS、部署、上线。全都是从零开始,这之前我连域名怎么联系到IP都不懂,但是就靠Google把整个流程硬是搞定了。

之后就顺利多了,基本上一个学期会做一个小东西,虽然都是不入流的练手作品,但是水平还是在慢慢提升,最起码从开始的完全不能看变成了现在的勉强能看。

如果说特别的事,就是我很喜欢看书,来上学的时候带了一整箱书过来,大学期间也经常会买。关键是我这人买了书总想看,那么多书又没时间,怎么办呢,就上课看。基本上大学三年我很少有完整听完一节课的,80%的课都是去了就看书,看到下课走人。我觉得看书真的帮助非常大,即使不是看的很深很懂,也会对见识和眼界有很大帮助。我也不只是看计算机类的书,其他只要感兴趣的看,比如我看了资本论和国富论,虽然一半内容都看不懂,但是起码可以说几句剩余价值来蒙人了。

CSDN:你在不久前,你用九天的时间组织完成翻译了近670页的Swift语言文档,发起的原因是什么?这九天,你的工作负荷应该不小吧?如何处理学习和做这件事情之间关系的?

梁杰:开始我翻译文档其实就是因为感兴趣,自己本身想学Swift,看到有的人翻译了开头部分,我觉得我也可以翻译,于是就去做。没想到的是会有这么多人加入进来,其实开始的时候我的计划就是自己边学边翻译,三个月怎么说也能搞定了,没想到这么快,大家真的很有热情。

翻译那几天确实压力比较大, 前面几天还好,只是占用了其他事情的时间,每天要和大家交流讨论、合并内容,很难有大块的时间做其他事。后面几天就开始占用睡觉时间了……有时候比较困,但是有新PR(全称:Pull Request——GitHub上面给其他人贡献代码的方法)就得尽快合并,再讨论一会也就不早了。

其实翻译的过程中恰好赶上两场考试,不过都是专业课,我应付起来还算轻松,所以大部分时间还是放在翻译这件事上。比较幸运的是学期快结束了,课程比较少,所以我可以自由安排时间。

CSDN:Swift语言吸引你的地方是什么?

梁杰:Swift作为苹果发布的一款语言,从一开始就受到了极大的关注,目前来看苹果也对其寄予了比较大的期望,如果发展顺利的话以后取代Objective-C应该是问题不大。

Swift最大的特点就是上手容易,比Objective-C轻松很多,再加上它借鉴了很多种语言,其他语言的开发者要转到Swift阻力也小了不少,会看到不少熟悉的东西,比较亲切。

Swift有很多值得一提的新特性,比如增加了元组、字典,丰富了表达数据的方式;增加了闭包、下标语法、自动引用计数和泛型,增强了枚举、switch、扩展,不仅提高了开发的能力也提高了开发的效率。动态语言的特点就是条条大路通罗马,自由度非常高,现在Swift也在一定程度上做到了这一点,你可以选择多种方式来完成一个任务。

不过我觉得Swift最吸引我的地方就是他的设计思想。微博上很多人说Swift用起来非常随意非常舒服,其实我觉得这只是表面,Swift的核心还是很严格的。比如说类型转换必须显示转换,比C还要严格。但是在严格的基础上Swift尽可能得让语法变得灵活,这才是最牛的,很多人提到的 names.sort(>) 这个排序方法,看起来完全不像静态语言的写法,这就是他的灵活性。

优秀的静态语言和优秀的动态语言都不在少数,但是能把两者结合起来的很少。Swift选择的是以静态语言为核心,包裹一层动态的外衣,目前看来可行性比较高,不过具体怎么样还是要看实际的发展了。

CSDN:听说你现在也在学Swift语言,有什么心得和体会可分享?

梁杰:我觉得Swift并不像表面看起来那么好学,就像我前面说的,Swift的核心是非常严格的,它从根本上杜绝了你犯错误的可能性,让你全部照规矩来,在这个基础上才是灵活。所以如果你不搞懂那些限制,只是去学语法糖,那写起来是非常痛苦的,错都不知道错在哪。

另一点就是Swift目前来说还是无法单独使用的,如果做实用的程序还是要结合Objective-C,所以之前没有iOS开发经验的人可能除了Swift还需要了解一些OC的东西,起码你要知道怎么去调用库。

CSDN:你们翻译组的情况是怎样的?有多少人参加以及大概都是些什么人?

梁杰:翻译组其实是很松散的,参与翻译的大概有20多人,大家完全是在网上认识,有学生有工程师有创业者。说得夸张点就是因为同样的梦想走在一起,一起努力把这个事做成。其实目前来说仍然很松散,大家本质上都是程序员,不是翻译,所以翻译只是作为业余活动来做,全凭兴趣。

我们翻译组成员互相之间完全不认识,不知道名字,不知道职业,不知道年龄,甚至都不知道性别,但是大家被同一个东西吸引,为同一件事付出,真的让我觉得很感动。虽然只有短短9天,但是就像很多小清新爱说的那样,这段旅程有你们陪伴,我觉得很知足很充实。或许下个月我们就想不起来彼此的ID,但是我想,即使再过很久很久,那9天的并肩作战仍然会铭记在每个人心中。

CSDN:在网络上,有很多人欣赏你们的开源协作形式,期间有什么困难以及如何克服的?

梁杰:主要的困难就是在保持大家热情的同时控制进度。一开始大家都是很有热情的,但是真正开始翻译的时候热情就会慢慢被消耗,如果不能保持大家的热情的话,很快就没有动力了。虽然九天看起来很短,但是在这段时间中仅凭热情和兴趣一直做一件事也是很难的。克服方法嘛其实也很简单,就是沟通。

具体的我主要做两件事:

  • 一件是控制进度,就是随时和大家保持联系,让每个人都知道当前的进度以及我们的目标;

  • 另一件就是画大饼,保持大家的热情。沟通在开源项目中非常重要,因为本来就是没有上下级之分的,想做成事必须要调动起来大家的积极性。

CSDN:通过这次的开源项目,你对开源怎么看?

梁杰:我觉得开源是一把双刃剑,用的好可以非常有效地激发参与者的潜力,达到1+1>2的效果,但是用得不好就可能会白白浪费大家的时间精力,最后不欢而散。能不能用好开源,客观来说有大环境,比如这次苹果发布Swift本身就是一个很好的机会,主观来说就是看参与者以及管理者的能力。所以我觉得开源本质上和创业挺像的,都是强调个人能力或者团队能力,都可以迅速放大你的成果,但是也可能是迅速失败。

开源的大项目也非常多,但是需要注意到,这些大项目背后都是有完整的团队在管理,而且也有很多大公司的影子。所以如果要做好一个开源项目,尤其是多人参与的开源项目,投入远比想象的要多。

CSDN:另外,网上也有一部分人对翻译质量提出质疑,你在进度和质量之间你是如何把控的?后续又做了什么事情吗?

梁杰:发布之前主要是注重速度,我个人对于质量和速度的看法很简单:没有速度质量根本无从谈起。谈质量的前提是有东西,有东西的前提是速度快,大家的热情都是有限的,如果在热情消耗完之前无法把整个项目做完的话,那可能就永远做不完了。我觉得翻译这个事和写书类似,都是要先把东西拿出来再去精雕细琢,应该没有哪本书是写一段校对一段写一段校对一段这么写出来的吧?所以我们第一阶段注重速度。但是翻译完成后就要注重质量,这也是我们从发布到现在一直在做的事,关注的人越来越多,错误也更容易被发现,我非常欢迎大家挑刺,只有不断挑刺才能不断拔刺,我们一起来把这个项目做到完美。

CSDN:在翻译Swift语言文档后,听说有人(顾伶磊)找你翻译Voiceover的开发者文档(指导开发者开发无障碍App的文档),能否简单介绍下这个事情,以及目前遇到的困难。

梁杰:这个事情有一个小插曲,其实第一个找我的人并不是顾伶磊,是persist点,由于我当时选错了文档,顾伶磊提醒我说应该翻译的是另一个。

这个事比较特殊,翻译完成后本来我是不准备继续做了,因为我毕竟是程序员嘛,天天翻译也不是个事。不过有个朋友在微博上给我发私信说希望我翻译一下voiceover的开发文档,因为现在国内的App对无障碍使用的支持非常差。我觉得这个事是个大事,我也想贡献一点力量,所以就继续组织翻译这个文档。这个文档内容并不多,不过认领的比较慢,可能是大家对这个不感兴趣吧,好在现在已经被认领完了。

做这个事主要是希望能引起国内开发者对于无障碍App的重视,从技术层面来说开发无障碍App并不难,难就难在怎么让开发者有动力去开发无障碍App。我觉得这个可能需要业界来一起努力,慢慢营造一种氛围,这样才能从根本上解决这个问题。

CSDN:回忆这段翻译Swift语言文档经历,你最大的感悟是什么?

梁杰:有三点吧。第一点就是团队协作的力量太大了,只要有激情,真的是没有做不成的事。第二点就是沟通非常重要,在开源项目中沟通的效果完全可以影响项目的成败。第三点就是苹果真是太牛了,发布一个语言全世界都为之疯狂,我想在编程预言界应该是前无古人了。

CSDN:你对未来有着怎样的规划和期待?

梁杰:翻译的话我们有机会会继续做的,群里人不少,不过最近我可能不会再组织了,真的是精力不太够,很多事要做。我个人的话,就是准备深入学习一些技术,争取能在简历里写上“熟练掌握”(当然这辈子估计都用不上“精通”了),未来应该还是会从事Web开发方面的工作,如果iOS学会了也可能去搞iOS开发,看缘分吧。

最后我要感谢一下所有参与翻译、校对的朋友,没有大家的努力这个项目根本不可能完成;还要感谢那些帮忙转发、Star、fork的朋友,支撑我们走下来的动力之一就是那些Star,有了Star就好像有了责任,有了责任我们就一定要把这件事做成、做好。

梁杰的联系方式:

Email: lj925184928@gmail.com

Sina微博:@梁杰_numbbbbb


目前,梁杰在翻译Voiceover的开发者文档(指导开发者开发无障碍App的文档),如果你感兴趣,不妨通过上面的联系方式参与到这项公益项目中,为视障者开发者做出自己的一份贡献。