點擊“開發(fā)者技術(shù)前線”,選擇“星標??”
讓一部分開發(fā)者看到未來
作者 | Rhea Moutafis 譯者 | 蘇本如,責編 | 夕顏
隨著Python的停滯不前,一個新的熱門競爭對手崛起了。
由 Julia 編程語言創(chuàng)造者創(chuàng)立的 Julia Computing 宣布完成了 2400 萬美元(約 1.6 億元)的 A 輪融資。本輪融資由 Dorilton Ventures 領(lǐng)投,Menlo Ventures、General Catalyst 和 HighSage Ventures 參投。截至目前,Julia Computing 已籌集了約 2860 萬美元。
與此同時,前 Snowflake 首席執(zhí)行官
不要誤會我的意思。Python的流行仍然受到計算機科學家、數(shù)據(jù)科學家、人工智能專家,以及他們組成的穩(wěn)固社區(qū)的堅定支持。但是,如果你曾經(jīng)和這些人一起共進過晚餐,那么你就應(yīng)該知道他們對于Python的弱點有多少抱怨。從速度緩慢到需要過多的測試,再到盡管進行了先前的測試仍然會產(chǎn)生很多運行時錯誤 - 這些已經(jīng)足夠讓人惱火了。這就是為什么越來越多的程序員開始采用其他語言的原因,這些語言中最受歡迎的是Julia、Go和Rust。Julia非常適合數(shù)學和技術(shù)任務(wù),Go非常適合模塊化程序,而Rust是系統(tǒng)編程的首選。由于數(shù)據(jù)科學家和人工智能專家需要處理許多數(shù)學問題,因此Julia成為他們的贏家。即使經(jīng)過嚴格的審視,Julia仍然具有Python無法戰(zhàn)勝的優(yōu)勢。
當人們創(chuàng)建一種新的編程語言時,他們這樣做的目的是希望保留舊語言中的好特性,并修復其壞特性。從這個意義上講,Guido van Rossum在20世紀80年代后期創(chuàng)建Python的目的是為了改進ABC(Abstract Base Class - 抽象基類)。后者對于編程語言來說簡直太完美了 - 盡管其剛性使其易于學習,但在現(xiàn)實生活中卻很難使用。而Python則相反,它非常實用。你可以在下列Python的禪中看到這一點,它反映了創(chuàng)造者的意圖:- 優(yōu)美勝于丑陋(Python 以編寫優(yōu)美的代碼為目標)。
- 明了勝于晦澀(優(yōu)美的代碼應(yīng)當是明了的,命名規(guī)范,風格相似)。
- 簡潔勝于復雜(優(yōu)美的代碼應(yīng)當是簡潔的,不要有復雜的內(nèi)部實現(xiàn))。
- 復雜勝于凌亂(如果復雜不可避免,那代碼間也不能有難懂的關(guān)系,要保持接口簡潔)。
- 扁平勝于嵌套(優(yōu)美的代碼應(yīng)當是扁平的,不能有太多的嵌套)。
- 間隔勝于緊湊(優(yōu)美的代碼有適當?shù)拈g隔,不要奢望一行代碼解決問題)。
- 即便假借特例的實用性之名,也不可違背這些規(guī)則(這些規(guī)則至高無上)
Python仍然保留了ABC的良好特性:例如可讀性、簡單性和對初學者的友好性。但是Python比ABC更加健壯,更加適應(yīng)現(xiàn)實生活。
ABC為Python鋪平了道路,而Python也為Julia鋪平了道路。從同樣的意義上說,Julia的創(chuàng)造者們希望保留其他語言的優(yōu)點,而摒棄其缺點。但是Julia的野心要大得多:它不是想取代一種語言,而是想打敗所有語言。
我們很貪婪:我們想要更多。我們想要一種擁有自由許可的開源語言。我們想要C的速度和Ruby的活力。我們想要的語言是同調(diào)的(homoiconic),具有像Lisp這樣的真實宏,但又具有類似Matlab這樣的顯而易見的熟悉的數(shù)學符號。我們想要的語言像Python一樣適用于通用編程,像R一樣適用于統(tǒng)計,像Perl一樣自然地處理字符串,像Matlab一樣具有強大的線性代數(shù)處理能力,像Shell一樣易于將程序粘合在一起。我們想要一些簡單易學的,但卻能讓最嚴肅的黑客開心的東西。我們希望它是交互式的,我們希望它也是可編譯的。
Julia希望融合目前存在的語言的所有優(yōu)勢,而不是用其他語言的劣勢來平衡。盡管Julia是一門年輕的語言,但它已經(jīng)實現(xiàn)了它的創(chuàng)造者設(shè)定的許多目標。
Julia可以用于從簡單的機器學習應(yīng)用程序到巨大的超級計算機模擬的所有方面。在某種程度上,Python也可以做到這一點,但是Python不知何故發(fā)展成了這樣。相比之下,Julia正是為這個目的而生的。自下而上。Julia的創(chuàng)造者希望創(chuàng)造一種和C語言一樣快速的語言 - 但是他們創(chuàng)造出來的語言速度更快。盡管近年來Python變得更容易加速,但是它的性能和Julia相比仍然相去甚遠。2017年,Julia甚至加入了Petaflop俱樂部,這是一個小型的編程語言俱樂部,Julia的峰值性能可以超過每秒1 petaflop的速度。除了Julia,目前只有C,C ++和Fortran進入了這個俱樂部。憑借其 30 多年的歷史,Python 擁有一個非常龐大的支持社區(qū)。幾乎任何與 Python 相關(guān)的問題在一次谷歌搜索中都能得到答案。相比之下,Julia 社區(qū)非常小。雖然這意味著你可能需要進一步挖掘才能找到答案,但你可能會一次又一次地和同樣的人聯(lián)系在一起。這可能會變成超越價值的程序員關(guān)系。你甚至無需知道一條Julia命令,就可以在Julia中進行編碼。你不僅可以在Julia中使用Python和C代碼。甚至可以在Python中使用Julia!不用說,這使得修補Python代碼的弱點變得非常容易。或者在你還在學習Julia的時候保持高效。擁有數(shù)量龐大且維護良好的庫,仍然是Python的最強項之一。Julia沒有太多的庫,并且用戶還抱怨說它們還沒有得到令人驚訝的維護。但是,當你認為Julia是一門非常年輕的語言,并且資源有限時,實際上他們已經(jīng)擁有的庫的數(shù)量是相當可觀的。除了Julia的庫數(shù)量正在增加之外,它還可以與C和Fortran中的庫進行交互以處理繪圖。Python是100%動態(tài)類型的。這意味著程序?qū)⒃谶\行時確定變量是浮點型還是整型。盡管這對初學者非常友好,但它也引入了許多可能的錯誤。這意味著你需要在所有可能的情況下測試Python代碼。這是一項相當愚蠢的任務(wù),需要花費大量時間。由于Julia的創(chuàng)造者也希望它易于學習,因此Julia完全支持動態(tài)類型。但是與Python相比,你可以根據(jù)需要引入靜態(tài)類型。例如,以C或Fortran中的形式出現(xiàn)。這可以為你節(jié)省大量時間:你可以在有意義的任何地方指定類型,而不是為不測試你的代碼尋找借口。
StackOverflow的問題數(shù)量對比(左:Julia,右:Python)盡管所有這些聽起來很棒,但請務(wù)必注意,與Python相比,Julia仍然很小。一個很好的衡量標準是StackOverflow上的問題數(shù)量:目前,Python被標記的次數(shù)比Julia多二十倍!這并不意味著Julia不受歡迎, 相反,只是它在被程序員采用前自然地需要一些時間。想想看,你真的想用另一種語言來重寫你的整個代碼?不,你寧愿在未來的項目中嘗試一種新語言。這就造成了每種編程語言在其發(fā)布和采用之間都有一段不小的間隔。但是,如果你現(xiàn)在就采用它(這很容易,因為Julia允許進行大量的語言轉(zhuǎn)換),那么你就是對未來進行投資。隨著越來越多的人采用Julia,你已經(jīng)獲得了足夠的經(jīng)驗來回答他們的問題。另外,隨著越來越多的Python代碼被Julia取代,你的代碼將更加持久。
關(guān)鍵點:讓Julia成為你的優(yōu)勢四十年前,人工智能不過是一種小眾技術(shù)。業(yè)界和投資者對其并不信任,許多技術(shù)既笨拙又難以使用。但是那些當時學會它的人都已成為當今的巨人 – 市場需求如此之高,以至于他們的薪水與一個職業(yè)橄欖球大聯(lián)盟球員的薪水相當。同樣,Julia現(xiàn)在也很小眾。但是,隨著它的發(fā)展,最大的贏家將是那些早期采用它的人。我并不是說,如果你現(xiàn)在選擇Julia,你一定可以在十年內(nèi)賺到很多錢。但是,你正在增加你賺錢的機會。想想看:大多數(shù)程序員的簡歷上都有Python。在接下來的幾年中,我們會在就業(yè)市場上看到更多的Python程序員。但是,如果企業(yè)對Python的需求放緩,那么Python程序員的前景觀點就會暗淡。這個過程開始緩慢,但不可避免。另一方面,如果你能夠?qū)ulia納入自己的簡歷,你將擁有真正的優(yōu)勢。坦白講,是什么讓你有別于其他Python程序員呢?沒有什么東西。但是,即使三年后,也不會有那么多的Julia程序員。有了Julia的技能,你不僅證明了你自己對工作要求以外的興趣。你也證明了你渴望學習,并且對成為一名程序員的含義有更廣泛的了解。換句話說,你很適合這份工作。你,和其他Julia程序員將是未來的搖滾明星,你知道的。或者,正如Julia的創(chuàng)造者在2012年所說的那樣:盡管我們認識到自己的貪婪是不可原諒的,但我們?nèi)匀幌胍獡碛幸磺小4蠹s兩年半前,我們開始創(chuàng)造我們貪婪的語言。它還沒有完成,但是現(xiàn)在到了發(fā)布1.0版本的時候了 - 我們創(chuàng)造的語言叫做Julia。它已經(jīng)滿足了我們90%的苛刻的要求,現(xiàn)在它需要其他人的苛刻的要求來進一步完善它。所以,如果你也是一個貪婪,不講道理,要求苛刻的程序員,我們希望你能嘗試一下。
Python仍然很受歡迎。但是如果你現(xiàn)在開始學習Julia,那么你就可能握有了未來的黃金入場券。從這個意義上你可以說:再見 Python!你好 Julia!https://towardsdatascience.com/bye-bye-python-hello-julia-9230bff0df62— 完 —
點這里??關(guān)注我,記得標星呀~
前線推出學習交流一定要備注:研究/工作方向+地點+學校/公司+昵稱(如JAVA+上海
掃碼加小編微信,進群和大佬們零距離
后臺回復“電子書” “資料” 領(lǐng)取一份干貨,數(shù)百面試手冊等