日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
GovsPython,我該選哪一門語言?

入門必備,高性價比輕量、CVM、GPU云服務器,每日限量開搶

哪個更好,Python 還是 Go?你今天應該學習哪種語言,為什么?兩者在性能、易學習性、可擴展性和快速原型設計方面如何比較?讓我們在 Python 和 Go 的這個友好且易于訪問的概述中找出答案,該概述由For the Love of Go 系列叢書的作者撰寫。

Python 和 Go 都很棒

首先,真的有必要說,Go 和 Python 都是絕對優(yōu)秀的編程語言。它們設計精良,功能強大,現(xiàn)代,相對易學,是幾乎所有應用的理想選擇。兩者都擁有強大的社區(qū),廣泛的應用,蓬勃發(fā)展的生態(tài)系統(tǒng)以及高商業(yè)價值。

無論你最喜歡哪一個,都是最值得學習的。你可能會想,討論結束,但讓我們再說一點。

讀到諸如 "為什么 Python 很爛",或者 "為什么我們從 Go 轉到 Python "之類的博文是很常見的。不客氣地說,這些文章對于理解可能影響你選擇的 Python 和 Go 的特性并不特別有價值,而且它們通常想論證一種語言更好。

但這真的毫無意義。對什么更好?任何編程語言都自然而然地代表了一系列的權衡:比如說,速度與安全的關系,或者是易學與正確性的關系。不同的語言會做出不同的權衡。你可以有把握地假設,任何廣泛使用的語言,如 Go 或 Python,平均來說,和其他語言一樣好......但也許在不同的事情上。

因此,讓我們拋開這個錯誤的兩難選擇,即要么選擇 Go,要么選擇 Python。我們可以學習和使用這兩種語言;這兩種語言在不同的領域都很出色,而且從職業(yè)的角度來看,這兩種語言都是非常有價值的技能。然而,假設你有有限的學習和練習時間,了解你想從事的開發(fā)領域偏愛哪種語言會有幫助。

因此,讓我們看看編程的一些不同領域,看看哪種語言更適合每個領域。

易學性

如果你是編程新手,你可能會從你的編程語言中尋找不同的東西,比如說,想為深空探測器寫操作系統(tǒng)的人。例如,你可能想要一種簡潔的語言,沒有大量的語法需要學習,或者一種靈活的語言,讓你以任何感覺最自然的方式表達自己。

Go 是一門刻意縮小的語言;例如,它沒有很多不同的方式來做同一件事,而且語言中也沒有很多三方工具來涵蓋你可能想要做的每一件事。相比之下,Python 有很多功能:類、lambda 、元組、迭代器、生成器,以及更多。

然而,Python 的語法感覺相當自然;它看起來像這樣。

for path in paths:
    if path == '-':
        text = sys.stdin.read()
    else:
        fp = codecs.open(path, 'r', opts.encoding)
        text = fp.read()
        fp.close()

Go 很簡單,但簡單并不等同于容易。如果你是新手,可能很難弄清楚某段 Go 代碼在做什么。

func (forceApi *ForceApi) getApiSObjects() error {
    uri := forceApi.apiResources[sObjectsKey]

    list := &SObjectApiResponse{}
    err := forceApi.Get(uri, nil, list)
    if err != nil {
        return err
    }

另一方面,雖然一開始可能更有挑戰(zhàn)性,但你很快就會達到熟悉 Go 中一切的程度。要達到這個階段,Python 需要更長的時間,因為有更多的東西需要學習。

然而,如果你正在邁出編程的第一步,使用 Python 可能會是一個更容易和更愉快的經(jīng)歷。

高性能

如果你是編程新手,你可能會驚訝地發(fā)現(xiàn),對于大多數(shù)程序來說,性能幾乎不重要。一般來說,可讀性和可維護性要比原始速度重要得多。但是,當性能確實重要時,在游戲、數(shù)據(jù)庫或大規(guī)模網(wǎng)絡服務等應用中,它真的很重要。

Go 是一種編譯語言,這意味著 Go 的源代碼會被翻譯成機器語言,供你在特定的處理器上運行:ARM 芯片、X86_64,或者其他。

這使得 Go 程序總體上比 Python 中的同等程序快得多。Python 是一種解釋語言,這意味著它不直接在 CPU 上執(zhí)行。相反,另一個程序,即解釋器,讀取 Python 源代碼,并將其即時翻譯成機器指令。

需要注意的是,對于你所寫的 99% 的程序來說,性能遠沒有簡單性和可讀性重要,如果你碰巧需要寫一些執(zhí)行速度非常快的程序,Go 將是你的第一選擇。

數(shù)據(jù)科學

科學家,包括數(shù)據(jù)科學家、機器學習開發(fā)者,以及需要做復雜數(shù)值和統(tǒng)計分析的人,都喜歡 Python。它已經(jīng)存在了很長時間,并且為科學計算建立了一個偉大的生態(tài)系統(tǒng):數(shù)學、統(tǒng)計、人工智能、模擬、圖像處理、分布式處理等等。這些庫和社區(qū)非常成熟,并提供了大量的資源。

并不是說你不能用 Go 做這些事情,而是人們在 Python 中做這些事情的時間更長,它或多或少擁有這個空間。如果你在做科學和工程應用,你幾乎肯定會用 Python 做。

高擴展

當我們談論 "擴展性"時,我們通常意味著很多事情發(fā)生得非??欤好棵霐?shù)百萬次的交易,成千上萬的服務器,數(shù)千兆字節(jié)的數(shù)據(jù)。這給程序員帶來了一些挑戰(zhàn):他們需要他們的程序快速、小巧、易于部署和操作,而且最好對并發(fā)有很好的支持。

這些都是 Go 非常強大的領域。正如我們所看到的,Go 程序是經(jīng)過編譯的,所以它們的執(zhí)行速度自然很快,而且它們可以作為一個小的二進制文件來部署。相比之下,Python 程序是以源代碼的形式部署的,而且它們還需要 Python 解釋器、庫等等。即使使用容器,用 Go 來大規(guī)模部署和運行應用程序也要容易得多。

Go 從一開始也是為并發(fā)而設計的。它支持超輕量級的線程,稱為 goroutines,一個程序可以同時運行數(shù)百萬個 goroutines 而不會產(chǎn)生問題。雖然 Python 支持并發(fā)進程和線程,但使用起來比 Go 要復雜一些,而且性能也沒有那么好。

對于大規(guī)模、低延遲的應用,尤其是涉及大量并發(fā)的應用,Go 是你應該首先關注的語言。

快速原型設計

在軟件開發(fā)中很常見的是,我們事先并沒有對程序的所有詳細要求。相反,我們只想讓一些東西運行起來,證明這個概念,并給我們一個簡單的原型,我們可以向用戶展示,這樣我們就可以得到反饋。

Python 是一種優(yōu)秀的快速原型語言;我們可以把我們的想法以一種幾乎看起來像英語的形式快速寫下來,而且所產(chǎn)生的程序可能會運行,或多或少。Python 的動態(tài)類型是非常寬容的;它意味著你不需要確切地知道什么是什么,就可以處理它。

相比之下,Go 是相當嚴格的。它是靜態(tài)類型的,這意味著編譯器堅持事先驗證你傳遞給一個函數(shù)的每一個值,比如說,正是它應該有的類型。這可能會使編程經(jīng)驗感覺有點像在做大量的文書工作,只是為了讓一個簡單的概念證明運行。

對于超快速的原型開發(fā)、實驗和用快速腳本解決一次性問題,Python 是理想的選擇。

總結

我希望這篇文章能讓你相信 Python 和 Go 都值得你認真考慮。如果可能的話,你應該爭取在這兩種語言中至少獲得一定程度的經(jīng)驗,因為這對你在任何技術職業(yè)中都是非常有用的,甚至如果你把編程作為一種愛好的話。

你現(xiàn)在知道的足夠多了,可以拒絕所有旨在說服你相信 Go 或 Python 在某種絕對方式上比另一個更好的點擊率文章,或者至少用非常挑剔的眼光來閱讀它們,并理解它們在很大程度上只是表達作者的個人偏好。

這沒關系:編程是一項非常主觀和個人的活動,你用你最喜歡的語言比用一個計算機科學家小組認為理論上優(yōu)越的語言更有成效。另外,你也不會覺得有必要寫博客文章侮辱那些喜歡不同語言的人;你明白他們只是對不同事情的優(yōu)先考慮。

因此,你同時嘗試 Python 和 Go,看看你更喜歡用哪種語言編程,真的很有意義,不是嗎?當你寫了一堆玩具程序或編碼挑戰(zhàn),也許每種語言都有一個非簡單的程序,你就能更好地決定你想優(yōu)先學習哪種語言了。

最后一點:好的程序員就是一個好的程序員,無論他們現(xiàn)在用什么語言工作。作為一名軟件開發(fā)人員,你所學到的大多數(shù)技能都可以很好地轉化為其他語言和技術棧,所以今天選擇學習什么并不重要。

忽略那些炒作的言論,跳過那些過度炒作的博客文章,讓你自己決定:當涉及到 Python 和 Go 之間的選擇時,只有你的意愿是重要的。


網(wǎng)頁標題:GovsPython,我該選哪一門語言?
文章來源:http://www.5511xx.com/article/ccojchd.html