對5種主流編程語言的吐槽!元芳,你怎么看呢?
不可否認,想要成為一名優(yōu)秀的程序員確實是需要掌握多種編程語言。通過這幾年的自虐式學(xué)習(xí),我也慢慢的掌握了這些編程語言。鬼知道這過程多么痛苦,但也因為它們,我會獲得比別人更多的機會。接下來要為大家,介紹五款讓我又愛又恨的編程語言!
1.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ū)分?為什么不能把它們合并起來?
2.C/C++
C語言給人的感覺,就是一位神秘莫測而又高冷型的女生形象。這是因為c語言相比其他編程語言難度高一些,這也就多了一絲神秘,每當(dāng)以為快要接近它時,它又狠心的推開!狠心的C!語!言!
無法拒絕C語言的原因:UNIX由C編寫而成,其運行在大部分手機與大多數(shù)云環(huán)境當(dāng)中,這意味著必須有人繼續(xù)使用星號與大括號進行開發(fā),否則這一切都將無 法為繼。另外,還有設(shè)備驅(qū)動程序、嵌入式程序以及Linux/Unix代碼庫的維護工作——好了,這個憂傷的話題到此結(jié)束。
從理論上講,我們應(yīng)該能夠利用指針的數(shù)學(xué)能力,完成無比睿智的壯舉,但很少有人能超越已經(jīng)存在的數(shù)據(jù)結(jié)構(gòu)。事實上,鼓搗指針往往正是代碼崩潰的起點。即使大 家自身水平能夠輕松搞定指針,但也需要編寫冗長的注釋加以記錄,這相當(dāng)讓人抓狂。
而C++是在C語言的基礎(chǔ)上發(fā)展并不斷擴展的,C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計不同的思維方式和編程方法。因而也增加了整個語言的復(fù)雜性,掌握起來有一定難度。但是,正因為C是C++的基礎(chǔ),C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學(xué)習(xí)C++就能以一種熟悉的語法來學(xué)習(xí)面向?qū)ο蟮恼Z言,從而達到事半功倍的目的。另外,筆者這里也有一個C/C++的交流興趣圈:569268376,歡迎有興趣的小伙伴一起呀!
3.PHP
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的陰影當(dāng)中。
4.Java
Java給我的感覺是一位邋遢學(xué)霸型女生的形象。虛擬機與庫概念可以追溯至上世紀九十年代,但語法則早在上世紀七十年代即與C語言一同出現(xiàn)。自動內(nèi)存管理看起來很美,直到惡心的垃圾回收機制毀掉這一切。
Java程序員們一直在抱怨這方面問題,而且其中一部分,也確實被甲骨文所解決。然而,解決的過程又帶來了新問題。一部分新型代碼及庫無法在舊有虛擬機上運行。我就經(jīng)歷過這樣的困擾,事實上Java 1.4之后的每個版本都像是一種完全不同的語言。
但這一切都不重要。Java是Web與移動手機的基石,它也是高校當(dāng)中教授的第一門語言。相關(guān)代碼庫愈發(fā)龐大,其價值也遠遠超過其它語言。我們能怎么辦?忍著吧。
5.Python
Python給我的感覺是一位萌萌的蘿莉型女生的形象。這是一種適合年輕人學(xué)習(xí)的現(xiàn)代語言。其很少用到標點符號,因此代碼看起來更加簡潔。問題在哪?首先,Python 2.7與3.0之間存在巨大差異。雖然發(fā)展是必要的,但步子邁得太大無疑容易扯著蛋。我們永遠需要關(guān)注當(dāng)前設(shè)備上使用的到底是哪個Python版本,同時 認真數(shù)清一切代碼縮進、大括號以及空格等等。
同樣的,這些抱怨毫無意義。Python擁有大批受眾,特別是“軟科學(xué)家”群體。生物學(xué)家與經(jīng)濟學(xué)家將Python視為最強語言,有些人甚至建議在股票與債 券的說明文件中添加Python代碼,這樣銀行家們就能夠通過Python看懂其中真正的含義——而不被那幫律師騙子所蒙蔽。