新聞中心
所有的編程語(yǔ)言我都討厭。曾經(jīng)我想自創(chuàng)一門(mén)語(yǔ)言,但我沒(méi)搞明白到底需要一門(mén)什么語(yǔ)言,所以也從未開(kāi)始過(guò)。 許多時(shí)候,你沒(méi)法選擇使用哪種語(yǔ)言。不管我在用哪種語(yǔ)言,我都嘗試去接受它的優(yōu)點(diǎn)和缺點(diǎn)。

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),利辛網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:利辛等地區(qū)。利辛做網(wǎng)站價(jià)格咨詢(xún):18980820575
(題圖來(lái)自:thisiswhyimbroke.com)
Java
喜歡Java的人肯定喜歡打字。我指的就是敲打鍵盤(pán)上的鍵。你得不斷地重復(fù)又重復(fù)。
設(shè)計(jì)Java系統(tǒng)的人是個(gè)瘋子,他解決問(wèn)題的方式就是,設(shè)計(jì)模式。如果你把設(shè)計(jì)模式看作是這個(gè)語(yǔ)言中解決問(wèn)題的一種方式,那么你會(huì)發(fā)現(xiàn)Java里有許多這樣的設(shè)計(jì)模式。
另一方面,Sun的這些家伙的確是費(fèi)了點(diǎn)心思在Java規(guī)范上的,這使得它能運(yùn)行在嵌入式系統(tǒng)上,所以這塊我們還是堅(jiān)持在使用它。我很難相信Python或者C在我的手機(jī)桌面系統(tǒng)上運(yùn)行。
還有,那些個(gè)目錄又是怎么回事?我必須得使用Eclipse,因?yàn)橹挥兴涝趺刺^(guò)那1000個(gè)字長(zhǎng)的路徑名。如果我在應(yīng)用的同一個(gè)目錄下放10個(gè)類(lèi),會(huì)不會(huì) 傷害到某些人?
C
C是精確的。當(dāng)我用C寫(xiě)程序的時(shí)候,如果搞定了,我知道它是靠譜的。它就像是用一把小刷子在畫(huà)一幅巨作。在這么詳細(xì)的層面上寫(xiě)代碼需要一種不同的心態(tài)。當(dāng)你坐下來(lái)寫(xiě)C的時(shí)候,在動(dòng)手之前你就得規(guī)劃好到底怎么寫(xiě)。否則后面肯定得費(fèi)很多工夫去改。
如果你的經(jīng)驗(yàn)足夠豐富,內(nèi)存泄露這種事就不太會(huì)找上門(mén)。它的第二特性——malloc/free總是形影不離。你不能忘了任何一個(gè)。否則就像是忘了沖水或者關(guān)燈。你就這么做就是了。
有句話(huà)說(shuō)得好,如果你打算給房子上漆,一把好刷子可遠(yuǎn)遠(yuǎn)不夠。我猜你肯定想要個(gè)大滾軸。如果讓我寫(xiě)一整個(gè)應(yīng)用或者系統(tǒng),能不用C的話(huà)我肯定不用。
C程序想要進(jìn)行改動(dòng)可得費(fèi)老勁了。當(dāng)我寫(xiě)算法的時(shí)候,我知道***遍肯定是不會(huì)對(duì)的,所以我通常都先用Python寫(xiě),搞定了之后再翻譯成C的。
C++
它就是個(gè)有string類(lèi)的C。同時(shí)還有數(shù)組,列表,隊(duì)列等東西,你可以用它們來(lái)實(shí)現(xiàn)你想要的。一言以蔽之:別想著自創(chuàng)新模板。這太困難了。除了這 個(gè),C++還改良了一下C,用C++你可以寫(xiě)出非常不錯(cuò)的軟件。它這個(gè)額外的特性使得它可以用于一些大型系統(tǒng)上,只要大家都還遵循同樣的約束的話(huà),難度還 不算太大。
JavaScript
這是個(gè)沒(méi)人喜歡的語(yǔ)言。不過(guò)它喜歡你。當(dāng)你剛開(kāi)始學(xué)習(xí)它的時(shí)候,你可能會(huì)寫(xiě)出一些非常糟糕的代碼,把對(duì)象用作字典,別的對(duì)象作KEY,不過(guò)這樣也是OK的,因?yàn)檫@些代碼運(yùn)行起來(lái)也沒(méi)有什么問(wèn)題,只要瀏覽器還支持JavaScript就好。
JavaScript沒(méi)有連接器,因此所有的代碼都共享一個(gè)命名空間,不過(guò)還好大家都知道這一點(diǎn),所以還能一起和諧相處。
CoffeeScirpt
CoffeeScirpt是一個(gè)解釋器,它將那些長(zhǎng)得像Ruby的奇怪的語(yǔ)言逐行地翻譯成JavaScript。它是一個(gè)擁有所有外來(lái)語(yǔ)法的JavaScript——括號(hào),方括號(hào),額外關(guān)鍵字移除。只有代碼的基本含義還保留著。
CoffeeScirpt挺不錯(cuò)的。如果你要寫(xiě)很多代碼的時(shí)候,它能讓你提高至少25%的效率。你可以一次在屏幕上看到更多行的代碼。
當(dāng)你用CoffeeScript寫(xiě)代碼的時(shí)候,你得時(shí)刻記住這是要生成JavaScript的。問(wèn)題就在這。你得先去學(xué)習(xí)JavaScript。項(xiàng)目來(lái)的新人都得先學(xué)JavaScript,然后才能學(xué)CoffeeScript,***才能去學(xué)習(xí)項(xiàng)目代碼。
node.js
我也希望能愛(ài)上它。我覺(jué)得我給過(guò)它機(jī)會(huì)了。它的回調(diào)讓我無(wú)法忍受。我知道會(huì)有這么一天,因?yàn)槟硞€(gè)原因,其中一個(gè)回調(diào)并沒(méi)有出現(xiàn),然后我的應(yīng)用就會(huì)堵在那一直等待。真是要了命了。
還有一點(diǎn)就是,它幾乎沒(méi)有內(nèi)建任何東西。如果你要做某件事情,總是會(huì)有一大堆模塊來(lái)實(shí)現(xiàn)這個(gè)功能的。該選哪個(gè)呢?如果出現(xiàn)問(wèn)題了,哪個(gè)模塊會(huì)有人來(lái)支持?
Scala
Scala是一門(mén)函數(shù)式,強(qiáng)類(lèi)型的語(yǔ)言,它會(huì)編譯成JVM代碼。
我是在工作中學(xué)的Scala。有一家初創(chuàng)公司的生產(chǎn)系統(tǒng)用的是它,我是在后期才加入他們的。
這讓我看到了Scala丑陋的一面:類(lèi)型推導(dǎo)。類(lèi)型推薦被它用到了***。每個(gè)對(duì)象都有類(lèi)型,不過(guò)想確定它是什么類(lèi)型的,你得檢查不同分層上的好幾個(gè)文件才行。Scala也繼承了Java的文件夾的壞毛病,因此你要查找某個(gè)類(lèi)型的話(huà)得進(jìn)入好幾層目錄才能找到對(duì)應(yīng)的那個(gè)文件。
簡(jiǎn)而言之,Scala是極好的——對(duì)于那些最初的開(kāi)發(fā)人員而言。新加入的成員為了熟悉現(xiàn)有的代碼,得有一個(gè)很長(zhǎng)的學(xué)習(xí)曲線(xiàn)。
Erlang
Erlang也是我曾經(jīng)想愛(ài)上的一位。我真的努力了。它是一門(mén)美麗的函數(shù)式語(yǔ)言,它可以寫(xiě)出很精致的小模塊,它們以一種精確的方式進(jìn)行通信,你的系統(tǒng)可以運(yùn)行10年以上,因?yàn)樗芴幚砦粗獑?wèn)題,如果必要的話(huà)還會(huì)重啟,然后繼續(xù)運(yùn)行。
不過(guò)它的結(jié)構(gòu)太復(fù)雜了。開(kāi)發(fā)似乎要停留在伯克利發(fā)明socket的那個(gè)年代。當(dāng)前時(shí)代所需的東西幾乎一樣都沒(méi)有。為什么開(kāi)發(fā)一個(gè)簡(jiǎn)單的WEB服務(wù)需要費(fèi)這么大的工夫?
Go
Go很容易學(xué)習(xí),對(duì)于新人而言也是如此。它使用40年前的語(yǔ)言概念來(lái)構(gòu)建一個(gè)健壯的異步系統(tǒng),但它讓你能像寫(xiě)同步代碼一樣編程。你可以不費(fèi)吹灰之力寫(xiě)出1000個(gè)可以安全工作的線(xiàn)程。
在庫(kù)支持方面它仍需要改進(jìn)。當(dāng)我想做某事的時(shí)候,該用哪個(gè)庫(kù)——github上2011年的那個(gè),還是2013年開(kāi)始的那個(gè)半成品?一個(gè)是官方主頁(yè)鏈接的,不過(guò)它的官方主頁(yè)看起來(lái)并不是***的。好吧,我覺(jué)得我還是自己寫(xiě)一個(gè)吧。。。
還有,為什么追加元素到數(shù)組里也這么費(fèi)勁?
Python
在Python里,不管你想做什么都會(huì)有一個(gè)對(duì)應(yīng)的庫(kù),如果你用的是Linux,它絕對(duì)是不二選擇,因?yàn)樗梢砸绘I安裝。
如果你想做些數(shù)字處理或者科學(xué)運(yùn)算,選擇Python吧,你值得擁有。
Python中的字符串即可能是文本的也可能是二進(jìn)制的,因此你得上來(lái)就學(xué)習(xí)下文本編碼的東東。
Python 3
Python 3和Python有許多共同的特性,不過(guò)它卻是門(mén)不同的語(yǔ)言。由于它比較新,因此支持的并不是很好。我也想使用它,不過(guò)總會(huì)有那么一個(gè)庫(kù),它是只支持Python 2的。
來(lái)源:http://it.deepinmind.com/%E5%85%B6%E5%AE%83/2014/07/09/my-thoughts-various.html
文章名稱(chēng):我眼中的各種編程語(yǔ)言
標(biāo)題URL:http://m.fisionsoft.com.cn/article/djjdeej.html


咨詢(xún)
建站咨詢(xún)
