為什麼只有python成了膠水語言?

時間 2021-05-06 12:35:02

1樓:傑林修

我就不提shell,lua,js等一眾膠水語言了。

在最提現膠水能力的系統運維上,python其實只排能到第二。

排第一的是我不太喜歡的perl。

perl和python一直是理念相反的競爭對手。

2樓:曲曉峰

先問是不是,膠水語言遠遠不止 Python,談不上「只有」。

Julia、Bash 哪怕 Batch,哪個不是膠水。

就算是人人嘲笑的 Matlab,那也是可以全語言膠水的。

其實,現在(2023年),幾乎所有語言都可以做膠水了。就看你順手哪個而已。

你要是覺得哪個語言「不夠膠水」,那就說明你還沒有完全掌握這個語言(逃……

3樓:趙者也

因為Python社群好,各種包隨著時間累積越來越靠譜那為什麼只有Python社群好呢?

因為Python奉行單一正規化哲學,即一件事情只有乙個最優解。

當你需要乙個包的時候,會覺得反正我自己寫乙個也差不多,不如用已有的。自己寫包的成就感和掌控感低於了用現成輪子的爽快感。

Pytho這個特性可以匯集人心,創造很多好包。社群發展軌跡是收束的。

反觀Npm,光語言標準就好幾種

4樓:Xpecya

不不不膠水語言很多,甚至可以說絕大多數語言全是膠水,只有為數很少的那麼幾個可以挺直了腰桿子說自己…不過是彙編的膠水。

問題的關鍵實際是,為什麼只有python四處宣傳他是膠水…或者說,更關鍵的是為什麼四處都是python的廣告…

5樓:匯智動力IT學院

膠水語言,是用來連線軟體元件的程式語言。通常指指令碼語言。

Shell、Python、Ruby、Lua、Tcl、Perl這一坨都可以被稱為膠水語言的。

被稱為膠水語言更多的不是因為它的庫如何,而是因為,它們真的很能「粘」,它們把一堆亂七八糟的程式粘到一起。

可Python並不是作為膠水語言才火的,而是在大資料和人工智慧領域上的表現,才受到了人們的追捧和鼓吹。

也正是因為Python火了,才會讓題主產生這種只有Python成了膠水語言的誤解吧~

6樓:山東中公優就業

一般真正的膠水語言是說shell工具,包括負責呼叫程式的shell本身和進行管道過濾的sed/awk甚至perl等。相比cat|grepkeyword|cut|awk|xargs這種管道組合,其實Python不算正統的「膠水語言」。

7樓:小說讀者

python成功了,但不是因為膠水,而是因為它的「簡明」,新一代的fortran. 事實上證明,大家都很需要這樣的語言。

8樓:iGuo

首先糾正題目中的錯誤:

「只有Python成了膠水語言」是錯誤的,理論上所有可以直接呼叫Shell的語言都可以成為膠水。

支援的庫多和膠水語言之間沒有因果關係,Python庫多,很多其他語言的庫也很多。

Python作為膠水語言的主要優點是語言設計對於膠水比較友好。

這個特性在其他語言的原生支援比較少,這個是Python被廣泛用作膠水語言的最大原因之一。

9樓:chenc

工程上的東西涉及因素太多,以人類的能力很難準確評估為什麼,不僅是事前無法評估,甚至於我們事後都無法評估。

python實際上不怎麼算膠水語言,或者說它不是靠膠水獲取這樣的地位的。膠水語言是指常用串起不同的東西用的語言吧,相比之下,shell,perl,lua這樣的才更像是膠水語言,甚至於c都可以算是膠水語言,畢竟,兩種不同的語言之間很可能都可以和c互調而且很可能只能跟c互調。我不怎麼覺得指令碼類都算是膠水語言。

10樓:shuhari

Python 的地位並不是天然形成的。這個領域的競爭者前有 tcl/perl,後有 lua/ruby。但 tcl 功能有限;perl 的主要問題是作者開發 Perl6 花了太多時間,導致語言一直得不到更新;Ruby 因為 Rails 很流行,社群的主要精力都放到 Web 開發了。

Python 則一直以來步伐都很穩健,不僅社群足夠活躍,各大公司也願意主動支援它,這是歷史選擇的結果。

但只有 Python 是膠水語言這個結論也是不太合適的。比如在運維領域,Ansible 等選擇了Python,而 Chef/Puppet 則選擇了 Ruby。OpenResty 主要支援 lua。

所以其他語言也還是有用武之地的,只是沒有 Python 那麼廣泛。

11樓:任衛

膠水語言很多,shell指令碼語言就是最廣泛的膠水。同樣還有tcl語言。

shell和tcl的初始定位就是膠水。

後續的高階語言裡,同時代的perl之前也廣泛做膠水來著,一度被很多作業系統預設安裝作為高階配置指令碼,語法還和shell很多相似之處呢。但實在忍不了,Python後來才反超perl並幾乎把Perl完全趕出了系統配置領域。

再往後的指令碼語言再也建立不起這樣的生態了。

-------0701補充------

我很好奇,為什麼這麼多人說Lua是膠水,是我實在太老落後於時代了?

是的,Lua能呼叫C語言元件,但有這能力的語言多了。Lua憑藉小身闆在各類遊戲各類工具上當嵌入的外掛程式語言挺好的。

但是要論合格的膠水,非shell指令碼莫屬。shell的目的就是在作業系統中負責粘合各類程式的。最最純正的膠水。

而且提供管道操作,這強力黏結能力無人能敵。甚至有shell,有awk、sed、jq這幾個外圍,你還要啥別的語言?黏在一起無敵的。

但終歸shell的效能那肯定是呵呵呵的。

shell的焊接技術一流,但是語法和資料結構還是欠缺了,特別是以前,TCL工具語言站了出來,不少有年頭的行業工具軟體當時都選擇了tcl來擴充套件開發功能。TCL語言留下來兩個瑰寶——Expect和tk。tk熟識吧,很多語言借鑑這個作為預設GUI庫,python的IDLE就是tk整的。

但TCL語言從shell借鑑了很多,但也沒有太多提高,不物件導向(後續有)等, 除了Expect和tk,它已慢慢不見了。

perl語言憑藉優秀的對文字和檔案的處理能力,一度風靡系統配置領域,去年我乙個伺服器不小心被侵入了,被遺留了乙個perl指令碼檔案。我對這門語言了解不多,下有bash,上呢,我還沒那麼老,有更好的python,我為什麼要學perl,對吧。

但是shell、tcl和perl裡惱人的$$鬼畫符有點多啊,python更接近自然語言的語法就友好多了,能力又強,沒理由不在這個領域成功。

粘合劑領域,簡單的用shell,再複雜點或shell粘不了的就用python。一般情況下,我有什麼理由選擇其他粘合劑?

為什麼兵家孫武孫臏吳起韓信,只有韓信完成了兼併滅掉其他諸侯滅項羽

李文 春秋時候大家都是打架鬥毆,目的是把對方打服,自己當社會大哥,前三個都處在這樣的時代。後來的時代才是拼命,有你沒我,有我沒你。 故劍情深 1,項羽是韓信滅掉的?2,時代的原因不能全部歸為某個人身上。孫武雖然有說法是兵聖,但孫武純粹理論派的,靠 孫子兵法 奠定地位的,其實戰就跟著伍子胥刷了一把經驗...

為什麼只有dota2做成了開源的飾品模式?

紀風 本來創意工坊就是v社的老招牌了,Dota2的飾品只由V社出那才奇怪。其他的公司有其他公司的做法,你管他幹嘛?如果是其他遊戲的對比,或許你能問個正經回答,但不好意思,你的問題裡包含了dota和lol。題外話 其實以前,我是很討厭dota玩家說lol玩家小學生的,但在看了rr aa和他的一眾真信徒...

為什麼桑巴足球踢成了成了傷疤足球?

引用一下之前回答乙個朋友的回答,他的問題是如果巴西內馬爾沒受傷是否可以和德國一戰 我當時的回答如下請君參考 雖然沒有如果但不妨如果一下即便有內馬爾和弟媳巴西這場能贏麼?我的答案是 不會輸得這麼難看。眾所周知,巴西是足球王國,一直以來都是足球強國,我沒能看上羅馬里奧巔峰時期但是能看到大羅的巔峰已經很有...