你最深愛(ài)的編程語(yǔ)言其實(shí)很爛
我最近寫了幾篇比較嚴(yán)肅的博客,是關(guān)于一些沮喪的事情,結(jié)果我開(kāi)始有些憂郁。很嚴(yán)重。所以,我想應(yīng)該說(shuō)些比較輕松的事情。我要做的就是數(shù)落大家最喜歡的編程語(yǔ)言。你會(huì)問(wèn)我為什么,為什么要搞這種惡作劇?親愛(ài)的朋友,我能想出三種理由。
1. 我無(wú)聊,沒(méi)有更好的事情去做。
2. 我自命不凡,坐在家里,深知即使我侮辱了你編程最喜歡用的語(yǔ)言,你也拿我沒(méi)折。除非你能發(fā)明出這樣的東西:
3. 我忘了第三個(gè)理由是什么,但我敢肯定,那一定是一個(gè)非常有趣的理由。
好了,不再浪費(fèi)口舌,你最深愛(ài)的編程語(yǔ)言其實(shí)很爛。
1. C語(yǔ)言 哦,你聽(tīng)說(shuō)學(xué)習(xí)C語(yǔ)言是必須的,因?yàn)榇髱烰oel Spolsky這樣告訴你的。他說(shuō)了這種語(yǔ)言是最優(yōu)秀的,最能體現(xiàn)編程語(yǔ)言的本質(zhì),等等等等。然而,當(dāng)你花了20個(gè)小時(shí)調(diào)試一個(gè)弱者的bug,卻發(fā)現(xiàn)是某個(gè)鳥人忘了檢查存儲(chǔ)的指針。請(qǐng)告訴我,最有本質(zhì)特色的編程語(yǔ)言有多好?或者花10天時(shí)間在百萬(wàn)個(gè)函數(shù)中找出哪一個(gè)沒(méi)有釋放內(nèi)存。哦,沒(méi)錯(cuò),我的老弟,你簡(jiǎn)直愛(ài)死C語(yǔ)言了。
讓我來(lái)告訴你用C語(yǔ)言編程時(shí)的感覺(jué):把你的手握成拳頭。對(duì),握緊。現(xiàn)在使勁揍自己。恭喜,你現(xiàn)在就是一名C語(yǔ)言程序員了。
2. C++ 讓我來(lái)給你開(kāi)開(kāi)竅。你喜歡上一種囊括所有C語(yǔ)言的丑陋的語(yǔ)言,而且在此之上還增加了自己的丑陋。就如狗屎上再堆一層狗屎,每過(guò)幾年就會(huì)增加一層。
10行C++代碼的編譯要用去45分鐘,而拋出的錯(cuò)誤信息比《指環(huán)王》戒指上的那一行字還要扼要。
“甘道夫17年后回來(lái)。‘我一直在研究大量的古文獻(xiàn),’他說(shuō)。‘答案很明顯。這是一個(gè)模板錯(cuò)誤。但我不會(huì)告訴你,因?yàn)檫@是一種很垃圾的語(yǔ)言,這種錯(cuò)誤不會(huì)重現(xiàn)’’”.
等一下,你在說(shuō)C++11嗎? 這就是它:
3. Java Hi,你好!我需要有人寫超級(jí)復(fù)雜而且超級(jí)冗余的代碼。我還希望我的虛擬機(jī)在打了最新的安全補(bǔ)丁后每隔一天崩潰一次。對(duì)于視窗程序,我需要無(wú)論在什么操作系統(tǒng)上都顯示一樣的屎難看。你說(shuō)你能幫助我?太好了!
4. C# 讓我來(lái)揭穿你。你不夠男人,沒(méi)法學(xué)C++,于是你不得不接受這個(gè)C++和Java的私生子。去寫你的視窗程序吧,你這個(gè)懦夫。你不知道所有的酷孩子都在用Linux嗎?
5. Visual Basic 像這樣一種既能阻止犯罪又能抓捕兇手的編程語(yǔ)言,我無(wú)言以對(duì)。
6. Lisp, Haskell以及其它函數(shù)式編程語(yǔ)言 所有的這些語(yǔ)言,沒(méi)有一個(gè)能有資格稱得上所謂的數(shù)學(xué)上的優(yōu)雅的函數(shù)式編程語(yǔ)言。至少其它類型的語(yǔ)言解決過(guò)真正的問(wèn)題。而Lisp/Haskell之流都活在一個(gè)幻想世界——帶著墨鏡,喝著美酒,寫著優(yōu)雅的代碼。他們永遠(yuǎn)都拿那些卡通式例子給人看。“你能寫出這么糾結(jié)的代碼例子嗎?Haskell就是比C語(yǔ)言好。”你說(shuō)的很對(duì),老爺爺。
還有,閱讀《計(jì)算機(jī)程序的構(gòu)造和解釋》去 和其它像這樣的大部頭計(jì)算機(jī)書籍沒(méi)有提高我的編程水平。即使閱《格雷的五十道陰影(50 shades of grey)》這樣的色情小說(shuō)或任何吸血鬼愛(ài)情小說(shuō)都比你看Scheme和Haskell書籍要學(xué)到更多的編程知識(shí)。當(dāng)當(dāng)網(wǎng) 看 | 去 亞馬遜 看
7. Delphi/Pascal 切。
8. Python 你看這篇博客需要有領(lǐng)導(dǎo)的批準(zhǔn)嗎?Python就像一種編程語(yǔ)言宗教。所有的東西都要用它開(kāi)發(fā)——先知這樣說(shuō)。否則我們都冷眼看你。
瞧瞧,這是邪教,卻假裝是一種編程語(yǔ)言。
9. Ruby 看看我!我是那種很酷的人的編程語(yǔ)言。買一杯咖啡,在星巴克坐8個(gè)小時(shí),上著免費(fèi)的wifi。大聲的談?wù)撝麄冇卸嗫帷?/p>
所有他們說(shuō)的話的主旨就是友好的做程序員。Ruby主要是用Rails的人群使用,他們很多根本不懂編程。嗨,ruby們!閉嘴少說(shuō)一分鐘行不行,讓其它人也說(shuō)幾句。
10. Perl Dudeyouaresuchamessylanguage, Isometimeswonderhowanyonewritesanythingwithyou. Ireallycan’tunderstandanycode.
11. PHP 你為什么會(huì)在這里?你是從讓所有Wordpress網(wǎng)站崩潰的事情中找到了一點(diǎn)空閑時(shí)間?你不是還有另外一個(gè)安全補(bǔ)丁要更新嗎?如果你還想讓代碼寫的更亂,相信Perl語(yǔ)言能幫你。
12. Javascript 如果你認(rèn)為JavaScript是一種編程語(yǔ)言,那估計(jì)你認(rèn)為HTML也是一種編程語(yǔ)言。去寫你的HTML代碼吧,孩子。
13. 任何在這里沒(méi)有提到的編程語(yǔ)言 你的編程語(yǔ)言如此的爛,我都不屑去寫它。
14. LolCode 和 Brainfuck 好啊好啊!終于有人知道如何寫代碼了。拍拍自己的背欣慰一下吧。
如果我還忘了什么語(yǔ)言,那請(qǐng)你在評(píng)論里糟蹋它吧。