每個開發人員都應該學習的五種編程語言(下)
??上篇??說了C/C++和Bash,下面繼續講剩下的三個語言。
三、JavaScript
WORA(一次編寫,隨處運行)現在是 JavaScript——而不是 Java。現在您可以使用 JavaScript 來構建幾乎任何東西。您可以使用 JavaScript 構建網站、Web 服務、桌面應用程序、移動應用程序、CLI 程序、IoT 解決方案、機器人相關程序和智能電視應用程序。甚至還有一個原生支持 JavaScript 和 npm 模塊的運行時 (NodeOS)。如果您學習 JavaScript,您將獲得與各種軟件項目合作的絕佳機會。
學習 JavaScript 開辟了一條新途徑,可以用一種現代編程語言構建任何東西。面向互聯網的企業軟件公司主要使用 JavaScript 或維護至少幾個用 JavaScript 構建的子項目。
Web 瀏覽器本身就理解 JavaScript 并提供大量基于 JavaScript 的 Web API 來構建現代功能豐富的應用程序。毫無疑問,世界上的每個程序員每天都在使用 Web 瀏覽器。程序員通常喜歡學習內部結構。JavaScript 確實是了解 Web 瀏覽器內部結構的必備技能。
下面的故事進一步解釋了 JavaScript 的重要性。
抱歉 Java,一次編寫隨處運行 (WORA) 現在是 JavaScript
在 James Gosling 創建 Java 之前,特定于平臺的編譯語言(如 C/C++)是占主導地位的高級語言。程序員必須使用特定于平臺的 API 為每個平臺編寫代碼。一些程序員通過使用條件語句分隔代碼,為所有平臺創建了一個單一的代碼庫。另一方面,一些程序員分別為每個平臺編寫代碼庫。盡管編寫特定于平臺的代碼會帶來很多好處,例如靈活性、可定制性和性能,但軟件開發的業務方面需要一種快速發布跨平臺軟件產品的方法。
從業務的角度來看,制作軟件產品就是通過有效地利用人力資源使其正確和快速。Java借此機會進入了軟件開發市場。這與 OOP 無關(Java 不是第一個基于 OOP 的語言),也與性能無關(C/C++ 語言無疑比 Java 快)。這一切都是為了快速制作軟件和快速交付產品。
在那之后,我們到處都看到了Java。Java 幫助程序員創建桌面應用程序、Web 服務器、移動應用程序、智能電視應用程序和 Web 應用程序(通過小程序)。但是現在,JavaScript 在所有這些方面都比 Java 做得更好。
JavaScript 是不朽的,Java 正在慢慢消亡
您可以使用不支持 JavaScript 的 Web 瀏覽器做什么?什么都不對?如今,幾乎所有網站都是動態的;他們嚴重依賴 JavaScript。沒有 JavaScript,您將無法正確使用您喜愛的網站。但是您將能夠像多年前使用 56k 調制解調器一樣查看純文本和一些圖形。
由于這個事實,JavaScript 是不朽的,除非有人制作支持 X 腳本的不同瀏覽器并強制每個人使用它。另一方面,Java 正在慢慢消亡。Applet 已經死了,大多數不使用 Java 制作桌面應用程序,Java EE 有令人印象深刻的競爭對手,并且 JavaScript 被用于制作 Android 應用程序而不是 Java。此外,Java 的新許可模式并不是對每個人都有吸引力。另一方面,JavaScript 完全沒有商業限制。
JavaScript,一切皆有可能
你可以用 JavaScript 比 Java 更好地做以下事情。
- Web 應用程序:Vanilla JavaScript、React、Angular 等。lWeb 后端:Nodejs 和 Deno。
- 桌面應用程序:Electron、NW.js 和 Neutralinojs。
- 移動應用程序:Ionic、React Native 和 NativeScript。
- 物聯網/機器人編程:NodeMCU、NoDuino等。
很棒的是 JavaScript 真正支持我之前提到的業務視角。開發如此簡單,因為語言語法提供了非常好的抽象,并且設置也非常快。人力資源利用率令人印象深刻。例如,如果您可以制作網站,您就可以使用 Web 后端、桌面應用程序和幾乎任何東西。
真正的 WORA,是 JavaScript
如今,一切都在向云端邁進。首先,WORA 口號告訴我們有關平臺的信息。這是關于為所有平臺編寫相同的代碼。但是,由于現代云運動,WORA 應該將 Web 瀏覽器視為全部。您可以編寫 JavaScript 并在瀏覽器和平臺中執行它。
Java 有 Java 虛擬機 (JVM) 來執行稱為字節碼的編譯指令。因此,如果特定平臺可以運行 JVM,它也可以運行 Java。同樣,JavaScript 也有一個稱為 JavaScript 引擎的虛擬機來執行中間代碼或機器代碼。事實上,JavaScript 引擎是 Web 瀏覽器的關鍵部分,但它是一個獨立的組件。因此,JavaScript 帶著 Nodejs 的概念從 Web 瀏覽器出來到了其他地方。
另一方面,Java 已經在其他地方出現了。但是,它試圖通過 Applet 概念進入網絡瀏覽器并失敗了。
結論
JavaScript 也有不好的部分,就像任何其他編程語言一樣。主要問題與膨脹軟件有關,它在可用性方面消耗了大量資源。例如,我們經常發現用 JavaScript 構建的桌面應用程序變成了膨脹軟件。這不是 JavaScript 造成的問題,而是程序員造成的問題。下面的文章解釋了更多關于這個英國媒體報道問題的信息。
此外,您可能會爭辯說 Web Assembly 將使 Java 永垂不朽。因為那時程序員將能夠使用 Java 制作 Web 應用程序,而無需擔心 JavaScript。我不認為新程序員會在不接觸 JavaScript 的情況下學習 Java 來制作 Web 應用程序。
現在我們知道為什么他們將 LiveScript 重命名為 JavaScript。
*原文鏈接:https://medium.com/swlh/sorry-java-write-once-run-anywhere-wora-is-now-javascript-92641161a73f。
四、Python
Python 是一種對開發人員友好、簡單且動態類型的解釋型編程語言。許多 Web 開發人員、數據科學家、機器學習工程師和系統管理員在日常編程任務中使用 Python。Kivy 項目也支持 Python 進入移動開發者社區。有時,編寫 Python 源代碼比編寫偽代碼來實現特定算法更快。
Python 提供了很多內置函數來處理數據結構。此外,Python 是處理數據記錄的最簡單的編程語言之一。學習 Python 對所有程序員都有好處。Bash 非常適合自動化。如果你的自動化腳本想要處理數據,Bash 不適合——因為它是一種命令語言。另一方面,Python 可以用最少的語法處理數據,并像 Bash 一樣用最少的語法調用其他進程。因此,如果您學習 Python,您就可以編寫干凈且功能齊全的自動化腳本。
此外,Python 非常適合在線編碼挑戰和技術面試以快速解決問題。例如,看看在 Python 中刪除列表的重復項是多么容易,甚至不使用任何導入語句。
五、Go
Go 是一種靜態類型的通用編程語言,采用類似 C 的語法設計。它具有其他現代編程語言具有的許多功能,例如垃圾收集、內存安全和并發支持。Go 編程語言具有對開發人員友好的語法,但與其他流行語言相比仍然具有令人印象深刻的性能。Go 語言的設計為我們所有程序員提供了很多寶貴的經驗教訓。
Go 只有 25 個關鍵字,但它提供了構建任何軟件系統所需的所有功能。大多數編程語言都添加了大量語言功能,使開發人員的生活更輕松。但實際上,新的語言功能很快就會過時你的代碼庫。此外,許多有經驗的程序員通常并不關心語言的最新語法技巧和技巧。
Go 語言的設計教會了我們如何用最少和完整的解決方案來解決工程問題。試想,25 個關鍵字足以設計一個功能齊全的編程語言。另一方面,現在 C++ 有 97 個關鍵字,而 Rust 有 54 個關鍵字——開發團隊可能會添加更多。
Go 支持面向對象編程,甚至無需將 class 定義為關鍵字。當您學習 Go 概念時,您總是傾向于使用簡單有效的解決方案來解決問題。Go 語言的生態系統是學習更好的軟件設計模式的好方法。