當前位置:編程學習大全網 - 源碼下載 - 為什稱Python是壹種膠水語言

為什稱Python是壹種膠水語言

python現在最廣為聞名的形容大概有這些:

他是很好的膠水語言。什麽是膠水語言?反正當時的我不知道。

他是新壹代的系統腳本。系統腳本是什麽?

其次就是代碼可讀性。不過,這個其實還是爭議挺大的,我也不準備在這多說了。

反正我發現大家其實都沒解釋清楚。

大概是因為,那些大牛們都已經把很多東西習以為常了,卻不知道新人其實都壹頭霧水。其實事情也沒那麽復雜。

膠水語言

先從Hello world開始。所有學python的童鞋都會從這句話開始:

print "Hello World!"。

問題來了:為什麽所有語言第壹件做的事情,就是Hello World?

其實,他代表了UNIX統壹的文本處理模型及接口。這些個玩意,Windows的編程領域是很難接觸到的也很難理解的。

下面寫個範例。比如我這麽幹了:

# file: say.py

import sys

txt = sys.argv[1]

print "Hello %s!"%(txt)

那麽我就可以在Linux或Mac的終端上直接輸入:

python say.py World

輸出結果就會是:

Hello World!

這樣就確保了,在終端調用上的直觀與可編程性。

這樣,我就不用必須在別的python語言裏面調用python了,而能夠直接在shell上跟其它處理程序直接連接。

BTW,這其實也是Hello world,呵呵。

再玩復雜點的:

file: say2.py

import sys

for line in sys.stdin.readlines():

print "Hello %s!"%(line.strip())

那麽我就可以在終端這麽幹:echo -e 'water\nmaomaol\nkenbing\nlonger\nchuang'|python say3.py

輸出就會是:

Hello water!

Hello maomaol!

Hello kenbing!

Hello longer!

Hello chuang!

再進壹步,我可以把前面的內容寫成文件,比如寫成壹個這樣的文件:

names.txt

water

maomaol

kenbing

longer

chuang

就可以直接更便捷地做處理:

cat names.txt | python say2.py 這樣,我就用cat命令把文本打印出來,然後輸出到say2.py上去了。

輸出壹樣的結果。

但是,我輸入到終端又有什麽用呢?沒錯,到終端的確沒啥用,我們把他輸出到文件吧!

cat names.txt | python say2.py > result.txt

就這樣,結果就保存到了result.txt這個文件裏了。

這樣做的意義是什麽?

意義就是,在終端上我可以隨意地組合他和其它程序,作為壹個中間處理模塊。

而且,他可以如此地簡單便捷,壹些簡單的腳本只需要cat壹下馬上就能明白是什麽意思。

壹個表達式壹行代碼,代碼塊有壹致的標準的縮進,標準的命名方式,簡練的語言,支持註釋……

別的程序要訪問或調用,很簡單,壹個命令把指定數據輸入到這裏就好,然後要怎麽拼接怎麽拼接;

周期性地處理也沒問題,輸出到文件,等待別的程序調用。

比起windows各種詭異的processer,各種詭異的二進制存儲的文件,這樣壹致的接口簡直能讓人想哭了。

系統腳本上:

他比SHELL多了很多數學及字符串處理能力,還多了很多很好用的叠代方法,還多了很多的原生的數據結構;

他比PERL多了很要命的代碼可讀性。

比起ruby和nodejs,他基本所有機器都預裝,而且已經經歷了時間的考驗。雖然,將來的確會有被這倆貨代替的可能性。

比起C/C++,他多了壹個終端、甚至像ipython這樣的加強版神器終端,可以邊調試代碼邊把沒問題的代碼寫進文件。而且,源碼即可執行。

在我看來,這些就是python的優勢。讓他當之無愧是系統腳本的王者。

只可惜,現在就連大多數的程序員,都已經被圖形化界面給寵壞了,也習慣了各種大廠商、IDE提供的諸多工具包與功能,卻把很多很基礎的東西都給忽略了,卻在不斷地、重復地造輪子。這就叫碼農。

所以,大概也就敢於擁抱變化的系統管理員、運維工程師或數據分析工程師,才會長久地持續地喜歡python。

這個用戶群,小眾而又龐大,而且整個業界對這這方面的專家有著很大的缺口。

純以前端兼設計師的身份,向這部分人群表示高山仰止。

然後,我再繼續折騰別的東西去。

  • 上一篇:聊天軟件有哪些app
  • 下一篇:Novell SUSE Linux Enterprise Server 10的十大優勢
  • copyright 2024編程學習大全網