趕超 Python 與 Java,JavaScript 問鼎最受歡迎的程式語言

2021-02-14 書圈

現實世界中,作為程式設計師,選擇哪一門程式語言並不會如生死攸關那般重要。畢竟大多數常見的程式語言的基本概念都大同小異,且對於編程新手來說,大多數程式語言看起來都差不多,它們可以讓你獲得近乎相同的結果。但從開發人員的角度來看,程式語言不僅是一種工具,而且選擇正確的程式語言將會影響一個人的職業生涯、錢途以及未來生活的幸福指數。

在此,本文將基於 2018 年的開發者生態系統報告,剖析當前主流程式語言的趨勢,探索在新的一年中,最具潛力、最值得學習的程式語言。


作者 | Rafi Zikavashvili

譯者 | 安翔

責編 | 屠敏

出品 | CSDN(ID:CSDNNews)

選擇編碼語言需要進行各方面權衡。對於初學者來說,需要在學習代價和收益之間找到平衡點。此外,還需要清楚程式語言的長期前景。對於 21 世紀初的 Web 開發人員來說,PHP 和 Ruby on Rails 很顯然是提升自己職業發展的最佳語言。而如今的市場條件已經發生了巨大的變化,PHP 和 Ruby 不再是我們首推的選項。

本文提供了一份我們在 2019 年最應該學習的程式語言指南。我們會一一介紹這幾種語言,並且探討其用途和長期前景。我們還會列舉幾個用於專業特定領域的程式語言。為了顯示每種語言的市場份額及佔有率,我們參考了  Stack Overflow 2018 年開發者調查報告中的程式語言排名。

學習一門新語言的關鍵原因之一是能夠利用它增加開發者的就業機會。編程面試是僱主了解開發者對該程式語言了解程度的重要途徑。為了更好地幫助開發者通過編程面試,本文會提供一系列在面試中可能涉及的問題。

我們參考了 Stack Overflow 調查,並根據推薦力度對這幾種程式語言進行了排名。此外,我們將這份榜單的程式語言限制為命令式語言,而不包括聲明性語言,比如 HTML、CSS 和 SQL,以及 shell 腳本語言,比如 Bash。

第 1 名:JavaScript

在 2015 年,有 54.4% 的開發人員將 JavaScript 列為最受歡迎的技術。而 2018 年的Stack Overflow 開發者調查報告顯示,JavaScript 位居榜首,有高達 71.5% 的專業開發人員將 JavaScript 評為最受歡迎的程式語言,增長幅度非常大。

這種大幅增長的重要原因在於 JavaScript 幾乎無處不在。針對客戶端領域,你可以使用諸如 Angular、React 和 Vue 等 JavaScript 前端框架來構建基於瀏覽器的 Web 應用程式。而 Node.js 能夠讓開發者使用與前端一樣的程式語言來開發後端程序。使用 Node,開發者可以編寫 Web 服務端程序,用來管理物聯網(IoT)項目,或者進行機器學習實驗。在眾多程式語言中優先選擇 JavaScript 的另一個重要原因在於,它得到了整個軟體行業的廣泛支持,Google、Facebook、微軟以及亞馬遜等科技巨頭都在大力使用 JavaScript。開發者可以找到有關 JavaScript 的各種各樣的學習資源,比如收費或者免費的課程、網站、書籍、視頻以及博客,這些資源涵蓋了該語言的方方面面。

在大部分時間裡,JavaScript 一度被認為是程式語言領域的醜小鴨。儘管它至今未能變成美麗的天鵝,但在 JavaScript 社區齊心協力的努力下,它已經從基於瀏覽器的腳本語言變成了現代的多功能語言。隨著時間的推移,JavaScript 的缺點越來越少。

值得注意的是,關於 JavaScript,許多僱主將在編程面試中通過候選人對JavaScript 特殊功能的了解程序來評估候選人能力。常見的編程面試問題會涉及到變量範圍、閉包、回調以及條件運算符。任何從事 JavaScript 相關工作的開發者都應該熟知類似的面試問題。此外,我們還建議開發者去了解自己心儀的公司,研究其使用的技術棧,並熟悉相關的框架(例如 React、Angular 或者 Vue),從而能夠在面試中展示自己的能力。


第 2 名:Python

Stack Overflow 調查顯示,Python 受到了 37.9% 的專業開發者的親睞。在過去五年中,Python 的發展速度比其它任何語言都快。如今 Python 的影響力非常巨大,就連很少涉及開發者相關主題報導的著名雜誌經濟學人也在最近的一篇文章中提到了 Python 語言(https://www.economist.com/graphic-detail/2018/07/26/python-is-becoming-the-worlds-most-popular-coding-language)。

Python 受到熱捧的一部分原因在於它擺脫了很多其他語言的惱人慣例,比如它捨去了用來表示語句結束的分號。正是因為其簡潔,Python 才得以取代 Java 作為計算機科學教學的主要語言,不僅大學,而且高中和小學的編程課程都優先選擇 Python 來教學。在學術界,Python 已經成為機器學習和數據科學領域最流行的通用語言。事實上,Python 目前已經在這些領域佔據了主導地位,在數據科學領域提出了 Python 與 R 語言結合使用的方案。

Python 與其他編碼語言相比既有相似也有不同。Python 開發人員在面試時,首先會被考察對程式語言基本知識的理解,例如數據類型、模塊化、函數和類。此外,候選人還可能會被問及如何編寫 Python 腳本、如何使用 Python 進行面向對象編程或者如何使用 Python 進行函數式編程等問題。更進一步,開發者還需要了解 Python 特定的數據類型和功能,例如元組、列表推導、字典和裝飾器。

第 3 名:Java

Java 在這份榜單中排名第三。根據 Stack Overflow 2018 年的調查,有45.5%的專業開發人員青睞 Java。

Java 能夠持久地對開發者產生吸引力的一個重要原因是 Java 虛擬機(JVM)。JVM 使得用 Java 編寫的程序能夠在不同的硬體平臺和設備上運行。Java 還能夠幫助開發者處理數據類型和內存管理相關的讓人頭疼的任務。Java 簡化了應用程式的開發,並且同一 Java 程序可以部署在不同的作業系統上,這使得 Java 成為大公司的首選語言。如此一來,只要你學好 Java,就很容易在大公司謀得一份不錯的開發職位。Java 的另外一個重要用途是編寫原生 Android 應用程式。隨著 Android 作業系統在智慧型手機領域的遙遙領先,這促發了更多的開發人員學習 Java,從而投身 Android 應用開發大潮之中。

近年來,為了廣泛利用 Java 的生態系統,有很多程式語言被創造,或者移植到 JVM。這些語言在特定領域中熠熠生輝,比如 Scala、Closure 和 Kotlin。Kotlin 有許多有趣的用途,比如編寫 Android 應用程式和使用 Corda 框架開發區塊鏈。

Java 開發人員在面試時,理解語言的範圍非常重要。面試內容可能會涉及任何與Java 相關的主題。作為一名企業級軟體 Java 開發者,你需要具備對 Java 基礎結構的深刻理解,比如 JDK、JRE 和 JVM。Android 開發人員將被問及與 Android 相關的問題,包括 SDK 版本管理、intent、設備模擬以及應用程式部署過程。假如你面試的公司使用的是基於 JVM 的其他程式語言,那麼你需要證明自己對該語言足夠了解。

第4名:C#

在參加 Stack Overflow 2018 年調查的開發者中,有 35.5% 的專業人士是微軟 C# 的粉絲。儘管很多開發者對微軟的所作所為有些反感,但是在這份榜單中,僅有 JavaScript、Python 和 Java 的排名高於 C#。當然,Bash 腳本語言 40.4% 的支持率也比 C# 高,但是腳本語言不在本文的討論範圍內。

目前 Java 的支持率的確比 C# 高,但是從長遠來看,種種跡象表明這種現狀會發生改變。Java 提供新功能的步伐已開始放緩,而微軟一直在積極為 C# 增加新的特性和功能。微軟為了擺脫自身對 Windows 作業系統的依賴,一直法力與其他新的領域,包括購買 Xamarin 及其跨平臺開發環境,發布多平臺 .NET Core ,以及對 Azure 持續投資。C# 在未然的企業戰略中扮演著重要角色,微軟也在努力確保 C# 可以同時使用微軟技術和開放的行業標準。

與 Java一樣,C# 語言同樣擁有強大的生態系統。這意味你在面試 C#職位時,需要對僱主的未來市場有一定程度的了解。與 Java 一樣,大多數 C# 面試都包含了與C#基礎架構相關的問題,包括 .Net 框架和公共語言運行時(CLR)。值得注意的是,CLR 還可以託管其他語言,例如 F# 和 VB.net。如果你面試的公司使用 C# 以外的 CLR 語言,那麼你需要了解這門語言。

第5名:C / C ++

雖然 C 和 C ++ 是兩門不同編程模型的獨立語言,但它們之間的聯繫非常緊密,本文將把它們一起討論。

對於通用和專用任務,例如應用程式開發、用戶界面、行動應用程式和機器學習,C 語言都完全不擅長。但是,在嵌入式系統和作業系統領域,C 仍然佔據絕對的主導地位。Linux 就是最好的例子。Linux 是有史以來最流行的作業系統,它既可運行在大型設備上,也可運行在小型的行動裝置上。Linux 最核心的部分是 Linux 內核,而 Linux 內核就是用 C 語言編寫的。C 語言的另一個常見用途是編寫其他程式語言,比如榜單的第二名 Python 語言就是用 C 語言編寫的。

C ++ 是更現代的並且面向對象的 C 語言版本。C ++ 通常用在對性能要求很高的領域。例如,許多涉及金融業務公司的後端系統中就會選擇使用 C ++。C++ 以高性能著稱,因此它是圖形密集型應用程式的首選語言,比如遊戲開發、圖形引擎、虛擬實境和增強現實。

在參加 C 或者 C ++ 的面試時,面試官可能會提出一些適用於這兩種語言的問題。這包括編碼有關的數據類型、運算符、循環、條件語句、指針和內存管理等問題。開發者可能還會被要求定義和解釋鍊表,以及編寫實現和管理鍊表的簡短程序。由於 C ++是面向對象的語言,因此與面向對象有關的對象、類、方法、屬性等問題都有可能被問到。

其他語言

本文榜單中前五的語言都是通用型的。除此之外,在某些特定領域,同樣有很多相對小眾的程式語言,我將列舉如下。

這其中,蘋果的 Swift 應當是關注度最高的語言。Swift 是蘋果公司推出的新型通用語言,旨在取代 Objective-C。Swift 可用於編寫 iOS 和 Mac 桌面應用程式,蘋果公司將其開源,希望它能夠成為伺服器語言。遺憾的是,希望暫時落空。

在 Web 開發領域,PHP 仍然十分盛行。儘管 PHP 語言存在很多局限性,並且市面上有很多針對它的替代品,但是 PHP 如今仍然被許多大型網站使用,例如 Facebook 和維基百科。Facebook 甚至創建了自己的 PHP 改良版,名為Hack。PHP 也是許多大型開源平臺使用的語言,例如 WordPress 和 MediaWiki。這些平臺得到了廣泛的應用,PHP 用於為它們創建插件。Facebook 仍然熱衷於使用 PHP,甚至還創建了自己的現代化版本的 PHP: Hack 語言。Ruby 就是一個PHP 的完美替代品,它更加現代並且設計得更好。Ruby on Rails Web 開發框架得到了廣泛的部署,並擁有有龐大而活躍的社區。

在一些更加專業的領域,比如系統編程領域,谷歌的 Go 和 Mozilla 的 Rust 看起來都很不錯。兩種語言都旨在構建高並發的系統。在函數式編程領域,Elixir 是 Erlang 的替代品,Clojure 是一種在 JVM 上運行的新型的 Lisp,而 F#是一種在 .NET 上運行並具有許多主流功能的函數式語言。最後,如果你對快速增長的智能合約和基於以太坊的加密貨幣領域感興趣,你可以了解一下 Solidity。

結論:選擇正確的語言

在榜單的五種語言中,你應當如何選擇適合自己的語言呢?根據當前趨勢,具有最廣泛應用的最通用語言是 JavaScript。你可以在大多數設備上運行它,並使用它來構建客戶端、伺服器和無伺服器應用程式。在過去的十年中,JavaScript 已經被不斷改造,它現在與 C# 和 Lisp 等現代語言有很多共同之處。是的,它仍然有一些不足之處,但這些缺點已經得到了很大改善。

我們的第二選擇是 Python,從開發者職業生涯長期來看,Python 是非常好的選擇。正如我們提到的那樣,Python 已經廣泛應用到科研和教育領域。它也是機器學習、人工智慧和數據科學相關領域的主導語言。在構建用戶界面時,JavaScript 比 Python 具有明顯的優勢。但隨著時間的推移,這種優勢可能會不再顯著。對於初學者來說,Web Assembly 標準使得其他高級語言來編寫基於瀏覽器的應用程式變成可能。此外,如果語音交互得到大眾認可,那麼圖形用戶界面將變得不再那麼重要。亞馬遜採用 Python 來開發 Echo 語音助手,因此 Python 已經在該領域佔據了先機。

在企業級應用領域,你需要在 Java 和 C#之間進行選擇。這兩種語言在語法、功能和基礎結構方面都非常相似,你可以根據個人偏好、工作可用性或者擲硬幣的方法來做出選擇。正如我們指出的那樣,Java 比 C#歷史更為久遠、更受歡迎,並且提供的職位更多。而另一方面,微軟的積極支持及其使 C#成為真正的跨平臺解決方案的動力又為 C#的未來奠定了更好的前景。Java 仍然是 Android 的程式語言,但微軟的 Xamarin 允許開發者使用 C#編寫 Android、iOS 和 Mac 應用程式。需要知道的是,C#在創業社區聲譽不好,在矽谷非常不受歡迎。在這些圈子中,C#開發人員通常被視為二等公民。

此外,開發者還需要注意的是,在申請 Java / C#企業級開發職位時,面試官將會考察你構建後端應用程式的能力,而不會局限某種語言。在解決實際問題時,你需要為解決方案編寫具體的代碼,這樣你就可以在解決實際問題的同時展示自己對語言功能的了解程度。

最後,C 和 C ++都算作通用語言,但在實踐中,它們主要用於特定領域。C 語言主要用於系統和嵌入式編程,C ++ 則擅長高性能以及資源密集型應用程式,比如實時圖形應用程式。它們兩者在各自的領域中很少有替代者,你應該在需要構建這些類型的應用程式時選擇學習這些語言。

最重要的是,在參加編程面試時,請確保自己了解這門語言的方方面面。通過面試並非易事,你需要對程式語言的優勢以及局限性足夠了解,以便讓自己的求職之路變得輕鬆。

原文:https://hackernoon.com/best-coding-languages-to-learn-in-2019-b49b49250a25

本文為 CSDN 翻譯,如需轉載,請註明來源出處。

-END-

600分鐘超長視頻講解!本書是一本從零開始學習的微信小程序開發入門書,無需額外的基礎。全書以項目驅動為宗旨,循序漸進、案例豐富,詳細介紹了微信小程序的入門基礎知識與使用技巧。

全書共分為12章,主要內容包括4個部分。第一部分是入門篇,包括第1章和第2章的內容,這兩章介紹了小程序的由來、首次註冊和創建項目流程;第二部分是基礎篇,包括第3章和第4章的內容,這兩章介紹了小程序框架和組件;第三部分是應用篇,包括第5~11章的內容,這7個章節分別講解了微信小程序中網絡API、媒體API、文件API、數據API、位置API、設備API以及界面API的用法;第四部分是提高篇,包括第12章的內容,這一章節提供一個綜合應用設計示例——高校新聞小程序的設計與實現,綜合應用了全書所學知識,讓讀者所學即所用。全書包含完整例題應用110個,均在微信web開發者工具和真機中調試通過,並提供全套例題原始碼、練習題和視頻講解。

掃描,京東7.5折優惠購書中...

凡是在京東購買用戶,將訂單和評價截圖發到郵箱itbook8@163.com

將獲得額外微信小程序大禮包(如下圖樣例)

掃碼,免費送書 

相關焦點

  • 趕超 Java 和 PHP,Python 躍升為程式語言第一名 | 源資訊
    ,而 Go 被認為是最有前途的語言,但在 IEEE Spectrum 發布的程式語言排行榜和 Packt 發布的2017 年度技能調查報告中,Python 最終獲得冠軍!該報告包含開發人員對 11 種程式語言以及資料庫和團隊工具的偏好。最終,Java 被評為最流行的語言,JavaScript 是最常用的語言,而 Go 被認為是最有前途的語言。
  • Google程式設計師使用的頂級程式語言
    最明顯的是,Google內部使用哪些程式語言?通過知道這個問題的確切答案,你將能夠充分地為自己做好準備,這樣一旦你在這家大型科技公司找到一份工作,你就不會感到不自在。我們已經從谷歌的工作人員以及谷歌開發的產品那裡收集了信息。他們透露了一些關於谷歌內部使用的語言的信息。以下是其中一些: 1.
  • Python超越Java成為最受歡迎的教學語言;9月,Adblock Plus可能會退出中國
    1.Python超過Java成為最受歡迎的教學語言
  • Java 薪資不如 Python,JavaScript 最受歡迎,2018 年主流程式語言一較高下!
    ,分析出 2018 年最受歡迎及薪資排名靠前的三種程式語言,希望對大家有所裨益。例如,如果你知道 2018 年賺錢最多的程式語言,或者最流行的程式語言,那麼你就可以適當地關注它們。在這篇文章中,我們將評估一些數據來源,尋找出 2018 年需求量最大的三種程式語言。
  • Java、C語言、Python、PHP、JavaScript五大程式語言,到底要學哪個?
    很多小夥伴在學習程式語言時因為學習哪種程式語言而犯難,今天小媛就帶著大家深入了解下Java、C語言、Python、PHP、JavaScript這五大程式語言,幫你快速做決定。Java 是一項用於開發應用程式的技術,可以讓 Web 變得更有意思、更實用。Java 與 javascript 並不相同,後者是一種用於創建 Web 頁的簡單技術,只能在瀏覽器中運行。
  • 區塊鏈開發的11種頂級程式語言
    此類區塊鏈項目中最受歡迎的是NEO,即俗稱的以太坊的中國版本。它使用的另一個流行的區塊鏈項目是IOTA,零費用交易和以IoT(物聯網)為中心的高度可擴展的項目。3. C ++這是一種面向對象的,高速,高度靜態且經過編譯的程式語言。該語言可以訪問硬體並具有較高的效率。即使它是在70年代和80年代開發的,也是C語言的擴展。
  • Java與JavaScript的區別
    關於java和javascript的關係,我曾在一個論壇上看過這樣一句話,java和javascript的關係,就好比雷鋒和雷峰塔的關係,
  • 縱觀17年間最受歡迎的程式語言排行
    最受歡迎的程式語言,這幾本上是每個入行程式設計師必看的新聞動態,今天為大家整理來了最為熱門的程式語言視頻,一起來感受一下程式語言排行的變化。
  • C、C++、Java、JavaScript、PHP、Python分別用來開發什麼?
    用任何程式語言來開發程序,都是為了讓計算機幹活,比如編寫一篇文章,下載一首MP3等,而計算機幹活的CPU只認識機器的指令。所以,儘管不同的程式語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。理論上任何語言幹任何事情幾乎都可以, 但是主要幹什麼那就不一樣了。
  • Java、C/C++、JavaScript、PHP、Python,到底用來開發什麼?
    用任何程式語言來開發程序,都是為了讓計算機幹活,比如編寫一篇文章,下載一首MP3等,而計算機幹活的CPU只認識機器的指令。所以,儘管不同的程式語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。理論上任何語言幹任何事情幾乎都可以, 但是主要幹什麼那就不一樣了。java常常跟」企業」聯繫在一起,因為具備一些很好的語言特性, 以及豐富的框架,在企業應用中最被青睞,你總可以聽到關於J2EE, JSP, Hibernate之類的東西的討論。
  • 躺贏第一語言!程式語言受歡迎程度:Python 封王.
    上周,PYPL(程式語言受歡迎程度) 四月官方榜單已發布,Python榮獲NO.1,相比去年 4 月份,今年上漲了 5.2%,成績頗為亮眼,從去年開始,Python就開始霸佔榜單長達1年,成為編程市場上份額最高的語言!
  • 人工智慧最火程式語言:Python 大戰 Java
    這種指標更能體現技能的受歡迎程度。話不多說,上數據。我搜索了與「機器學習」和「數據科學」一起使用的技能,搜索選項包括程式語言Java、C、C+++和JavaScript。然後還包括了Python和R,因為我們知道它在機器學習和數據科學方面很受歡迎,當然還有Scala,考慮到它與Spark的關係,再加上Julia,一些開發中認為這是「the next big thing」。
  • 為什麼Python程式語言在程式設計師中如此受歡迎?
    在20世紀80年代,沒有人想到一種受ABC(一種被拋棄的程式語言)所啟發的程式語言將成為21世紀最受歡迎的語言之一。說到Python程式語言的目標,有-當你向非程式設計師詢問Python時,他們中的大多數或所有人都會想到在亞洲國家發現的蛇。但是當你問任何一個開發者時,興高採烈的眼神足以告訴你,正是這些東西讓他們的生活變得更簡單、更輕鬆。甚至它的標誌也描繪了兩條蛇的藍色和黃色。但它名字背後的真正靈感是蒙蒂蟒蛇的飛行馬戲團;一個受歡迎的BBC喜劇電視節目。
  • 程式語言趨勢排行榜
    2018年12月的TIOBE程式語言排行榜已經出爐,意料之中的是Python重回前三,Java和C仍然保持很好的勢頭。
  • 最受開發者依賴的語言:JavaScript、Python與Java
    導讀:各位,目前最可依賴的程式語言前三名是JavaScript(78%),Python(52%)以及Java(41%)代碼託管組織
  • Java快過時?史丹福大學用JavaScript取代Java作為入門程式語言!
    本次變動由名譽教授 Eric Roberts 牽頭,作為 CS 106 系列課程的先驅,在他當年加入該校時,教授的仍是基於 Pascal 的程式語言。在 Java 變得流行之後,斯坦福順勢做出了改變。據 悉,在過去五年裡, Eric Roberts 和 CS 106 課程的初始創始人一直在為該部門編寫向JavaScript 轉型的教材,除編寫教科書之外,他還為新的程式語言創造新的課程任務等。此舉旨在將 CS 106 課程全面轉向代表網際網路時代的 JavaScript 程式語言。Java時代即將結束?
  • 選Python還是選Java?2020年,頂尖程式設計師最應該掌握的7種程式語言
    蘿蔔白菜,各有所愛,AI 工程師和科學家可以根據項目需要,從眾多程式語言中選擇最適合自己的。有人曾經將編程比作做菜,那程式語言就是首先要準備的食材或廚具。C:一把菜刀一口炒鍋,一個很好用的灶,隔壁有個菜市場。Java:碎菜器,切菜機,絞肉機,和面機,烤箱,微波爐……Python:大超市的速凍櫃檯,要成品有成品,要半成品有半成品,什麼都有。
  • Python,美國頂尖大學裡最受歡迎的編程入門語言
    當然有些學校的課程編號並不是以這種方式進行的,因此我也稍微篩選了一下課程,選出了符合上述 CS1 以及 CS0 編號要求的課程。  研究結果  下面的圖表展示了這 39 個學校的編程基礎課程使用語言的狀況。
  • 機器學習最受歡迎的語言:Python、Java 還是 R ?
    簡歷投遞:jobs@aiera.com.cnHR 微信:13552313024新智元為COO和執行總編提供最高超百萬的年薪激勵;為骨幹員工提供最完整的培訓體系、高於業界平均水平的工資和獎金加盟新智元,與人工智慧業界領袖攜手改變世界。【新智元導讀】要想獲得機器學習或數據科學的工作機會,什麼程式語言是最應該學習的呢?
  • 近 50 年來最具影響力的 10 種程式語言,都是誰發明的?
    程式語言是軟體開發中最重要的東西,多年來伴隨著人們的討論和批評不斷改進,沒有最好的語言,只有更合適的語言。儘管大家都很熟悉那些比較流行的程式語言的發展歷史,如 James Gosling 是 Java 之父,但並不是每個開發人員都知道是誰發明了 Perl,Pascal,Lisp 或 Erlang。