人生苦短,Python、Java「二選一」 真有那麼難?

不知道瞧不起Java和Python的同學看到這篇文章後會不會哭暈在廁所。本篇,我們僅討論Java和Python之爭。

人生苦短,Python、Java“二選一” 真有那麼難?

“Java是不可動搖的老大,而Python勢頭正猛”,直到現在,這對於想要學習編程語言的0基礎同學來說,二者怎麼選仍是一件抓耳撓頭的事兒。

人生苦短,Python、Java“二選一” 真有那麼難?

人生苦短,Python、Java“二選一” 真有那麼難?

翻遍知乎與Quora,許多已經成為或者想要成為程序員的網友們圍繞這一主題,進行了深入探討。

簡單總結一下,贊同Java的網友認為:

“如果你是0基礎並且從來沒有體系地學習過編程,那麼最好選擇Java作為人生第一門語言。因為這不僅僅是理解代碼運行過程的問題,同樣還需要理解什麼是類、算法、流程圖、庫、函數、以及面向對象的概念。”

“初學者一旦理解這些細節,後面只需要花極少的時間,就可以基本學會C++、JavaScript、PHP、Python、R、C#、Objective-C、Swift、Go。”

“當我們學會了一門技術難度要求更高的技能以後,再去降級學習難度更低的技能是非常容易的一件事情,反之則不然。”

而讚賞Python的同學@changjiz則表示:

“首先Python作為一門腳本語言,很容易入門。編程並不是說掌握一門或幾門語言就足夠了,重在提高思維能力。而Python容易入門,工具多,短短數行代碼就可以實現一個強大的功能,增強初學者的信心,另一方面讓初學者有一個對編程思維的初步理解。

在這之後再學習Java,首先語法很容易入門,再者對編程有一定理解後,才更能體會到類、繼承、接口,甚至之後接觸各種框架,這些內容對於大型項目帶來的優勢。”

人生苦短,Python、Java“二選一” 真有那麼難?

誠然,從Python和Java二者的學習難度上講,後者的難度不言而喻。如上圖所示,同樣寫一段“Hello,World”的代碼,在Python環境中可以用更為直觀的編碼方式呈現。也正因如此,Python大大降低了初學者的學習門檻。

不過,就實際情況來講,初學者學習任何一種語言都需要綜合考慮是否適合自己。在此筆者先拋給大家一個問題:如果給你機會嘗試學習一門人類語言(例如法語和日語),你會選擇哪個?雖然多數同學嘴上說要跟著興趣選擇初級難度較大的法語,但身體還是很誠實地擁抱了容易上手的日語,到最後則因缺乏興趣和明確的目標而不了了之。這樣的場景是不是似曾相識?

因此,科學判斷和選擇你的第一個編程語言更為重要。

使用情況:

與Java相比,Python擁有不斷被增強的數據分析工具包,能與各種語言進行協作,支持多種操作系統和多類型的數據庫,可以說是比Java更為高級的語言。

例如,在開發效率上,Python所需要編寫的代碼量比Java所需的代碼量更短。在Java環境中,只有變量名稱與變量類型和對象本身相關;而在Python環境中,每個變量都與該對象相關聯,用戶在創建變量時不必聲明變量類型。

不過,在運行時間上,Python在程序執行時間上比Java慢三到五倍。

此外,與靜態類型的語言Java相比,Python屬於動態類型。這也就意味著:同一件事情可能取決於上下文而發生改變不同。隨著Python應用程序變得越來越大,越來越複雜,可能未來因為錯誤難以追蹤和修復而很難進行維護。因此,也更加需要從業者的相關經驗和洞察力知道如何設計代碼或編寫單元測試,以簡化可維護性。

通過以上對比可以發現,從開發效率上講,Python語法簡潔、容易上手,從運行時間和運行效率上講,Java則更勝一籌。

趨勢:

近段時間以來,在各大權威榜單上,Java仍霸佔榜首,但Python的勢頭也很強勁,甚至有後來居上的意味。

在GitHub 2017年度報告中,Python 超越 Java 成第二受歡迎語言。

人生苦短,Python、Java“二選一” 真有那麼難?

在 ranked.com 的排名中,Python 是 2017 年最受歡迎人工智能編程語言。根據 Stack Overflow 流量統計,2017 年 6 月,Python 第一次成為高收入國家 Stack Overflow 訪問量最大的標籤。

在 TIOBE 2018 年 4 月編程語言排行榜前 20 名中,Python 已躍居到第四位,前三分別為 Java 、C、C++。

根據CSDN公佈的中國軟件開發者調研數據顯示,儘管Java依然是開發者使用最多的編程語言,Python成為越來越多的開發者未來計劃學習的編程語言首位。

頂層建設:

2014年,據計算機協會(ACM)發佈的一項調查表明,Python已經超過Java作為向美國學生介紹編程和計算機科學的頂尖語言,十大計算機科學部門中有八個使用Python來教授編程。這表明Python已是教授計算機科學入門課程最流行的語言。

人生苦短,Python、Java“二選一” 真有那麼難?

回到國內,隨著Python 進入小學課本、Python 進入浙江省高考、國務院發佈《新一代人工智能發展規劃的通知》等頂層建設的不斷完善,全民學習Python的熱潮正不斷升溫。

應用範圍:

基於人工智能和機器學習的熱潮,很多科技公司都在應用 Python 語言。如在谷歌,有谷歌爬蟲、谷歌廣告、Google App Engine、Google earth 等;在騰訊,有基於 Python 開發的藍鯨遊戲運維平臺;而 YouTube也同樣使用 Python 語言開發;在 Facebook,有大量的基礎庫均是通過 Python 實現.....

此外,還有諸多通過Python 實現的功能應用,比如利用 Python 爬取網頁製作電子書、用 Python 編寫 Face ID 破解 iPhone X、用 Python 快速實現區塊鏈、用Python寫小遊戲、甚至用Python寫一個自動搶票的腳本。

而Java的應用範圍更為廣泛,並壟斷了企業級應用的開發。

總的來說,這兩種語言對開發人員和最終用戶來說都具有獨特的優勢。

薪資水平:

人生苦短,Python、Java“二選一” 真有那麼難?

根據100Offer 1月發佈的一項調研報告顯示:2017是十大互聯網熱門崗位中,Java仍是需求量最大的崗位,而Python的需求量相對靠後。然而,從薪資水平上講,Java崗位薪資水平稍遜於Python。

1995年,Java1.0版本發佈。直到最近,Java 10正式版發佈(Java11也正在行走的路上……),如今,它被廣泛應用於智能手機和平板電腦的關鍵編程平臺。而Python則於1989年首次發佈,作為一種高級編程語言,它為可讀代碼提供了強有力的支持。

總的來講,無論選擇哪種語言,對於走上技術之路的程序員都會有各自不同的優勢。而對於初學者而言,更重要是如何將不同語言之間的相似之處關聯起來,去不斷領悟各種不同的語言、不同的平臺的的相似點。

畢竟,重要的是編程能力,而非僅僅某一種語言。

奉上近段時間在YouTube上火爆一時的“Which Programming Language Should I Learn First?”視頻,主講人Craig Dennis給出了自己的見解,希望給予你更多的思考。

視頻網址:

https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=v0636i9n946&autoplay=false&full=true&show1080p=false

來源:CSDN
參考:https://blog.csdn.net/CSDNedu/article/details/80063505?utm_source=home4


分享到:


相關文章: