令人討厭的編程語(yǔ)言排行榜
為了避免引起語(yǔ)言之爭(zhēng),先聲明一下,這個(gè)榜單統(tǒng)計(jì)的是跨語(yǔ)言開發(fā)者最討厭的編程語(yǔ)言,比如你最喜歡使用A語(yǔ)言來(lái)編程,那么可能會(huì)對(duì)其他語(yǔ)言的某些特性看不慣。
這是一種很主觀的看法,上榜的語(yǔ)言不代表這個(gè)語(yǔ)言不好,只是說(shuō)明某些開發(fā)者不太喜歡這個(gè)語(yǔ)言中的某些特性而已。歡迎在評(píng)論中說(shuō)出你對(duì)某些語(yǔ)言的看法。
下面這個(gè)排名是根據(jù) Quora、Stack Overflow和Hacker News上相關(guān)帖子統(tǒng)計(jì)出來(lái)的。
10. Python
上榜理由:代碼縮進(jìn)是用來(lái)指定塊的結(jié)構(gòu),為什么不用括號(hào)或大括號(hào)呢?此外,大量使用冒號(hào)和下劃線,模塊、變量名沖突等。
如何避免:不要去Google、Yahoo或NASA工作
9. LabVIEW
LabVIEW是一種由美國(guó)國(guó)家儀器(NI)公司研制開發(fā)的、類似于C和BASIC開發(fā)環(huán)境,使用圖形化編輯語(yǔ)言G編寫程序,產(chǎn)生的程序是框圖的形式。
上榜理由:LabVIEW相當(dāng)抽象,以致于將簡(jiǎn)單的問(wèn)題變得極其復(fù)雜。這完全違背了其最初的目的。
如何避免:遠(yuǎn)離儀器控制類或工業(yè)自動(dòng)化類的編程工作。
8. JavaScript
上榜理由:區(qū)分大小寫,跨瀏覽器需要不同的實(shí)現(xiàn),缺乏調(diào)試功能(盡管可以使用Firebug)和奇怪的繼承規(guī)則。
如何避免:不要去當(dāng)Web開發(fā)人員。
7. Tcl
Tcl是一種腳本語(yǔ)言,最早稱為工具命令語(yǔ)言(Tool Command Language),但是目前已經(jīng)不是這個(gè)含義。由John Ousterhout創(chuàng)建,經(jīng)常被用于 快速原型開發(fā) RAD、腳本編程、GUI和測(cè)試等方面。
上榜理由:語(yǔ)法太簡(jiǎn)單了,缺乏指針,無(wú)法通過(guò)引用來(lái)傳遞;將數(shù)組存儲(chǔ)為字符串;可憐的list語(yǔ)義和混亂的變量范圍。
如何避免:不要去Cisco、AOL或CNET公司或任何AOLserver或OpenACS平臺(tái)的公司工作。
6. COBOL
COBOL(Common Business Oriented Langauge,面向商業(yè)的通用語(yǔ)言),又稱為企業(yè)管理語(yǔ)言、數(shù)據(jù)處理語(yǔ)言等,這是一種面向數(shù)據(jù)處理的、面向文件的、面向過(guò)程(POL)的高級(jí)編程語(yǔ)言,是一種功能很強(qiáng)而又極為冗長(zhǎng)的語(yǔ)言。
上榜理由:極其繁瑣的語(yǔ)法(目的是對(duì)非程序員可讀);版本之間不兼容;缺乏面向?qū)ο缶幊?、函?shù)和指針等特性。
如何避免:不要去 政府、金融領(lǐng)域或軍用企業(yè)工作。
5. C++
上榜理由:龐大的函數(shù)集;手動(dòng)內(nèi)存管理;編譯速度慢;事實(shí)上,它允許程序員在同一程序中同時(shí)使用面向?qū)ο蠛兔嫦蜻^(guò)程的編程模式。
如何避免:一般情況下,不要去Adobe、Google或游戲領(lǐng)域工作。
4. PHP
上榜理由:大量函數(shù)存在不一致的命名約定;安全漏洞;無(wú)法原生支持Unicode;經(jīng)常被混和在一些演示代碼(如HTML、CSS)中。
如何避免:如果你從事Web方面的工作,這是很難避免的。但是,對(duì)于初學(xué)者來(lái)說(shuō),可以不去Facebook工作,遠(yuǎn)離Wikimedia、Wordpress、Joomla和Drupal即可。
3. Java
上榜理由:語(yǔ)法冗長(zhǎng);慢;不容易傳遞函數(shù);API過(guò)度設(shè)計(jì);它能做的,其他語(yǔ)言也都能做,并且更加高效。
如何避免:不要去當(dāng)程序員,或不要使用Android SDK來(lái)開發(fā)任何應(yīng)用程序。
2. Perl
上榜理由:Perl中完成一件事有太多種方法,使得你很難去理解其他人編寫的代碼;太簡(jiǎn)潔,即使一段代碼實(shí)現(xiàn)的是最簡(jiǎn)單的事情,看起來(lái)也難以去閱讀、維護(hù)。
如何避免:不要去當(dāng)程序員。
1. Visual Basic
上榜理由:它的語(yǔ)法被認(rèn)為過(guò)于冗長(zhǎng)和陌生,需要?jiǎng)討B(tài)鏈接庫(kù)才能去運(yùn)行它的代碼;對(duì)于面向?qū)ο缶幊痰闹С趾苡邢?;事?shí)上,自從1998年以來(lái),微軟已經(jīng)不再提供正式支持了。
如何避免:避免為開發(fā)老舊的Windows應(yīng)用程序的公司工作。
另外一種統(tǒng)計(jì)方法
下 面這種方法是根據(jù)Github上托管的代碼庫(kù)統(tǒng)計(jì)出來(lái)的,開發(fā)者使用GitHub API來(lái)統(tǒng)計(jì)Github項(xiàng)目代碼中出現(xiàn)“WTF(What the f**k)”字符串的數(shù)量,來(lái)確定項(xiàng)目開發(fā)者對(duì)于某種語(yǔ)言的某些特性的討厭程度,可見C++比較令人討厭。(這種方法有些開玩笑的意味)

你是否討厭某些語(yǔ)言中的某些特性呢?歡迎在評(píng)論中說(shuō)出你的看法。
原文鏈接:http://www.itworld.com/big-data/374664/most-wtf-y-programming-languages