我與這七款編程語言的愛恨情仇,太心酸了!
譯文【51CTO.com快譯】不可否認,想要成為一名優(yōu)秀的程序員確實是需要掌握多種編程語言。通過這幾年的自虐式學(xué)習,我也慢慢的掌握了這些編程語言。鬼知道這過程多么痛苦,但也因為它們,我會獲得比別人更多的機會。接下來要為大家,介紹七款讓我又愛又恨的編程語言!
寫這篇文章的原因:
1.給新人學(xué)習編程語言的一些建議。
2.因為它們確實,能讓我們賺更多的錢。(我就是那么俗?。?/strong>
3.我要吐槽他們!?。。。。。ㄎ艺娴姆浅烂C....)
(申明:大家可以當娛樂看一下,對一些細節(jié)也希望大家不要過于較真!)
1.C語言
- 難度系數(shù):5星
- 吐槽系數(shù):4星
- 推薦指數(shù):4星
C語言給我的感覺,就是一位神秘莫測而又高冷型的女生形象。這是因為c語言相比其他編程語言難度高一些,這也就多了一絲神秘,每當我以為我快要接近它時,它又狠心的將我推開!狠心的C!語!言!
我無法拒絕C語言的原因:UNIX由C編寫而成,其運行在大部分手機與大多數(shù)云環(huán)境當中,這意味著必須有人繼續(xù)使用星號與大括號進行開發(fā),否則這一切都將無法為繼。另外,還有設(shè)備驅(qū)動程序、嵌入式程序以及Linux/Unix代碼庫的維護工作——好了,這個憂傷的話題到此結(jié)束。
接下來輪到我最開心的環(huán)節(jié),我!要!開!始!吐!槽!
作為擁有“便攜式匯編語言”頭銜的C語言,絕對充斥著各種問題!相信沒有人會喜歡編寫,大量獨立的頭文件,也更沒有幾個人能在使用預(yù)處理器的時候保持平和心態(tài)。
從理論上講,我們應(yīng)該能夠利用指針的數(shù)學(xué)能力,完成無比睿智的壯舉,但很少有人能超越已經(jīng)存在的數(shù)據(jù)結(jié)構(gòu)。事實上,鼓搗指針往往正是代碼崩潰的起點。即使大家自身水平能夠輕松搞定指針,但也需要編寫冗長的注釋加以記錄,這相當讓人抓狂。另外,我想問一下各位,有人幾個人能記住編寫C代碼所應(yīng)當遵循的全部最佳實踐嗎?例如避免一切潛在的安全漏洞,好吧,我個人不太行。
2.JavaScript
JavaScript給我的感覺,就是一位悲觀型的女生形象。為什么這樣說呢,誰叫它們總是用小括號、中括號與大括號包裹著自己呢!
我無法拒絕JavaScript的原因:互聯(lián)網(wǎng)以及無數(shù)瀏覽器仍然堅持使用JavaScript,而Node.js的出現(xiàn)甚至迫使我們在服務(wù)器端也要使用JavaScript。至少在可預(yù)見的未來,JavaScript還將不斷折磨我們。
接下來輪到我最開心的環(huán)節(jié),我!要!開!始!吐!槽!哈哈~
JavaScript的締造者們希望打造一款現(xiàn)代化語言。遺憾的是,他們的成果逼迫我們不斷使用小括號、中括號與大括號來完成正確的嵌套關(guān)系。而匿名函數(shù)、閉包與JSON數(shù)據(jù)結(jié)構(gòu)則讓我們的小指變得越來越發(fā)達。
另外,我們還需要關(guān)注很多奇怪的細節(jié)。如果x作為字符串包含字符1,那么x+1將產(chǎn)生字符串11,而x-1則會產(chǎn)生數(shù)字0。誰還會記得false、null、NaN以及undefined之間的區(qū)別呢?它們聽起來很像,但JavaScript為什么非要對此進行區(qū)分?為什么不能把它們合并起來?
3.PHP
- 難度系數(shù):3星
- 吐槽系數(shù):3星
- 推薦指數(shù):4星
PHP給我的感覺是一位單純乖巧型女生,至于原因PHP相比其他語言更簡單,PHP性能足夠好,熱部署、易修改,我們也不用那么費心啦~
PHP其實并不能算是真正的計算機語言,而更像是一款用于向靜態(tài)HTML中添加智能機制的工具。大家可以將信息存儲在數(shù)據(jù)庫中并為其匹配靜態(tài)標簽。雖然還有更多功能,但總體來看PHP的基本作用就是對我們提取自數(shù)據(jù)庫的字符串進行粘接。
但爭議歸爭議,大多數(shù)Web仍然由PHP構(gòu)建而成。在WordPress、Joomla以及Drupal中,大多數(shù)內(nèi)容都通過PHP代碼進行交付。另外,F(xiàn)acebook也是由PHP編寫而成。幸運的是,F(xiàn)acebook打造的HipHop Virtual Machine啟發(fā)了Zend,而PHP 7.0也是由此誕生。這些新型PHP引擎通常速度更快,但這同時意味著我們未來仍然得活在PHP的陰影當中。
4.Cobol
Cobol給我的感覺是一位很受寵的富家型女生的形象,至于原因是Cobol能得到很多有強大身份的人喜愛。
Cobol誕生于1959年,這種早應(yīng)該過時的語言,存在著數(shù)以百計限制詞匯。然而Cobol是數(shù)據(jù)處理領(lǐng)域最為廣泛的程序設(shè)計語言,也是第一個廣泛使用的高級編程語言。并且,支持者的Cobol的開發(fā)者們,會從其它語言中汲取靈感并充實到Cobol上,因此Cobol的版本還在不斷地更新中。
在企業(yè)管理中,數(shù)值計算并不復(fù)雜,但數(shù)據(jù)處理信息量卻很大,許多人會購買一臺大型計算機并運行Cobol代碼。截至目前,Dice.com網(wǎng)站上仍有543個崗位包含“Cobol”一詞。從保險公司到國防承包商,眾多東家仍然喜歡使用Cobol,因此想要投身其中的求職者顯然別無選擇。
5.XSLT
XSLT給我的感覺是一位很會偽裝的腹黑型女生的形象,至于原因是不了解它們會以為它們很方便,了解后就會發(fā)現(xiàn)它其實就是一個大“坑”!
每個人在初上手XSLT時都喜歡它,它的函數(shù)型語言能夠?qū)崿F(xiàn)XML轉(zhuǎn)換。然而一旦超出搜索與替換范疇,它的功能限制性就開始暴露出來。最令人難以忍受的是,XSLT的變量與其它語言中的變量在概念上就有所區(qū)別,這瞬間把程序員們弄成了數(shù)學(xué)家——甚至出現(xiàn)了與之相關(guān)的玄學(xué)理論。
XML也許將逐步被JSON等更為高效的數(shù)據(jù)格式所替代,但它目前仍然擁有相當旺盛的生命力。雖然大家可以跳過XSLT直接編寫代碼以進行文本解析,不過請相信我,這種作法耗費的時間比學(xué)習XSLT更長。
6.Java
- 難度系數(shù):4星
- 吐槽系數(shù):4星
- 推薦指數(shù):5星
Java給我的感覺是一位邋遢學(xué)霸型女生的形象。
虛擬機與庫概念可以追溯至上世紀九十年代,但語法則早在上世紀七十年代即與C語言一同出現(xiàn)。自動內(nèi)存管理看起來很美,直到惡心的垃圾回收機制毀掉這一切。
Java程序員們一直在抱怨這方面問題,而且其中一部分,也確實被甲骨文所解決。然而,解決的過程又帶來了新問題。一部分新型代碼及庫無法在舊有虛擬機上運行。我就經(jīng)歷過這樣的困擾,事實上Java 1.4之后的每個版本都像是一種完全不同的語言。
但這一切都不重要。Java是Web與移動手機的基石,它也是高校當中教授的第一門語言。相關(guān)代碼庫愈發(fā)龐大,其價值也遠遠超過其它語言。我們能怎么辦?忍著吧。
7.Python
- 難度系數(shù):4星
- 吐槽系數(shù):3星
- 推薦指數(shù):4星
Java給我的感覺是一位萌萌的蘿莉型女生的形象。
這是一種適合年輕人學(xué)習的現(xiàn)代語言。其很少用到標點符號,因此代碼看起來更加簡潔。問題在哪?首先,Python 2.7與3.0之間存在巨大差異。雖然發(fā)展是必要的,但步子邁得太大無疑容易扯著蛋。我們永遠需要關(guān)注當前設(shè)備上使用的到底是哪個Python版本,同時認真數(shù)清一切代碼縮進、大括號以及空格等等。
同樣的,這些抱怨毫無意義。Python擁有大批受眾,特別是“軟科學(xué)家”群體。生物學(xué)家與經(jīng)濟學(xué)家將Python視為最強語言,有些人甚至建議在股票與債券的說明文件中添加Python代碼,這樣銀行家們就能夠通過Python看懂其中真正的含義——而不被那幫律師騙子所蒙蔽。
好消息是,閱讀Python代碼確實要比閱讀法律文件更容易。這是種進步,而且是種我們無法抗拒的進步……
原文標題:7 programming languages we love to hate -- but can’t live without
原文作者:Peter Wayner
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】