譯者/ 李松峰
圖靈QA部主任。2006年起投身翻譯,出版過譯著20余部,包括《JavaScript高級程序設(shè)計》、《簡約至上》等暢銷書。2008年進(jìn)入出版業(yè),從事技術(shù)圖書編輯和審稿工作。
From: Linus Torvalds (torvalds (at) linux-foundation.org)
Subject: Re: [RFC] Convert builin-mailinfo.c to use The Better String Library.
Newsgroups: gmane.comp.version-control.git
Date: 2007-09-06 17:50:28 GMT (4 years, 8 weeks, 1 day, 20 hours and 54 minutes ago)
2007-9-5,周三,Dmitry Kakurin 寫道:
>從第一次看到Git的源代碼起,就有兩件事如鯁在喉
>1.純C而沒有C++。不知道為啥。
>2.別提可移植,那都是胡說。
你才是胡說八道。
C++是一門很惡心的語言。但更惡心的還是有一群下三濫的程序員在用它,結(jié)果弄出來的都是一堆堆的排泄物。坦率地說,就憑可以把那些C++蠢貨擋在門外這一條,就足以證明應(yīng)該使用C。
換句話說:使用C證明我們神經(jīng)沒有毛病。我知道Miles Bader曾開玩笑說要“氣死你”,但實(shí)際上是當(dāng)真的。我已經(jīng)想清楚了,不管是誰,只要他認(rèn)為這個項(xiàng)目使用C++會比使用C更好,我都更想“呸”他一口,好讓他滾得遠(yuǎn)遠(yuǎn)兒地,少來干擾我的項(xiàng)目。
C++會導(dǎo)致最最差勁的設(shè)計??偸且褂肧TL、Boost等等這些臭狗屎,還美其名曰“精巧”的語言庫,倒是“幫”你編程了,可是卻會導(dǎo)致:
這些狗屎歇菜時無窮無盡的煩惱(說什么STL,特別是Boost既穩(wěn)定又好移植,全都是胡扯,胡扯好玩嗎?)
低效的抽象編程模型,而且兩年后你才發(fā)現(xiàn)某些抽象并不是很有效率,可你的全部代碼都是在那些對象模型上構(gòu)建起來的,非重寫代碼不能解決問題。
這么說吧,要想弄出一個不錯的、高效的、系統(tǒng)級的而且可移植的C++方案,唯一的結(jié)果就是把自己限制住,而這些在C里面都可以信手拈來。把項(xiàng)目限制用C來開發(fā),意味人們不會搞砸它,也意味著很多程序員實(shí)際上都理解底層的問題,不會用白癡的“對象模型”把問題搞得無解。
所以真的很抱歉,但對于Git來說,效率一直都是主要目標(biāo),C++的“優(yōu)勢”只能釀成巨大的錯誤。而讓我們有機(jī)會對那些看不到這一點(diǎn)的人吐唾沫只不過是它的另一個很大的附加優(yōu)勢。
如果你想要一個C++寫的VCS,試試Monotone。真的,它使用“真正的數(shù)據(jù)庫”,用了很多“出色的面向?qū)ο髱臁保€用了“出色的C++抽象”。恕我直言,這些設(shè)計決策雖然可以讓那些CS迷們神魂顛倒,但結(jié)果必然是極其惡心、難以維護(hù)的大雜燴。
但是,我相信你一定會選它而不是Git。
Linus
原文鏈接:http://article.gmane.org/gmane.comp.version-control.git/57918