大神程序員,夜夜coding到天明?Python之父晝伏夜出,PHP創(chuàng)始人24小時(shí)都在線
“本文經(jīng)AI新媒體量子位(公眾號(hào) ID: QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處”
大神程序員,夜夜coding到天明?
有位名叫Ivan Bessarabov (簡稱“伊萬”) 的好事者,剛剛統(tǒng)計(jì)了各路大佬的代碼提交 (git commit) 時(shí)間分布。
包括Linux之父,Python之父,Go語言的作者……
伊萬考慮了時(shí)區(qū),并把多人合作提交的代碼踢出去沒算。
結(jié)果很有意思,發(fā)現(xiàn)了幾個(gè)不同的物種:正常人類,夜行獸,還有……永動(dòng)機(jī)。
這引起了網(wǎng)友的熱烈討論,Hacker News熱度已經(jīng)超過600點(diǎn):
正常人類
正常人類通常在白天工作。
然而在程序員大佬中,這個(gè)物種并不常見。
Go語言的作者Rob Pike看上去算是個(gè)非常正常的人類:
(第一列是時(shí)間,第二列是代碼行數(shù)。)
Go項(xiàng)目的repo顯示,Rob的工作時(shí)間集中在上午9點(diǎn)到下午5點(diǎn)之間,朝九晚五,非常健康。
雖然一天就睡5個(gè)小時(shí),似乎業(yè)余時(shí)間也都在coding吧,但總之,組織鑒定他是個(gè)正常人類!
下面這位“正常人類”,畫風(fēng)就開始有點(diǎn)不一樣了:
這來自Linux之父Linus Torvalds:
白天工作,沒問題。但是這位大神的代碼從早上7點(diǎn)就開始有噴發(fā)之勢,這個(gè)勁頭幾乎能持續(xù)到晚上八九點(diǎn)鐘。
睡眠時(shí)間比上面那一位又縮短了一個(gè)小時(shí),不算上發(fā)呆時(shí)間的話。
這簡直是正常人類里的戰(zhàn)斗機(jī)。
而根據(jù)網(wǎng)友爆料,Linus可能是被迫成為正常人類的,在他有孩子之前,他也是晝伏夜出的夜行生物。
還有的人的畫風(fēng)是這樣的:
這是FFmpeg的作者Fabrice Bellard在這個(gè)項(xiàng)目上的工作時(shí)間,真是越夜越開心啊。
令人好奇的是,這位大佬是會(huì)睡著睡著覺靈感突發(fā)蹦起來提交代碼的嗎……
夜行獸
說不上什么科學(xué)道理,但程序員大佬的身體構(gòu)造可能發(fā)生了什么詭秘變異。
他們中間夜行生物的比例似乎要高于正常人類。
比如像這樣:
這是LiveJournal的作者Brad Fitzpatrick在memcached項(xiàng)目上的提交。
大佬瘋狂熬了一宿,靈感噴涌而出,太陽當(dāng)空照的時(shí)候,他就滿意地去睡覺了。
Brad對Go語言也有代碼貢獻(xiàn),在這個(gè)項(xiàng)目上他的畫風(fēng)更加狂野了:
LLVM編譯器的作者Chris Lattner也是當(dāng)之無愧的夜行獸,他曾在蘋果和特斯拉工作,現(xiàn)在則加入了谷歌。
他的代碼提交時(shí)間長這樣:
別人都是朝九晚五,這位大概是晚九朝五吧……
研究了那么多大佬,伊萬小哥自然不會(huì)放過那位仁慈的獨(dú)裁者。Python之父Guido van Rossum同樣被戳上了夜行獸認(rèn)證。
這樣的代碼提交時(shí)間似乎在說:美好的一天從下午開始,夜晚才是真正的coding time!
至于夜行獸們?yōu)槭裁?4小時(shí)都在提交代碼,大概他們像貓一樣白天也想醒就醒吧……
永動(dòng)機(jī)
除了日行和夜行,還有一個(gè)物種叫白夜行,他們不止24小時(shí)提交代碼,且產(chǎn)能沒有重大波動(dòng)。
“世界上最好的語言”PHP的創(chuàng)始人Rasmus Lerdorf,便是一個(gè)優(yōu)秀的代表。
由于GitHub上找不到初版PHP,伊萬便統(tǒng)計(jì)了這位創(chuàng)始人在php-src項(xiàng)目上的提交時(shí)間:
看得出,越到晚上越是興奮,但白天體能也并沒有太多損耗。
不過這個(gè)物種里,還有產(chǎn)能更加強(qiáng)盛的個(gè)體。
下圖是兩個(gè)Web框架,和它們的作者,名叫Sebastian Riedel。
△ 都是基于Perl語言的框架
這是他在Mojolicious框架項(xiàng)目里的提交時(shí)間表,數(shù)字快要爆炸了:
高產(chǎn)的時(shí)段,依然集中在夜晚。
但即便是產(chǎn)能最低的早上8點(diǎn)和9點(diǎn)區(qū)間,也都超過了100行。
伊萬統(tǒng)計(jì)到這里,都不由地驚嘆:
這時(shí)間表是瘋了。好嫉妒他的生產(chǎn)力。
這樣看來,每個(gè)物種都有各自的戰(zhàn)斗機(jī)。
強(qiáng)大的戰(zhàn)斗力難分高下。
誰喜歡周末寫代碼?
伊萬的觀察結(jié)果,被著名夜行者之一、LLVM編譯器的作者Lattner翻了牌。
他提了個(gè)建議,說如果把工作日和周末分成兩個(gè)數(shù)據(jù)集來分析的話,可能會(huì)很有趣。
于是,伊萬就真的續(xù)了一篇。
因?yàn)橛形鍌€(gè)工作日,兩個(gè)休息日。如果每日產(chǎn)能平均分配,應(yīng)該是周中71.4%,周末28.6%。
那么,周末提交的比例超過28.6%的話,就表示更喜歡在周末寫代碼。反之,就是更傾向在工作日寫代碼。
結(jié)果,日行族的Linux之父Linus (19.3%) 和Go語言之父Pike (9.7%) ,都是工作日產(chǎn)能的更加豐厚。
可以理解,畢竟日出而作,日落而息,周中忙碌,周末休息,都是普通人眼里的自然規(guī)律。
夜行族便不同了,既有喜歡工作日的Python之父van Rossum (10.2%) ,也有喜歡周末提交代碼的LLVM編譯器作者Lattner (27.3%) 。
永動(dòng)機(jī)又如何呢?
PHP創(chuàng)始人Lerdorf,是所有被測的著名程序員里,周末提交比例最高的,達(dá)到了30.3%。
而永動(dòng)機(jī)中的戰(zhàn)斗機(jī)、兩個(gè)Web框架的作者Riedel,周末提交比例是26.2%。只是略低于26.8%。
總體來看,永動(dòng)機(jī)可能是最喜歡周末上班的一個(gè)物種。
質(zhì)疑之聲
那么問題來了。Hacker News討論版上,不到一天便涌來了187條評論,提出問題的也不少。
比如,頂樓是名叫Dahart的網(wǎng)友,他說不能輕易把提交時(shí)間等同于工作時(shí)間:
我都讓團(tuán)隊(duì)盡量避免在夜里、周末、或者快到的時(shí)候提交代碼,因?yàn)楹竺孢€有其他工作人員,需要這些代碼。至少有15年都是這樣過來的。
除此之外,推特網(wǎng)友@JDevlieghere還說,提交時(shí)間和git的機(jī)制有關(guān)系:
我自己跑了一下LLVM,然后發(fā)現(xiàn)代碼提交時(shí)間,延遲了幾個(gè)小時(shí)。
LLVM作者Lattner也附議了這個(gè)問題。
不過依然不可否認(rèn),代碼提交時(shí)間是個(gè)非常好的觀察角度。
One More Thing
獨(dú)樂樂不如眾樂樂,伊萬小哥開源了代碼,熱情邀請大家一起探秘大佬都是什么物種。
胖友們還等什么?快來解密一下國內(nèi)大佬coding time吧。
比如,聽說廣州程序員張小龍就喜歡深夜抽煙寫代碼,伴著音樂享受夜的溫柔,不知道現(xiàn)在是否還這樣……
代碼傳送門:
https://gist.github.com/bessarabov/674ea13c77fc8128f24b5e3f53b7f094
伊萬博客 (觀察結(jié)果) :
https://ivan.bessarabov.com/blog/famous-programmers-work-time