職場生存指南:頗具前景的五大編程語言
譯文【51CTO.com快譯】玲瑯滿目的編程語言,經常會讓入門級開發人員身陷選擇困難癥。在本文中,我將從適用范圍、職業道路和未來發展等方面,和您比較五種編程語言的各種特點,以方便您根據自己的興趣,進行輕松的選擇與學習。
編程語言的簡介
編程語言是一種包含了一組能夠產生各種輸出性指令的語言。它常被用于通過計算機編程來執行各種算法。雖然每年都會新產生大量不同的編程語言,但是只有那些易于使用和理解的編程語言,才會得到市場的認可,才會被開發人員大量使用。
通常,編程語言由兩個部分所組成:語法(形式)和語義(含義)。
語法
- 它是編程語言的表面形式。
- 大多數編程語言都是純文本形式的,因此它們會用到諸如:單詞、數字和標點符號等文本序列。
- 編程語言語法一般是各種文本符號的組合。
語義
即:編程語言的含義,通常包括兩類語義:
- 靜態語義 - 定義了在標準句法形式中,那些難以或不可能表達的有效文本結構。
- 動態語義 - 必須指示機器來對數據執行各種操作。
頭部編程語言的特征和未來范圍
如上圖所示,目前流行的五種編程語言,普遍針對的是不同類別的開發人員(如:初學者、普通程序員和專家),以及不同的開發用例(如:Web應用、移動應用、游戲開發、分布式系統等)。下面我們來逐一進行討論。
Python
它是一種通用的編程語言,可用于構建簡單的工具和代碼庫。對于普通的后端Web開發、人工智能、數據分析、以及科學計算來說,Python是一項不錯的選擇。由于簡單易學,因此許多開發人員都會使用Python來構建其生產力工具、游戲、以及桌面應用。
如今,Python有著多種實現方式,包括:針對Java虛擬機的Java語言腳本—Jython;針對公共語言基礎結構且由C#編寫的IronPython;以及由RPython編寫的、并翻譯成C語言的PyPy版本。這些實現方式都能夠通過使用不同的模塊,與其他語言進行交互。而這些模塊中的大多數都是由開源社區免費為用戶開發的。
Python的優點
Python語言的不同功能可以組合并開發出各種應用。通常他們具有如下優勢:
支持庫 - Python提供了一個大型的標準庫,其中包括:互聯網協議、字符串操作、Web服務工具、以及操作系統接口等方面。
第三方模塊 - Python包索引(Python Package Index,PyPI)包含了許多第三方模塊,它們能夠保證Python與大多數語言平臺進行交互。
生產力和速度 –通過簡潔的面向對象設計,Python提供了增強的過程控制,并具有強大的集成和文本處理功能。
開源和社區開發 - Python語言是在OSI的開源許可下開發的,它可以被免費使用與分發,當然也可以被用于商業目的。
輕松學習– Python具有出色的可讀性,并提供了簡單易學的語法。其代碼風格指南--PEP 8,提供了一組有助于格式化代碼的規則。
具有用戶友好的數據結構 - Python具有內置的列表和字典數據結構,可以被用于創建快速運行時(runtime)的數據結構。而且,它還提供了高級的數據類型選項,可以減少支持性程序代碼的長度。
Python的職業道路
總的說來,Python優于其他編程語言。
隨著其受歡迎程度的增加,Python相關的職業機會也得到了顯著增長。
許多IT企業正在尋找更多具有Python編程經驗與技能的程序員。
總體而言,Python程序員在不久的將來會有更好的職業前景。
上圖是那些使用Python編程語言的頂級公司。可見,無論是Web應用還是游戲應用,Python幾乎適用于所有類型的應用開發。
Python的未來
在2019年7月8日,Python更新到了3.7.4。它提供了許多顯著的改進與新功能。
JavaScript
JavsScript是遵循ECMAScript規范的高級解釋性腳本語言。這種基于原型的JS,能夠支持面向對象、動態化、命令、聲明等多種范式。
作為一種簡單易用的語言,Javascript不但能夠在許多非瀏覽器的環境中被使用,而且能夠在設計網頁和編程中被用于控制目標網頁的行為。由于Javascript的基本語法與Java和C++相關,因此需要重新學習的新概念并不多。Javascript的語言結構如下:
- “If”陳述
- “For”和“While”循環
- “Switch,Catch”塊的函數
JS的動態功能包括:運行時對象構造,函數變量,動態腳本創建,變量參數列表,對象內省(object introspection),以及源代碼恢復。Javascript常被用作Web服務器端的腳本語言。
Javascript Web服務器能夠通過Javascript程序的HTTP請求和響應對象,來生成動態的Web頁面,例如業界廣泛使用的是Node.js。另外,像MongoDB和CouchDB之類的數據庫也都采用Javascript作為其編程語言。
上圖展示的是Javascript的不同功能。
JavaScript的職業道路
- 前端Web開發人員 – 其工作重點包括:HTML、CSS、JavaScript、以及后端。
- Web應用開發人員 - 使用Javascript創建各種基于Web的軟件應用,包括:交互式在線表單,購物車,文字處理,電子郵件軟件和文件轉換。
- Javascript開發人員 - 設計與開發各種平臺新的前端應用。
- UX/UI設計師 – 為用戶或客戶設計新的產品功能,找到改善用戶體驗的創新方法,與UI設計師合作創造更有吸引力的產品。
- 全棧開發人員 - 設計Web應用程序的體系結構。
- DevOps工程師 – 起到IT和開發人員的連接作用,包括:測試服務器,應用部署,版本控制,以及構建服務器軟件等。
JavaScript的未來
目前,與之相關的各種框架(包括:VUE.js,jQuery,Angualr.js和React.js)正在市場上“野蠻生長”。從下圖的統計數據和市場地位可知,React.js最受歡迎。
將來,JS將作為一種非常簡易且完美的端到端解決方案,與Web組件、以及AI等應用形成技術上的互補,給開發人員帶來完美的開發解決方案。
Java
這是一種基于類、且面向對象的通用編程語言。用Java開發的應用程序可以在任何Java虛擬機(JVM)上被編譯成字節碼,并且可以在任何支持Java的平臺上運行,而無需重新編譯。作為一款被廣泛使用的編程語言,Java的語法類似于C和C++。它既適用于互聯網的分布式環境,又可以被用于創建完整的本地應用。
Java廣受歡迎的原因在于:
- 數據的安全性
- 簡單易學
- 代碼的魯棒性
- 提供靈活的小程序
- 網絡可移植性
- 面向對象
- 獨立于平臺
目前,Java的三大主流平臺分別為:
- Java SE(標準版)
- Java EE(企業版)
- Java ME(微型版)
最新版本的Java 12已于2019年3月發布。
Java的職業道路
- 后端開發人員 - 這是最受歡迎的職業方向之一。無論是作為自由職業者,還是遠程辦公的開發人員,雇主公司都會為后端開發人員開出豐厚的薪酬待遇。
- 大數據開發人員 - 這是一種快速增長的職業選擇。大多數公司都在尋求利用大型數據集,來開展各種業務和營銷活動。
- Android開發人員 - Android程序員經常用Java來開發各種應用。
- 嵌入式設計開發人員 – 這條職業道路不但有著廣闊的職業前景,而且有利于開發人員迅速地成長。
上圖顯示了2018~2020年間,開發人員的職位需求量。隨著Android應用商店里不同功能的應用程序日趨豐富,業界對于Java編程能力的需求也持續走高。
Java的未來
除了繼續深耕面向未來的編程方式,Java還會助力于企業應用的安全性等方面。
Ruby on Rails
這是一種解釋性的高級通用編程語言。作為一種動態類型的語言,Ruby不但可用于收集垃圾,而且能夠支持多種編程范例,其中包括:各種程序、面向對象的函數等。
而作為開發工具的Rails,為Web開發人員提供了編寫代碼的框架和結構,有助于各種網站和應用的構建。另外,Ruby的關鍵原則在于“約定優于配置(Convention over configuration)”。
Ruby on Rails在開發方面具有如下優勢:
- 比其他框架和語言的執行速度更快。
- 其結構易于開發者實現編碼。
- 適用于快速的應用程序開發(RAD),且便于各種適應性的修改。
- 比較注重于測試環節。
- 自帶各種開源庫。
上圖列出了Ruby的更多特征。
Ruby的職業道路
如今,大量初級程序員和協同開發者都在使用Ruby on rail這門流行的編程語言。而該領域的經驗豐富者,則能夠獲得首席技術官、項目負責人、以及高級開發師等高級崗位的契機。通常,他們的年薪從100,000到154,000美元不等。具體分級如下:
- 入門級開發人員的工作內容包括:掌握基本的HTML、JavaScript和CSS知識,設置rail環境,管理數據庫,處理請求,以及執行與Ruby on Rails應用開發相關的基本任務。
- 中級開發人員的工作要求包括:了解各種Active Record關聯,設計模式和面向對象。
- 高級開發人員的崗位要求有:熟悉Ruby Metaprogramming,數據庫建模,具備監控、規劃和評估等技能。
Ruby on Rail的未來
憑借如下優勢,Ruby的前景一片大好:
- 是低預算的理想選擇。
- 擁有強大的社區。
- 易于測試。
- 具有一致性。
上圖是正在使用Ruby on Rail的各大頂尖公司。
PHP
作為一種免費的通用編程語言,Hypertext Preprocessor(PHP)是專為Web開發設計的。在Web服務器的模塊中,PHP解釋器負責處理PHP代碼,并使用命令行界面(CLI)來執行。雖然主要是一種服務器端的腳本語言,并能夠從Web服務器向客戶端提供動態內容,但是PHP也可以被用于客戶端的GUI和命令行腳本中。
目前,許多Web托管提供商都能夠為其客戶提供對于PHP的支持。類似于一種過濾器,PHP能夠從文本中獲取各種輸入,然后將其轉換為常見的HTML類型的輸出流。
通常,開發人員根據如下特點來選用PHP:
- 支持數據庫管理系統,且開源。
- 支持MySQL、Oracle、Sybase等。
- 簡單易學。
- 能夠在Linux和Windows等平臺上運行。
PHP的職業道路
PHP開發人員能夠敲開整個職場的大門,并籍此逐步提升為高級Web開發人員。初級開發人員的工作通常包括:創建各種網站和軟件。而高級Web開發人員則根據資質與發展道路的不同,一般可擔當IT經理、開發總監、首席技術官、以及高級.NET開發師等職位。
PHP的未來
如今PHP + MySQL的網頁構建模式,以及以PHP結尾的網頁在互聯網上比比皆是。而且這種趨勢會不斷持續下去。
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】