日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python语言发明者 google_谷歌的语言何以战胜Python?50%的人都应该立即学习Golang...

發(fā)布時間:2024/7/23 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语言发明者 google_谷歌的语言何以战胜Python?50%的人都应该立即学习Golang... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

全文共2623字,預(yù)計學(xué)習(xí)時長9分鐘

圖源:dailybtc

很多軟件工程師視Python為最喜愛的語言之一,工作生活都和它死死綁定在一起。但Google, Uber, Dropbox, Soundcloud, Slack, 和Medium的軟件工程師并不是這樣。長期以來,頂級企業(yè)的程序員們一直迷戀于另一種語言。

盡管大部分開發(fā)者還在使用Python,但無論是對于API、網(wǎng)頁服務(wù),或是數(shù)據(jù)處理,高級員工都已經(jīng)增加了對于Golang(Go)的使用,它的表現(xiàn)棒極了!

由先驅(qū)建立

Go是由谷歌的一個全明星三人組發(fā)明的:

· Rob Pike參與開發(fā)了Unix環(huán)境,并參與創(chuàng)建了Limbo編程語言。

· 有了Ken Thompson,這個團隊就有了Unix和B語言(C語言的前身)的發(fā)明人。

· Robert Griesemer是谷歌的V8 JavaScript機器的負責(zé)人之一,同時也是谷歌創(chuàng)造的另一門語言——Sawzall的主要開發(fā)者。

谷歌最初正是用Python編寫的,但是在2007年前后,工程師們正在尋找一種更好的語言來執(zhí)行谷歌的主要任務(wù)。

Rob Pike在2012年的一次篇演講中提到了他們遇到的問題:

圖源:unsplash

· 構(gòu)建緩慢:生成新代碼需要很長時間。

· 依賴路徑不可控:你是否曾經(jīng)試圖安裝一個軟件包,結(jié)果卻發(fā)現(xiàn)你不得不安裝至少5個其他的依賴路徑和無數(shù)的子依賴路徑來讓它運行?是的,即使是谷歌人也有這個問題。

· 版本偏離:由于到處都是重復(fù)的代碼,工程師可能只會更新原始代碼片段的一個版本,而忘記其他版本。因此,最終得到的版本既包含新代碼,也包含舊代碼。

· 編寫自動工具較困難:編寫自動寫代碼的程序是可能的——事實上,大多數(shù)程序在某個階段都會這樣做。但在現(xiàn)代編程語言中,這仍然很難實現(xiàn)。

· 每個程序員都使用語言的不同子集:對于Python,一個開發(fā)人員可能使用numpy包,另一個更喜歡scipy包。諸如此類,當(dāng)程序員想要將他們的代碼混合到一個包中時,情況就會變得混亂。

· 程序理解能力差:那些說自己一讀代碼就懂的人是在撒謊,它不是一個簡單的“Hello World”程序。而且代碼的文檔通常幫不上什么忙——在大多數(shù)情況下,它甚至不存在,或者被編得很糟糕。

· 重復(fù)操作:你是否曾經(jīng)從程序的某個部分復(fù)制一段代碼?這是不好的做法。但大多數(shù)編程語言都使其易于實現(xiàn)。

· 更新成本高:在上面描述的這種混亂情況下,更新軟件需要花費大量的時間和腦力。

· 跨語言構(gòu)建:Python適合于中小型腳本,c++適合于復(fù)雜的程序,Java適合于web開發(fā),Haskell適合于有惰性但穩(wěn)健的代碼。結(jié)果是,一個程序常常包含許多不同語言的代碼片段。但是為了編譯、調(diào)試和保持簡潔,用一種語言編寫程序要好得多。

圖源:unsplash

于是三人組開始設(shè)計一種干凈、簡單、易讀的語言。一種可以消除或至少減輕軟件工程中這些常見問題的語言。

一門精簡的語言

這些常見問題的根源在于現(xiàn)代語言的復(fù)雜性。想想Python或C——你有沒有試著閱讀過整個文檔?祝你好運。相比之下,Go最大的特點就是簡單。這并不意味著你不能用它來構(gòu)建復(fù)雜的代碼。但Go考慮到了,不要有引入復(fù)雜性卻不能解決問題的特性。

例如,Go不像其他面向?qū)ο笳Z言那樣有類。作為其他語言中常用功能,類可以使一個對象繼承另一個對象的屬性。

問題是,如果試圖改變一個對象的結(jié)構(gòu)而不改變其他對象的結(jié)構(gòu),就會破壞代碼。Go有一個被稱為struct替代方法,其更偏向組合而不是繼承。

Go的其他主要特征是:

· 類型安全:在C語言中,使用光標(biāo)做任何事情——包括使程序崩潰。Go不會讓你這樣搞砸東西的。

· 正交性:這意味著如果在代碼中更改一個對象,其他對象不會因此而更改。與C語言不同的是,比如,如果你改變了一個變量,那么其他的變量也會隨之改變。Go是正交的,因為它使事情更簡單。

· 最小化:在Go中,只有一種方法來編寫代碼。而Python有無數(shù)種方法來編寫一個東西!

· 可讀性高:和Python一樣,Go會把可讀性放在第一位。因此它相比大多數(shù)語言來說對新手更友好,也使維護代碼更容易。

· 文檔化:尤其對于初級開發(fā)人員,他們覺得為了使別人可以使用代碼而寫一些關(guān)于代它的簡介是很乏味的。使用Godoc,這個過程會比大多數(shù)語言更加自動化,開發(fā)人員不需要浪費寶貴的時間來記錄他們所做的事情。

· 實用性:重要的東西應(yīng)該易于編寫代碼,即使這意味著其他事情不可能在Go中完成。邏輯是,你希望通過使重復(fù)的任務(wù)變得快速和簡單來提高開發(fā)人員的效率。如果有更復(fù)雜的問題他們可以用另一種語言來寫。

或許這些聽起來毫無創(chuàng)意,從某種意義上說,確實如此,這不是一種帶有時髦特征的語言,Go不是一種用來探索和研究的語言。

圖源:unsplash

但神奇之處正在于此,當(dāng)你嘗試著去創(chuàng)造一些能運行的東西的時候,當(dāng)你在一個團隊中,有許多不同背景的人在同一個代碼上工作的時候,當(dāng)你厭倦了其他語言帶來的混亂的時候,Go能救你于水火。

圖源:Golang website.

日益繁榮的社區(qū)

由于其簡單性,Go是當(dāng)今存在的最具協(xié)作性的語言之一。過去程序員們總是坐在自己的小隔間里,從不與別人見面,這樣的時代已經(jīng)一去不復(fù)返了。

現(xiàn)在,我們有StackExchange來解決所有的編碼問題。我們有Slack,Zoom,Google Meet等來和我們的團隊保持聯(lián)系。但現(xiàn)代語言仍然是為小隔間里的小書呆子量身定做的。

Go改變了這種局面。盡管比Python晚了20歲,但它擁有一個充滿活力的社區(qū)。他們將尊重、開放和友好置于行為準(zhǔn)則之上,雖然其他語言,如Python或C,也有類似的社區(qū)聲明,但對這些基本價值觀的強調(diào)較少。

因此,社區(qū)在Go年度調(diào)查中扮演著明確的角色也就不足為奇了

有關(guān)社區(qū)和領(lǐng)導(dǎo)力的問題 | 圖源:2019

數(shù)據(jù)不言自明

根據(jù)2019 Go Survey,谷歌的語言主要用于網(wǎng)站開發(fā)、網(wǎng)絡(luò)和系統(tǒng)編程。Python的前景看起來與之非常相似:

Python的使用數(shù)據(jù) | 圖源:2019 Python

唯一顯著的區(qū)別是有多少Python用于數(shù)據(jù)分析和機器學(xué)習(xí)。在這些領(lǐng)域,其他熱門的新語言也正在涌現(xiàn)。

你可以看到許多Python的用法都可能被Go所取代,包括46%的網(wǎng)絡(luò)開發(fā)46%,37%的系統(tǒng)管理和DevOps中,以及19%的網(wǎng)絡(luò)編程中。即使你認為許多開發(fā)人員完成了所有這三種工作,至少一半的Python支持者正在做他們在Go中可以做的事情。

事實上,開發(fā)人員已經(jīng)意識到Go提供的巨大潛力。根據(jù)Hackerrank的數(shù)據(jù),在2019年,大約有三分之一的程序員想學(xué)Go。

接下來的熱門語言 | 圖源:Hackerrank.

由于Go非常容易學(xué)習(xí),我們應(yīng)該會在未來幾年看到從Python到Go的轉(zhuǎn)變。雖然對于大多數(shù)公司,尤其是不像Dropbox或Medium那樣龐大有錢的公司來說,把所有的代碼重寫用Go編寫將是非常昂貴的。但對于新項目來說,你至少應(yīng)該嘗試一下。

給彼此一個機會,給未來一個可能,何不去試試Go呢?

留言點贊關(guān)注

我們一起分享AI學(xué)習(xí)與發(fā)展的干貨

編譯組:馬夢瑤、孫夢琪

如轉(zhuǎn)載,請私信小芯,遵守轉(zhuǎn)載規(guī)范

總結(jié)

以上是生活随笔為你收集整理的python语言发明者 google_谷歌的语言何以战胜Python?50%的人都应该立即学习Golang...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。