很顯然,軟件開(kāi)發(fā)領(lǐng)域中的程序員對(duì)編程語(yǔ)言最有發(fā)言權(quán)。一種語(yǔ)言可能是一些程序員的最愛(ài),但它同時(shí)也是另一些程序員的噩夢(mèng)。如果你在編程領(lǐng)域呆了一段時(shí) 間,你就遲早會(huì)發(fā)現(xiàn)有些語(yǔ)言由于古怪的語(yǔ)法、靈活性不夠(或過(guò)于靈活)、差勁的調(diào)試功能或其它原因讓你抓狂,甚至崩潰。根據(jù)程序員在 Quora,Stack Overflow和Hacker News這三大國(guó)外論壇上的討論,我們挑選了其中10大最讓程序員不爽的編程語(yǔ)言,并解釋了原因。下面就帶你具體看一看這個(gè)有趣的清單。
1. Visual Basic
語(yǔ)言介紹:這種語(yǔ)言和相應(yīng)的開(kāi)發(fā)環(huán)境通常是用來(lái)開(kāi)發(fā)Windows應(yīng)用程序(圖形界面),它是由微軟公司發(fā)明,對(duì)于初學(xué)者比較簡(jiǎn)單,可以將寫(xiě)代碼與使用圖形化和拖拽技術(shù)相結(jié)合。
程序員的吐槽:它的語(yǔ)法過(guò)于啰嗦和冗長(zhǎng),而且有些地方有些奇怪,它需要?jiǎng)討B(tài)鏈接庫(kù)執(zhí)行,而且基本上不支持面向?qū)ο箝_(kāi)發(fā)。自從1998年它就不再受到微軟的官方支持了。
2. Perl
語(yǔ)言介紹:Perl是一種高級(jí)的,用途廣泛的解釋型語(yǔ)言,它被形容為互聯(lián)網(wǎng)的管道膠帶。Perl被應(yīng)用在各個(gè)方面,從CGI腳本到系統(tǒng)和網(wǎng)絡(luò)的管理。
程序員的吐槽:對(duì)Perl最大爭(zhēng)議就在與它極大的靈活性和過(guò)度冗余的語(yǔ)法,它有著“只能寫(xiě)”的稱號(hào)(write-only language),代碼很難被其他人閱讀和維護(hù)。
3. Java
語(yǔ)言介紹:Java起初是一種被用在交互電視上的語(yǔ)言,逐漸成為最受歡迎的面向?qū)ο缶幊陶Z(yǔ)言之一。Java代碼被編譯為字節(jié)碼,然后由Java虛擬機(jī)解釋,所以它可以運(yùn)行在任意的平臺(tái)上(Write Once,Run Anywhere)。
程序員的吐槽:Java的語(yǔ)法有些冗長(zhǎng),運(yùn)行較慢,API有些被過(guò)度設(shè)計(jì)。很多其他語(yǔ)言實(shí)現(xiàn)相同的功能可以更高效。
4. PHP
語(yǔ)言介紹:PHP是在服務(wù)器端非常流行的一種解釋型腳本語(yǔ)言,可以動(dòng)態(tài)生成HTML頁(yè)面。它也可以單獨(dú)作為一種腳本語(yǔ)言應(yīng)用在多種操作系統(tǒng)上。
程序員的吐槽:它在很多功能上有不一致的命名規(guī)則,有一些安全漏洞,不天然支持Unicode,還有它經(jīng)常會(huì)和前端的HTML/CSS代碼混在一起。
5. C++
語(yǔ)言介紹:C++作為一種中級(jí)別的語(yǔ)言,被人們當(dāng)做是C的擴(kuò)展,支持面向?qū)ο缶幊?。如今它依然是非常流行的,并被各領(lǐng)域廣泛應(yīng)用。
程序員的吐槽:具有過(guò)大的特征集、需要手工管理內(nèi)存、編譯速度慢、在同一程序中有時(shí)需要在面向過(guò)程和面向?qū)ο箝g相互轉(zhuǎn)換。
6. COBOL
語(yǔ)言介紹:1959年,COBOL被指定設(shè)計(jì)為支持商業(yè)和政府管理的一門(mén)編程語(yǔ)言,它的全稱是Common Business-Oriented Language。
程序員的吐槽:超級(jí)冗長(zhǎng)的語(yǔ)法規(guī)則、版本間不相互兼容,而且在COBOL 2002版本以前不支持面向?qū)ο?、函?shù)和指針。
7. TCL
語(yǔ)言介紹:TCL(Tool Control Language)最早被稱為工具控制語(yǔ)言,逐漸發(fā)展成為一種多用途的腳本語(yǔ)言,被應(yīng)用到Web開(kāi)發(fā)、網(wǎng)絡(luò)管理和自動(dòng)測(cè)試上。
程序員的吐槽:TCL的規(guī)則過(guò)于簡(jiǎn)單了,沒(méi)有指針,所以它不支持參數(shù)傳遞。另外它的數(shù)組被存儲(chǔ)為字符串格式,在語(yǔ)義和變量作用域上都做的較差。
8. JavaScript
語(yǔ)言介紹:它是一種直譯式腳本語(yǔ)言,主要作為應(yīng)用在Web頁(yè)面上的客戶端腳本語(yǔ)言。它同時(shí)也可以執(zhí)行在服務(wù)端,作為一種內(nèi)嵌式腳本語(yǔ)言。
程序員的吐槽:JavaScript對(duì)大小寫(xiě)敏感,依賴于不同的瀏覽器,欠缺較強(qiáng)的調(diào)試能力,而且有著奇怪的繼承規(guī)則。
9. LabVIEW
語(yǔ)言介紹:它的全稱是Laboratory Virtual Instrument Engineering Workbench,使用的是圖形化編輯語(yǔ)言G編寫(xiě)程序,產(chǎn)生的程序是框圖的形式,被用于測(cè)量和控制系統(tǒng)。
程序員的吐槽:GUI編程會(huì)把那些非常簡(jiǎn)單的任務(wù)變得很復(fù)雜。
10. Python
語(yǔ)言介紹:一種語(yǔ)法簡(jiǎn)潔而清晰的高級(jí)語(yǔ)言,它通常被當(dāng)做腳本語(yǔ)言,但其實(shí)它是可以被編譯的。
程序員的吐槽:它是用縮進(jìn)來(lái)區(qū)分語(yǔ)句間的關(guān)系,而不是用通常的括號(hào)。程序中通常會(huì)有很多的冒號(hào)和下劃線。
聯(lián)系客服