GitHub对于广大的开发者来说已经不陌生了,GitHub于2008年4月10日正式发布,相比始于1999年的SourceForge和2005年的GoogleCode,GitHub算是后来者居上。作为一个面向开源及私有软件项目的托管平台,且只支持Git作为唯一的版本库格式进行托管,GitHub的名字由此而来。
今天我们采访到了GitHub的元老工程师Zach Holman,之前的文章中我们多次从他的博客中了解到关于GitHub的知识。这一回,我们把自己的疑问抛给了他。
提问:听说在GitHub大家的工作时间十分弹性化,请问你们那里的工作氛围是怎么样的?
Zach:这完全取决于个人,我们希望员工能够更好地创造出自己的价值,所以对他们在工作时间上的限制几乎没有。我们这儿有大量的“夜猫子”,每天都工作到很晚,或许他们喜欢在夜深人静的时候办公吧。当然,我们也有一些“早起的鸟儿”。他们很早来到公司,把晚上留给自己的家人,享受着工作之外的生活。经过这些弹性的工作时间设置,我们发现了一个规律:强制员工在固定时间工作的效果远远没有弹性工作时间的效果好。
从工作地点来说,有些人在家工作效率反而高,有些人编程的时候必须在公司做,其他地方都无法使他们专心致志。有些人在旧金山,剩下的人分布在世界各地。我们想让员工快乐地工作,他们觉得什么样的工作环境***,我们就为他们提供什么样的工作环境。在回复你的时候,我们公司正在搬家呢,给你看一下搬家后的工作环境吧。
提问:你们平常都在讨论什么话题?
Zach:我们讨论很多的问题,例如我们在工作中会常常讨论与Git有关的问题,和不同版本控制的问题,除此之外我们时不时还会讨论一些创业公司、编程语言和政治问题。原来我们的公司有50多人,现在已经有200人了,所以我们的话题现在更多了。
提问:你在自己的文章中说开源“就是奶昔和海象充斥在一起的大型游泳池”,这是什么意思?
Zach:噢,哈哈。从表面的意思来说,就是想和大家开个玩笑,之所以这么说是想告诉大家开源的世界应该要充满欢笑。我们所有人都从开源中得到很多营养,但最重要的是你能认识到自己敲写出的代码、完成的项目能够具有创造性、故事性和趣味性。有些时候,你在闲暇之余做出的一些看似愚蠢的行为恰恰让你更了解自己,有时还能误打误撞,学到新的语言和一些新的技术。
提问:你是Gitbub的元老级工程师,直到现在你们遇到过的***的困难是什么?怎么去克服的?
Zach:我认为***的困难就是Scaling(大数据量、吞吐量)的问题。面对上百万的用户,Scaling对谁来说都是个棘手的问题。和其他网站不一样,我们***的挑战就是如何又快又准地从代码库里向用户提供数据。我们具体的改进,大家可以在libgit2里面看到,libgit2是一个开源的、跨平台的、速度极快的Git应用,我们在慢慢地对其进行着更迭。
提问:有人说GiHhub的出现标志着开源翻开了新的一页,你怎么看?
Zach:我不同意。在最开始我来到GitHub的时候,我就清晰地意识到,GitHub将来的一切成就和功绩不是针对技术,而是针对人。大家因为GitHub可以更加紧密地工作,这是非常重要的的一部分。简单来说,代码就在那里,真正改变一切的不是代码,而是由代码做出来的产品。
提问:谈到了GitHub将大家聚在了一起,现在的GitHub的社交性越来越强了,在这方面有没有计划呢?
Zach:自始至终我们都把这件事放在心上,管理好代码的GitHub仍然不够***,想要达到***就需要添加出一些有趣的新功能,这也能帮助开发者更好地编写代码。
提问:你见过开源之父Linus Torvalds么?对他有什么印象?
Zach:我本人没有跟Linus Torvalds说过话,我的其他同事跟他进行过简短的交流。Linus Torvalds绝对是个天才,他在开源方面对整个世界做出了贡献,这也使得GitHub和整个开源社区走到了今天,前途一片光明。Linus Torvalds人很好,在我们创业的路上,他向了我们提出了许多宝贵的意见。现如今他也入住了GitHub,这真是太***了。
提问:老美对“斯诺登事件”怎么看的?愿意聊聊么?哈哈
Zach:围绕着斯诺登和他揭露真相的这些事情简直是太!疯!狂!了。在旧金山,这种事情每天都会有成百上千的人在不同媒介之间进行讨论,讨论的核心无外乎就是如何在民主和国家安全这两者之间找到一个平衡点。我希望这件事情产生的效应持续时间越长越好,***人们在几个月,甚至是几年之后都不要忘记这件事情。
提问:GitHub上的用户分布有什么特点?从年龄角度、性别、专业分布,中国开发者的比例有多少呢?
Zach:从我这里得到数据,我只能说,在未来的两周内,中国将成为在GitHub流量第二大的国家。
提问:企业级用户对于项目管理的态度如何?
Zach:在最开始,我们认为一些大公司在使用Git上会有些犹豫(或许是因为分布式管理控制的原因)。但是过了两三年,我们开始看到有许多大型公司都把他们的技术开发团队迁移到了***的版本控制系统中。看到这么多不同的开发方法感觉特别有意思。Git可以支持结构化的工作流,还可以支持更灵活的工作流。
提问:你听到的用户最多的反馈是什么?GitHub对于用户来说意味着什么?
Zach:让我印象深刻的是用户觉得拥有了GitHub之后减少了工作中的一些困扰。举个例子,开发者原来花费大量的时间研究如何将复杂的分支进行合并,现在他们只需要专注做好他们的产品就好了。久而久之,使用GitHub的人们如此专注地工作以至于他们忘了整个GitHub的存在,一切的编程、设计和计划变得十分纯粹,这是我们最希望看到的结果。
提问:教育用户是如何使用GitHub的?对他们有没有什么特殊的技术支持?为什么要发展教育用户?学生们的反馈如何?
Zach:我们在GitHub上看到了许多学生,特别是近几年。我们为教育用户提供了一个免费的私人存储库,这在学生中的反响很好。其实这是一件特别有意义的事情,当你大学毕业之后,等待着你的是一个相对真实的世界。如果你已经提前学会了如何在这个新世界中使用工具,无需过度的话,何乐而不为呢?
提问:你对中国的编程环境的***印象是什么?
Zach:提起中国,我总是对这个国家的编程环境很感兴趣。我知道在中国有很多天才在编程和数据分析上有着很高的造诣,我希望能在GitHub中看到越来越多的中国程序员。事实上, 据我所知,有一些名声非常好的项目都是来自中国的。
我从来没来过中国,不过十分巧合的是,我已经计划在今年十月份来到中国参加一年一度的Ruby大会,迫不及待地想跟大家见面了。