2019年Python、Golang、Java、C++如何選擇?


前言

作為開發者我們都知道,開發后台語言可選擇的方向會很多,比如,Java,go,Python,C/C++,PHP,NodeJs….等很多,這么多語言都有什么樣的優勢?如果讓你學習一門后端語言,又該如何選擇呢?

Java

編譯語言,速度適中(2.67s),目前的大型網站都是拿java寫的,比如淘寶、京東等。主要特點是穩定,開源性好,具有自己的一套編寫規范,開發效率適中,目前最主流的語言。

作為編程語言中的大腕。具有最大的知名度和用戶群。無論風起雲涌,我自巍然不動。他強任他強,清風拂山崗;他橫由他橫,明月照大江。

Java可以做什么:

安卓和IOS的應用開發、視頻游戲開發、桌面GUI、軟件開發等等;

Java的優點:

  • Java開發人員需求量大:這個是根據統計得出的。JAVA在很多語言當中,是需求量最大的;

  • 進化語言:首先C++是基於C語言優化的,Java是被優化過來的。而且在這人平台是增加了很多的功能,lambda等功能

  • 安卓應用開發:谷歌的安卓移動平台是世界第一的移動平台,編寫安卓應用開發者使用的主要語言是Java;

Java的缺點:

  • 使用大量的內存:Java和C++相比使用更多的內存所以占用的內存就更大

  • 學習曲線:這邊指的是Java雖然不是最簡單的入門語言,但是也不是最難- -||

  • 啟動時間慢:用java寫過安卓的應用的人應該都知道。同樣的代碼在模擬器中啟動是非常緩慢的事情。

c#

執行速度快(4.28),學習難度適中,開發速度適中。但是由於c#存在很多缺點,京東、攜程等大型網站前身都是用c#開發的,但是現在都遷移到了java上。

C/C++

現存編程語言中的老祖,其他語言皆由此而生。執行速度最快無人能及。但是寫起來最為復雜,開發難度大。

C++目前是被看做編寫大型程序應用最好的面向對象編程語言。C++是C語言的升級版本;

C++用來做什么:

搜索引擎、軟件開發、操作系統、視頻游戲等

C++的優點:

在熟練掌握了C++之后,處在各個位置當中都能成為佼佼者。使用C/C++的話,幫助我們更理解其他編程語言。比如說是Java或者是Python是如何進行內存管理以及如何處理缺陷;能調整性能:C++能允許調整你的應用性能以及影響所有計算機性能,它寫起來的話比Java來說就並不是很友善,但是我們也可以利用C++做很多事情;

C++的缺點:

學習困難:C++相對來說學習難度很大,但是如果我們可以流暢使用的話,會圓圓超過其他的程序員;尺寸很大:C++可以稱為巨大,它的大部分功能互相影響是機器復雜的方式。沒有開發者是可以使用全部提供的組成部件。但是會發揮大量的時間來挑選你的程序的子部件的。

Javascript

編程語言中特立獨行的傲嬌美女。前端處理能力是其它語言無法比擬。發展中的js后端處理能力也是卓越不凡。前后端通吃,舍我其誰?

Python

腳本語言,速度最慢(258s),代碼簡潔、學習進度短,開發速度快。豆瓣就是拿python寫的。Python著名的服務器框架有django,flask。但是python在大型項目上不太穩定,因此有些用python的企業后來遷移到了java上。

學完之后可以干什么:web開發、應用開發、大數據、數據挖掘、科學計算、機器學習、人工智能、運維、自然語言處理等等等。

Python的優點:

  • 易於學習:就像是樓主說的,逛了下論壇發現做了幾年Java或者是C++的,幾天就可以寫Python了。但是這個不是什么壞事,入門來說,從簡入難,或者從難入簡,都是很好的選擇。

  • 庫:庫都是免費的,並且有很多庫和函數把編程變得相對容易很多。

  • 物聯網:Python也許是會成為物聯網當中最受歡迎的語言,我們都知道Instagram的后端的確是用Python開發的,用的還是Django

Python的缺點:

  • 速度:開發速度是快,比如java100行代碼python20行就搞定了。但是作為解釋型的語言來說,比編譯型語言的速度慢很多。

  • 移動端:Python在移動計算方面是弱的,很少有智能機的應用是Python開發的

  • 設計:python是動態型的語言,需要更多的測試以及錯誤僅僅是在運行的時候展示的。

scala

編譯語言,比python快十倍,和java差不多,但是學習進度慢,而且在實際編程中,如果對語言不夠精通,很容易造成性能嚴重下降。,后來比如Yammer就從scala遷移到了java上。微服務框架有lagom等。

Go

編程界的小鮮肉。高並發能力無人能及。即具有像Python一樣的簡潔代碼、開發速度,又具有C語言一樣的執行效率,優勢突出。

go語言的難度,相對來說,GO語言不難的。可是GO語言的學習資料相對其他的語言來說很少,所以學習起來沒有其他的語言那么便利;

很多人說GO語言在國內更火,按照數據來說,是的。因為中國人多,基數大。其實GO在國外更火。對於現在來說,GO實際上也已經站穩腳跟了。不管是Google自帶光環也好,實際應用也好。go算是找到了屬於自己的空間。

GO語言的優點:

  • 編譯時間快:GO語言編寫最大的微服務的時間大概需要6秒,相對Java和C++呆滯的編譯速度來說,GO語言快速編譯是主要的效率優勢。

  • 並發性和通道:GO語言的logo大家可以了解一下,它就是致力於事情簡單化,也就是快。其實並沒有引入很多的新的概念。就是打造一門簡單的語言,使用起來很快。在goroutine上運行一個函數最小的樣板代碼,我們只需要使用關鍵詞go添加函數調用

  • 生態系統也是很強大的:面向Redis、RabbitMQ、Template等等很多穩定的庫。有很強大的工具支持。

    GO語言的缺點:

  • 缺少框架:GO是沒有一個主要的框架。但是很多人認為不應該從框架的使用開始。也可以從社區的討論了解一下這個問題。

  • 錯誤處理:在錯誤處理方式,很容易丟失錯誤發生范圍,所以在編程過程中很難向用戶提供出有意義的錯誤信息。

  • 軟件包管理:在默認的情況下,沒有辦法制定特定版本的依賴庫。、也沒有辦法創建可以復寫的builds。

最后

上面列舉了幾種常見的語言,其實還有很多。最后注意的是:沒必要糾結語言,它只是工具,而且不同的語言針對的場景也不同。如果是創業公司,從快速開發來說,應該選擇PHP或Python;同樣如果是體量較大的成熟應用,對於不同的業務層,會有多個語言,如Java,Go等。

如果讓你用一門語言做web,你將會選擇哪個語言寫后端?歡迎一起探討~

閱讀更多

一波Flutter酷炫特效來襲

從來不糾結算法,冒泡排序這樣優化?

2019大廠Android高級面試題匯總

堅持:學習Java后台的第一階段,我學習了那些知識

作為面試官的一點點感悟,談談技術人的成長之路

相信自己,沒有做不到的,只有想不到的

在這里獲得的不僅僅是技術!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM