各種語言的介紹(轉)

post0發表於2007-08-11
各種語言的介紹(轉)[@more@]

各種語言的介紹:

在介紹程式語言之前,先說說開放原始碼的必要性。現在,在軟體生產領域存在巨大的智利浪費,大家把大量的精力用在編寫別人已經實現的程式程式碼上。看看,文字編輯器有多少,看看ftp程式有多少,看看字處理程式有多少,這些程式雖然有差別,但主要的功能都是一樣的。要實現個性化的功能,在已有的軟體基礎上修改會節省多少時間呀!而每個程式各編一套,又浪費多少時間?如果,沒有這些重複的工作量,世界上的程式設計師至少可以節省80%的工作量。同時,開放原始碼也方便了大家的交流,閱讀原始碼應該是最直接最有效的學習途徑。尤其是比較專業的領域。

要開放原始碼,下面幾點比較重要:

×、語言要流行。

×、語言的函式和類庫統一。

×、語言的語法和編譯器要統一。

×、編譯器是否開放原始碼。

×、API是否開放原始碼。

×、語言的可重用性、功能、友好性。

語言統一的必要性:如果大家都用一種程式語言,都用同樣的函式,同樣的類庫,那麼,大家的共同語言就會很多。大家只要學會一種語言,一套函式,一套類庫,就可以相互讀懂原始碼,這樣,學習量是最少的。學習新的API浪費程式設計師大量的時間和精力,尤其是當這個API有大量和其他API重複的功能的時候。

要增加程式碼的可重用性,要從下面幾點著手:

×、程式碼的可讀性。如格式、是否接近英語語法和單詞。

×、程式碼的表達能力,也就是簡單性,能用最少的語句和單詞實現同樣的功能。

×、程式碼的結構性,如函式、模組、類。

語言功能的強大從下面幾點來說:

×、是否擁有大量的庫支援。這是最重要的,要求編寫任何功能的程式都有強大的庫支援。

×、語法功能是否強大,比如是否有出錯處理。是否有指標。

語言的友好性:

×、語言包的大小,語言包越小,學習越簡單。

×、語言是否有友好的編輯除錯環境。

×、語言的視覺化和整合程式設計環境。

c語言:

從效能上說,除了組合語言,c語言是最接近機器的語言。各種作業系統的程式設計介面的預設語言都是c語言。因此,用c語言程式設計,可以最大限度發揮作業系統的能力。同時,由於絕大部分的商品軟體都是c實現的,都有c程式設計介面,可以說,沒有c不能實現的功能。

在linux環境中,c具有很好的開放原始碼的條件,它有統一的編譯器gcc,有強大但比較難掌握的程式設計環境emacs,有統一的API:posix和linux介面。並且編譯器和API是開放原始碼的。

在linux上編寫圖形介面程式,有兩個選擇KDE和gnome,KDE更成熟,gnome支援多語言和麵向物件的程式間的協同。

在windows環境中,現在統一到了vc上,但有一個缺點,windows的升級換代太快,從dos環境到windows31

,從windows31到windows95,到windows2000,到.net。API常常變換,這樣,在windows上的程式程式碼的壽命會比較短。並且vc的編譯器和API太複雜,難於掌握。

同時,由於c具有現代語言的大量特徵,現在常常代替pasical作為教學的程式語言。

實際上,如果不深入學習,c也是一種很簡單的語言。不學basic,直接學c完全沒有問題。

和其他語言相比,c有多種編譯器,多種作業系統API,多種語法和函式。學習的難度大,統一性差。

和java相比,c的語法不夠豐富、現代。

java:

相對c,java作為現代語言,具有非常豐富的語法特徵,如模組和類,不像c隨作業系統和編譯器的不同有極大差異,java是一個公司的產品,具有唯一的API,因此,java程式設計師沒有語言隔閡。

相對跨平臺的語言來說,java具有最好的圖形介面程式設計API。

java所有的API都是類庫,相對c的函式來說,是非常大的進步。java具有現代語言幾乎所有的特徵。

perl:

perl的最大特點是有強大的字串模式匹配,是最好的文字檔案的讀取和生成語言。

perl具有很大的自由性,象英語一樣有很大的隨意性,

perl有一個強大的資料庫介面和其他各種介面。

perl有最大量的程式庫。

perl不適合編寫大程式。

perl有一個著名的缺點是難懂,也有一個著名的優點是簡練。

php:

我感到php是個怪胎,本來perl加嵌入html的功能就完全能實現php的功能,還要另創一種語言,加重了大家的學習負擔。

php可以嵌入html,更容易編寫伺服器端程式。

php天然和web伺服器以及mysql資料庫相結合。

php可以動態生成影像。

python:

首先,python是和basic一樣面向初學者的語言,和英語一樣容易懂。

python具有和java一樣的最豐富的語法。

python有和perl類似的簡單性,但沒有模式匹配。

python適合編寫大程式。

python有和lisp相似的地方,它有將字串作為程式執行的eval函式,可以對一個物件的所有資料進行儲存,可以把函式作為引數傳給另一個函式。

python具有非常好的擴充性,python程式可以和c程式,以及java程式很好地結合。

tcl:

tcl具有最簡單的語法,最好的和其他程式互動的能力,有編寫圖形介面程式的tk。

javascript:

編寫動態網頁的最佳工具。

lisp:

lisp的語法非常簡單,只有簡單的函式和引數的語句結構。

lisp資料和程式的界限模糊。

lisp可以深度巢狀。

prolog:

prolog是一種專門的語言。專門用來處理知識。

我感覺prolog是一種資料庫的處理工具。

也是根據一些知識衍生出更多知識的推理工具。

basic:

現在最著名的basic是vb,

basic是簡單的初級語言。

vb是快速的介面生成語言,是快速的資料庫程式開發語言。

vba是vb的應用版,嵌入在offic中。編寫offic上的程式很好用。

vbscript是vb的指令碼語言,可以產生伺服器端和客戶端的動態網頁。

basic的醜陋在於引數還是預設傳地址。太危險。

delphi:

和vb一樣是快速開發環境,但效能更好,功能更強大。

.net:

支援多種語言的統一的API類庫,

可以編寫webform程式,即所有的邏輯都在伺服器端,傳到客戶端的是標準的html3.0,可以被各種瀏覽器支援。各程式元件間透過soap交換訊息。

各種語言的選擇:

如果編寫對效能要求苛刻,或和作業系統結合緊密的程式,必然選擇c。

如果編寫到處可用的程式,選java。

如果編寫大程式,可能的化儘量用python,不行了再用java和c。因為python帶來了生產力。

編寫文字的處理程式用perl。

編寫知識的處理程式用prolog。

編寫最靈活,最模糊的程式用lisp。

編寫office程式用vba。

編寫伺服器端程式,php、perl、python、asp都是選擇。

編寫資料庫程式用vb或delphi

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944690/,如需轉載,請註明出處,否則將追究法律責任。

相關文章