首頁>Club>
看了一些文章說支援python的庫特別多,python被稱為膠水語言。因此用的人特別多。導致支援的庫更加豐富了。良性迴圈。可是那些庫有時也不止支援python一種語言啊,或者說,他們也可以支援其他語言啊。為什麼其他語言沒有成為膠水語言呢?c語言和java語言很多都在工科院校科普過了,按說原來使用者比python多啊。估計支援c和java的各種庫也不少。為什麼python最終成了膠水語言,而其他語言沒有成為膠水語言?如果距離可以用c語言做對比,謝謝!
7
回覆列表
  • 1 # 羅恩邵

    Python成為膠水語言並不是因為它的庫多,是因為它可以和許多其他語言進行整合,換句話說,許多其他語言的庫都能被它輕易得呼叫,這種把許多其他語言的庫整個起來的能力使它成為了膠水語言,再加上它本身語法的便利性,可以像是膠水一樣把其他語言的庫給整合起來。

  • 2 # 李東bbsky

    這個說法不對,並不是只有Python是膠水語言,還有Lua、Julia、Perl、Erlang、Shell,以及各種Script結尾的(VBscript、AppleScript、JavaScript等)都可以說是一種膠水語言。

    其實膠水語言的本質是首先它是一個指令碼語言,可以類似於shell與檔案作業系統進行互動;第二個是有些程式語言本身就是用C語言寫的,可以比較方便的呼叫C/C++寫好的模組;第三就是上手簡單,寫起來不難,本來C語言也可以算是膠水語言,但是它的開發效率太低,所以從另外一個角度講,膠水語言其實就是C/C++的輔助工具,Java是系統級的程式語言,自成一體,與C/C++之間沒啥互動。

    Python相比於其他膠水語言來說,與C/C++的互動要麼更加頻繁(如相比於JavaScript),尤其是人工智慧,很多模組框架都是用C/C++寫的,簡單易學而又自然的程式語言Python就發揮出了它的輔助作用;

    要麼生態裡面的庫更多(比如相比於Julia、Lua),Python的生態豐富程度在程式語言裡面可以排進前五;

    而同樣是指令碼語言,Python相比於shell又可以進行程式開發,比如開發網站,相當於可以有了一個可以操作的GUI頁面,既方便進行自動化運維,又方便視覺化管理;

    Python這種下可至底層與C/C++互動,中可作為指令碼語言與檔案作業系統進行互動,也可以作為後端程式語言,上可至前端與使用者互動,縱向完備,橫向生態又完善,其他膠水語言有的它也有,其他膠水語言沒有的它也有,綜合能力最強。

    Python應該可以說是萬能膠水語言,非一般膠水語言可比。但是膠水語言還有一層意思就是“伴讀書童”,這也是為什麼Python是非程式設計師最值得推薦的程式語言,也是程式設計師可以用於入門和作為輔助工具的程式語言,但是如果找工作,如果從事計算機科學研究,從事應用程式的開發,從事雲服務開發,則還是更推薦學習Java、C/C++、JavaScript、Golang。

  • 3 # 比利這小子

    應該說為甚麼Python一下就成了膠水語言的首選。當然這個可以純技術分析角度分析它有多少優缺點。最主要的還是看社群的健壯性,包括可擴充套件性,比如第三方庫等。

  • 4 # 和不同

    首先,Python不是唯一的膠水語言,但可以說“Python是最流行的膠水語言”。

    先說說膠水語言和C,Java等語言的區別吧。

    什麼是膠水語言

    所謂“膠水”語言,其實就是通用型指令碼語言

    我們可以把程式語言分為兩大類:指令碼語言和非指令碼語言。做個簡單的對比,非指令碼語言通常用來編寫穩定、高效的模組,而指令碼語言則用來將這些模組組合起來。

    通用型指令碼語言

    大部分指令碼語言都是針對某類特定應用而誕生的,比如:

    JavaScript用於在瀏覽器中實現網頁動態效果;PHP是用於在伺服器端動態生成網頁的模版語言;VBScript是用於給微軟的Office等軟體提供定製化指令碼支援;Lua是用於給某應用程式處理輸入的資料檔案;Python則是給Amoeba作業系統提供指令碼支援;

    在發展過程中,部分指令碼語言突破了其原生領域。比如JavaScript依靠Node.js擴充套件到伺服器端開發;Lua擴充套件到遊戲開發;Python則擴充套件到許多領域,擁有最龐大的庫資源,可以被稱為最流行的通用型指令碼語言了。

    為何使用指令碼語言

    回到題目中所提到的與非指令碼語言的對比。

    要說各種庫,可供C和Java使用的很多,為什麼要使用指令碼語言呢?

    因為指令碼語言入門簡單、開發效率高。我們就用zlib來舉個例子吧:

    用C程式呼叫zlib解壓一個檔案,程式碼是這樣:用Python呼叫zlib解壓一個檔案,程式碼是這樣:

    兩者複雜程度可謂天差地別。

    在不在乎執行速度、資源消耗的時候,當然要用指令碼語言咯。

    畢竟人的時間是寶貴的。

  • 5 # 資料分析不是個事兒

    很多答主指出了題主問題中的錯誤,python並不是唯一的膠水語言,至於是不是最好的膠水語言也是要有待商榷的(怕被噴),而且膠水語言也不是什麼優越的稱謂

    記得大學那會,perl甚囂塵上的態勢絲毫不比現在的python差,雖然我只學過一點、瞭解並不多,但是當時確實很多人都在學perl,perl也被稱作是完美的語言;當時的python因為語言作用跟perl很相似,只能自居膠水語言,在perl的夾縫中謀求生存,不知道卑微到哪裡去了

    不過perl一直因為可讀性和維護問題被詬病(勸退新手警告),近幾年幾乎看不到有公司用perl做專案的了,聽說現在perl的可讀性、規範性都優化了不少,不過自從unix倒臺之後perl就一蹶不振了,一朝被python打倒在地,這輩子是難翻身了

    好像扯得有點遠,回到題主的問題,為什麼python成為了最廣泛的膠水語言呢?

    其實就是繼承了perl的功能性優點,又克服了perl在語法友好度上的缺點,再加上被人忽悠起來的熱度,自然而然就被鼓吹起來了,至於深層次原因其他答主都說過了,對於一門語言來說,簡潔友好是真得無解......

  • 中秋節和大豐收的關聯?
  • 詹姆斯創造和保持的記錄有哪些?