自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每個(gè)開(kāi)發(fā)人員都應(yīng)該學(xué)習(xí)的五種編程語(yǔ)言(下)

開(kāi)發(fā) 前端
在這個(gè)故事中,我將向您展示每個(gè)程序員都應(yīng)該學(xué)習(xí)的五種編程語(yǔ)言。并用實(shí)例說(shuō)明學(xué)習(xí)這些編程語(yǔ)言的好處。

??上篇??說(shuō)了C/C++和Bash,下面繼續(xù)講剩下的三個(gè)語(yǔ)言。

三、JavaScript

WORA(一次編寫(xiě),隨處運(yùn)行)現(xiàn)在是 JavaScript——而不是 Java。現(xiàn)在您可以使用 JavaScript 來(lái)構(gòu)建幾乎任何東西。您可以使用 JavaScript 構(gòu)建網(wǎng)站、Web 服務(wù)、桌面應(yīng)用程序、移動(dòng)應(yīng)用程序、CLI 程序、IoT 解決方案、機(jī)器人相關(guān)程序和智能電視應(yīng)用程序。甚至還有一個(gè)原生支持 JavaScript 和 npm 模塊的運(yùn)行時(shí) (NodeOS)。如果您學(xué)習(xí) JavaScript,您將獲得與各種軟件項(xiàng)目合作的絕佳機(jī)會(huì)。

學(xué)習(xí) JavaScript 開(kāi)辟了一條新途徑,可以用一種現(xiàn)代編程語(yǔ)言構(gòu)建任何東西。面向互聯(lián)網(wǎng)的企業(yè)軟件公司主要使用 JavaScript 或維護(hù)至少幾個(gè)用 JavaScript 構(gòu)建的子項(xiàng)目。

Web 瀏覽器本身就理解 JavaScript 并提供大量基于 JavaScript 的 Web API 來(lái)構(gòu)建現(xiàn)代功能豐富的應(yīng)用程序。毫無(wú)疑問(wèn),世界上的每個(gè)程序員每天都在使用 Web 瀏覽器。程序員通常喜歡學(xué)習(xí)內(nèi)部結(jié)構(gòu)。JavaScript 確實(shí)是了解 Web 瀏覽器內(nèi)部結(jié)構(gòu)的必備技能。

下面的故事進(jìn)一步解釋了 JavaScript 的重要性。

抱歉 Java,一次編寫(xiě)隨處運(yùn)行 (WORA) 現(xiàn)在是 JavaScript

在 James Gosling 創(chuàng)建 Java 之前,特定于平臺(tái)的編譯語(yǔ)言(如 C/C++)是占主導(dǎo)地位的高級(jí)語(yǔ)言。程序員必須使用特定于平臺(tái)的 API 為每個(gè)平臺(tái)編寫(xiě)代碼。一些程序員通過(guò)使用條件語(yǔ)句分隔代碼,為所有平臺(tái)創(chuàng)建了一個(gè)單一的代碼庫(kù)。另一方面,一些程序員分別為每個(gè)平臺(tái)編寫(xiě)代碼庫(kù)。盡管編寫(xiě)特定于平臺(tái)的代碼會(huì)帶來(lái)很多好處,例如靈活性、可定制性和性能,但軟件開(kāi)發(fā)的業(yè)務(wù)方面需要一種快速發(fā)布跨平臺(tái)軟件產(chǎn)品的方法。

從業(yè)務(wù)的角度來(lái)看,制作軟件產(chǎn)品就是通過(guò)有效地利用人力資源使其正確和快速。Java借此機(jī)會(huì)進(jìn)入了軟件開(kāi)發(fā)市場(chǎng)。這與 OOP 無(wú)關(guān)(Java 不是第一個(gè)基于 OOP 的語(yǔ)言),也與性能無(wú)關(guān)(C/C++ 語(yǔ)言無(wú)疑比 Java 快)。這一切都是為了快速制作軟件和快速交付產(chǎn)品。

在那之后,我們到處都看到了Java。Java 幫助程序員創(chuàng)建桌面應(yīng)用程序、Web 服務(wù)器、移動(dòng)應(yīng)用程序、智能電視應(yīng)用程序和 Web 應(yīng)用程序(通過(guò)小程序)。但是現(xiàn)在,JavaScript 在所有這些方面都比 Java 做得更好。

JavaScript 是不朽的,Java 正在慢慢消亡

您可以使用不支持 JavaScript 的 Web 瀏覽器做什么?什么都不對(duì)?如今,幾乎所有網(wǎng)站都是動(dòng)態(tài)的;他們嚴(yán)重依賴(lài) JavaScript。沒(méi)有 JavaScript,您將無(wú)法正確使用您喜愛(ài)的網(wǎng)站。但是您將能夠像多年前使用 56k 調(diào)制解調(diào)器一樣查看純文本和一些圖形。

由于這個(gè)事實(shí),JavaScript 是不朽的,除非有人制作支持 X 腳本的不同瀏覽器并強(qiáng)制每個(gè)人使用它。另一方面,Java 正在慢慢消亡。Applet 已經(jīng)死了,大多數(shù)不使用 Java 制作桌面應(yīng)用程序,Java EE 有令人印象深刻的競(jìng)爭(zhēng)對(duì)手,并且 JavaScript 被用于制作 Android 應(yīng)用程序而不是 Java。此外,Java 的新許可模式并不是對(duì)每個(gè)人都有吸引力。另一方面,JavaScript 完全沒(méi)有商業(yè)限制。

JavaScript,一切皆有可能

你可以用 JavaScript 比 Java 更好地做以下事情。

  • Web 應(yīng)用程序:Vanilla JavaScript、React、Angular 等。lWeb 后端:Nodejs 和 Deno。
  • 桌面應(yīng)用程序:Electron、NW.js 和 Neutralinojs。
  • 移動(dòng)應(yīng)用程序:Ionic、React Native 和 NativeScript。
  • 物聯(lián)網(wǎng)/機(jī)器人編程:NodeMCU、NoDuino等。

很棒的是 JavaScript 真正支持我之前提到的業(yè)務(wù)視角。開(kāi)發(fā)如此簡(jiǎn)單,因?yàn)檎Z(yǔ)言語(yǔ)法提供了非常好的抽象,并且設(shè)置也非??臁H肆Y源利用率令人印象深刻。例如,如果您可以制作網(wǎng)站,您就可以使用 Web 后端、桌面應(yīng)用程序和幾乎任何東西。

真正的 WORA,是 JavaScript

如今,一切都在向云端邁進(jìn)。首先,WORA 口號(hào)告訴我們有關(guān)平臺(tái)的信息。這是關(guān)于為所有平臺(tái)編寫(xiě)相同的代碼。但是,由于現(xiàn)代云運(yùn)動(dòng),WORA 應(yīng)該將 Web 瀏覽器視為全部。您可以編寫(xiě) JavaScript 并在瀏覽器和平臺(tái)中執(zhí)行它。

Java 有 Java 虛擬機(jī) (JVM) 來(lái)執(zhí)行稱(chēng)為字節(jié)碼的編譯指令。因此,如果特定平臺(tái)可以運(yùn)行 JVM,它也可以運(yùn)行 Java。同樣,JavaScript 也有一個(gè)稱(chēng)為 JavaScript 引擎的虛擬機(jī)來(lái)執(zhí)行中間代碼或機(jī)器代碼。事實(shí)上,JavaScript 引擎是 Web 瀏覽器的關(guān)鍵部分,但它是一個(gè)獨(dú)立的組件。因此,JavaScript 帶著 Nodejs 的概念從 Web 瀏覽器出來(lái)到了其他地方。

另一方面,Java 已經(jīng)在其他地方出現(xiàn)了。但是,它試圖通過(guò) Applet 概念進(jìn)入網(wǎng)絡(luò)瀏覽器并失敗了。

結(jié)論

JavaScript 也有不好的部分,就像任何其他編程語(yǔ)言一樣。主要問(wèn)題與膨脹軟件有關(guān),它在可用性方面消耗了大量資源。例如,我們經(jīng)常發(fā)現(xiàn)用 JavaScript 構(gòu)建的桌面應(yīng)用程序變成了膨脹軟件。這不是 JavaScript 造成的問(wèn)題,而是程序員造成的問(wèn)題。下面的文章解釋了更多關(guān)于這個(gè)英國(guó)媒體報(bào)道問(wèn)題的信息。

此外,您可能會(huì)爭(zhēng)辯說(shuō) Web Assembly 將使 Java 永垂不朽。因?yàn)槟菚r(shí)程序員將能夠使用 Java 制作 Web 應(yīng)用程序,而無(wú)需擔(dān)心 JavaScript。我不認(rèn)為新程序員會(huì)在不接觸 JavaScript 的情況下學(xué)習(xí) Java 來(lái)制作 Web 應(yīng)用程序。

現(xiàn)在我們知道為什么他們將 LiveScript 重命名為 JavaScript。

*原文鏈接:https://medium.com/swlh/sorry-java-write-once-run-anywhere-wora-is-now-javascript-92641161a73f。

四、Python

Python 是一種對(duì)開(kāi)發(fā)人員友好、簡(jiǎn)單且動(dòng)態(tài)類(lèi)型的解釋型編程語(yǔ)言。許多 Web 開(kāi)發(fā)人員、數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)工程師和系統(tǒng)管理員在日常編程任務(wù)中使用 Python。Kivy 項(xiàng)目也支持 Python 進(jìn)入移動(dòng)開(kāi)發(fā)者社區(qū)。有時(shí),編寫(xiě) Python 源代碼比編寫(xiě)偽代碼來(lái)實(shí)現(xiàn)特定算法更快。

Python 提供了很多內(nèi)置函數(shù)來(lái)處理數(shù)據(jù)結(jié)構(gòu)。此外,Python 是處理數(shù)據(jù)記錄的最簡(jiǎn)單的編程語(yǔ)言之一。學(xué)習(xí) Python 對(duì)所有程序員都有好處。Bash 非常適合自動(dòng)化。如果你的自動(dòng)化腳本想要處理數(shù)據(jù),Bash 不適合——因?yàn)樗且环N命令語(yǔ)言。另一方面,Python 可以用最少的語(yǔ)法處理數(shù)據(jù),并像 Bash 一樣用最少的語(yǔ)法調(diào)用其他進(jìn)程。因此,如果您學(xué)習(xí) Python,您就可以編寫(xiě)干凈且功能齊全的自動(dòng)化腳本。

此外,Python 非常適合在線編碼挑戰(zhàn)和技術(shù)面試以快速解決問(wèn)題。例如,看看在 Python 中刪除列表的重復(fù)項(xiàng)是多么容易,甚至不使用任何導(dǎo)入語(yǔ)句。

圖片

五、Go

Go 是一種靜態(tài)類(lèi)型的通用編程語(yǔ)言,采用類(lèi)似 C 的語(yǔ)法設(shè)計(jì)。它具有其他現(xiàn)代編程語(yǔ)言具有的許多功能,例如垃圾收集、內(nèi)存安全和并發(fā)支持。Go 編程語(yǔ)言具有對(duì)開(kāi)發(fā)人員友好的語(yǔ)法,但與其他流行語(yǔ)言相比仍然具有令人印象深刻的性能。Go 語(yǔ)言的設(shè)計(jì)為我們所有程序員提供了很多寶貴的經(jīng)驗(yàn)教訓(xùn)。

Go 只有 25 個(gè)關(guān)鍵字,但它提供了構(gòu)建任何軟件系統(tǒng)所需的所有功能。大多數(shù)編程語(yǔ)言都添加了大量語(yǔ)言功能,使開(kāi)發(fā)人員的生活更輕松。但實(shí)際上,新的語(yǔ)言功能很快就會(huì)過(guò)時(shí)你的代碼庫(kù)。此外,許多有經(jīng)驗(yàn)的程序員通常并不關(guān)心語(yǔ)言的最新語(yǔ)法技巧和技巧。

Go 語(yǔ)言的設(shè)計(jì)教會(huì)了我們?nèi)绾斡米钌俸屯暾慕鉀Q方案來(lái)解決工程問(wèn)題。試想,25 個(gè)關(guān)鍵字足以設(shè)計(jì)一個(gè)功能齊全的編程語(yǔ)言。另一方面,現(xiàn)在 C++ 有 97 個(gè)關(guān)鍵字,而 Rust 有 54 個(gè)關(guān)鍵字——開(kāi)發(fā)團(tuán)隊(duì)可能會(huì)添加更多。

Go 支持面向?qū)ο缶幊蹋踔翢o(wú)需將 class 定義為關(guān)鍵字。當(dāng)您學(xué)習(xí) Go 概念時(shí),您總是傾向于使用簡(jiǎn)單有效的解決方案來(lái)解決問(wèn)題。Go 語(yǔ)言的生態(tài)系統(tǒng)是學(xué)習(xí)更好的軟件設(shè)計(jì)模式的好方法。

責(zé)任編輯:姜華 來(lái)源: 新鈦云服
相關(guān)推薦

2022-09-07 07:06:11

編程語(yǔ)言開(kāi)發(fā)人員

2013-01-28 10:25:46

開(kāi)發(fā)人員設(shè)計(jì)技巧

2020-10-13 18:20:55

TCPHTTP網(wǎng)絡(luò)協(xié)議

2022-08-28 16:10:37

軟件開(kāi)發(fā)AI工具

2024-06-04 14:31:16

2023-07-11 16:45:32

VS Code開(kāi)發(fā)技巧

2024-01-24 08:00:00

2023-03-08 15:13:32

Git工具開(kāi)發(fā)

2023-01-12 08:33:06

2021-08-05 23:17:45

編程語(yǔ)言開(kāi)發(fā)Web

2024-05-28 11:38:32

2024-10-21 13:15:03

2020-09-22 12:19:25

JavaGithub倉(cāng)庫(kù)

2021-02-05 12:58:18

開(kāi)發(fā)人員CICD

2024-06-03 10:35:41

2020-01-27 16:28:57

開(kāi)發(fā)命令遠(yuǎn)程服務(wù)器

2022-02-21 00:11:24

Java工具開(kāi)發(fā)

2019-11-25 14:09:34

控制臺(tái)命令開(kāi)發(fā)

2024-09-18 15:39:10

JavaScript開(kāi)發(fā)閉包

2023-02-08 08:32:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)