自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我眼中的各種編程語言

開發(fā) 后端 前端
所有的編程語言我都討厭。曾經(jīng)我想自創(chuàng)一門語言,但我沒搞明白到底需要一門什么語言,所以也從未開始過。 許多時候,你沒法選擇使用哪種語言。不管我在用哪種語言,我都嘗試去接受它的優(yōu)點和缺點。

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

 

(題圖來自:thisiswhyimbroke.com)

Java

喜歡Java的人肯定喜歡打字。我指的就是敲打鍵盤上的鍵。你得不斷地重復(fù)又重復(fù)。

設(shè)計Java系統(tǒng)的人是個瘋子,他解決問題的方式就是,設(shè)計模式。如果你把設(shè)計模式看作是這個語言中解決問題的一種方式,那么你會發(fā)現(xiàn)Java里有許多這樣的設(shè)計模式。

另一方面,Sun的這些家伙的確是費了點心思在Java規(guī)范上的,這使得它能運行在嵌入式系統(tǒng)上,所以這塊我們還是堅持在使用它。我很難相信Python或者C在我的手機桌面系統(tǒng)上運行。

還有,那些個目錄又是怎么回事?我必須得使用Eclipse,因為只有它知道怎么跳過那1000個字長的路徑名。如果我在應(yīng)用的同一個目錄下放10個類,會不會 傷害到某些人?

C

C是精確的。當(dāng)我用C寫程序的時候,如果搞定了,我知道它是靠譜的。它就像是用一把小刷子在畫一幅巨作。在這么詳細(xì)的層面上寫代碼需要一種不同的心態(tài)。當(dāng)你坐下來寫C的時候,在動手之前你就得規(guī)劃好到底怎么寫。否則后面肯定得費很多工夫去改。

如果你的經(jīng)驗足夠豐富,內(nèi)存泄露這種事就不太會找上門。它的第二特性——malloc/free總是形影不離。你不能忘了任何一個。否則就像是忘了沖水或者關(guān)燈。你就這么做就是了。

有句話說得好,如果你打算給房子上漆,一把好刷子可遠(yuǎn)遠(yuǎn)不夠。我猜你肯定想要個大滾軸。如果讓我寫一整個應(yīng)用或者系統(tǒng),能不用C的話我肯定不用。

C程序想要進行改動可得費老勁了。當(dāng)我寫算法的時候,我知道***遍肯定是不會對的,所以我通常都先用Python寫,搞定了之后再翻譯成C的。

C++

它就是個有string類的C。同時還有數(shù)組,列表,隊列等東西,你可以用它們來實現(xiàn)你想要的。一言以蔽之:別想著自創(chuàng)新模板。這太困難了。除了這 個,C++還改良了一下C,用C++你可以寫出非常不錯的軟件。它這個額外的特性使得它可以用于一些大型系統(tǒng)上,只要大家都還遵循同樣的約束的話,難度還 不算太大。

JavaScript

這是個沒人喜歡的語言。不過它喜歡你。當(dāng)你剛開始學(xué)習(xí)它的時候,你可能會寫出一些非常糟糕的代碼,把對象用作字典,別的對象作KEY,不過這樣也是OK的,因為這些代碼運行起來也沒有什么問題,只要瀏覽器還支持JavaScript就好。

JavaScript沒有連接器,因此所有的代碼都共享一個命名空間,不過還好大家都知道這一點,所以還能一起和諧相處。

CoffeeScirpt

CoffeeScirpt是一個解釋器,它將那些長得像Ruby的奇怪的語言逐行地翻譯成JavaScript。它是一個擁有所有外來語法的JavaScript——括號,方括號,額外關(guān)鍵字移除。只有代碼的基本含義還保留著。

CoffeeScirpt挺不錯的。如果你要寫很多代碼的時候,它能讓你提高至少25%的效率。你可以一次在屏幕上看到更多行的代碼。

當(dāng)你用CoffeeScript寫代碼的時候,你得時刻記住這是要生成JavaScript的。問題就在這。你得先去學(xué)習(xí)JavaScript。項目來的新人都得先學(xué)JavaScript,然后才能學(xué)CoffeeScript,***才能去學(xué)習(xí)項目代碼。

node.js

我也希望能愛上它。我覺得我給過它機會了。它的回調(diào)讓我無法忍受。我知道會有這么一天,因為某個原因,其中一個回調(diào)并沒有出現(xiàn),然后我的應(yīng)用就會堵在那一直等待。真是要了命了。

還有一點就是,它幾乎沒有內(nèi)建任何東西。如果你要做某件事情,總是會有一大堆模塊來實現(xiàn)這個功能的。該選哪個呢?如果出現(xiàn)問題了,哪個模塊會有人來支持?

Scala

Scala是一門函數(shù)式,強類型的語言,它會編譯成JVM代碼。

我是在工作中學(xué)的Scala。有一家初創(chuàng)公司的生產(chǎn)系統(tǒng)用的是它,我是在后期才加入他們的。

這讓我看到了Scala丑陋的一面:類型推導(dǎo)。類型推薦被它用到了***。每個對象都有類型,不過想確定它是什么類型的,你得檢查不同分層上的好幾個文件才行。Scala也繼承了Java的文件夾的壞毛病,因此你要查找某個類型的話得進入好幾層目錄才能找到對應(yīng)的那個文件。

簡而言之,Scala是極好的——對于那些最初的開發(fā)人員而言。新加入的成員為了熟悉現(xiàn)有的代碼,得有一個很長的學(xué)習(xí)曲線。

Erlang

Erlang也是我曾經(jīng)想愛上的一位。我真的努力了。它是一門美麗的函數(shù)式語言,它可以寫出很精致的小模塊,它們以一種精確的方式進行通信,你的系統(tǒng)可以運行10年以上,因為它能處理未知問題,如果必要的話還會重啟,然后繼續(xù)運行。

不過它的結(jié)構(gòu)太復(fù)雜了。開發(fā)似乎要停留在伯克利發(fā)明socket的那個年代。當(dāng)前時代所需的東西幾乎一樣都沒有。為什么開發(fā)一個簡單的WEB服務(wù)需要費這么大的工夫?

Go

Go很容易學(xué)習(xí),對于新人而言也是如此。它使用40年前的語言概念來構(gòu)建一個健壯的異步系統(tǒng),但它讓你能像寫同步代碼一樣編程。你可以不費吹灰之力寫出1000個可以安全工作的線程。

在庫支持方面它仍需要改進。當(dāng)我想做某事的時候,該用哪個庫——github上2011年的那個,還是2013年開始的那個半成品?一個是官方主頁鏈接的,不過它的官方主頁看起來并不是***的。好吧,我覺得我還是自己寫一個吧。。。

還有,為什么追加元素到數(shù)組里也這么費勁?

Python

在Python里,不管你想做什么都會有一個對應(yīng)的庫,如果你用的是Linux,它絕對是不二選擇,因為它可以一鍵安裝。

如果你想做些數(shù)字處理或者科學(xué)運算,選擇Python吧,你值得擁有。

Python中的字符串即可能是文本的也可能是二進制的,因此你得上來就學(xué)習(xí)下文本編碼的東東。

Python 3

Python 3和Python有許多共同的特性,不過它卻是門不同的語言。由于它比較新,因此支持的并不是很好。我也想使用它,不過總會有那么一個庫,它是只支持Python 2的。

來源:http://it.deepinmind.com/%E5%85%B6%E5%AE%83/2014/07/09/my-thoughts-various.html

責(zé)任編輯:王雪燕 來源: 博客園
相關(guān)推薦

2017-03-22 11:22:04

JavaScript函數(shù)式編程

2013-10-16 11:26:45

DevOps

2010-03-15 14:36:07

Python編程語言

2013-03-21 13:42:55

JSjQYUI

2024-10-15 11:58:31

2010-03-29 17:56:20

Nginx反向代理

2016-12-19 14:35:50

軟件系統(tǒng)

2014-05-23 10:25:48

Clojure

2013-03-25 11:11:37

編程語言編程語言書籍編程語言書

2011-05-30 15:00:06

編程語言

2012-12-25 09:43:08

2013-01-17 14:38:37

Fedora 18

2012-12-26 09:20:30

2017-02-05 16:51:35

網(wǎng)絡(luò)編程網(wǎng)絡(luò)系統(tǒng)

2009-02-25 19:52:37

IT認(rèn)證華為認(rèn)證IT產(chǎn)業(yè)

2014-11-10 09:53:25

編程語言

2024-09-21 10:43:15

數(shù)據(jù)技術(shù)信息

2015-08-27 14:52:19

DevOps職責(zé)

2010-01-11 15:55:51

C++語言

2014-03-07 10:46:49

編程語言趣味
點贊
收藏

51CTO技術(shù)棧公眾號