為什么JavaScript是你應(yīng)當(dāng)學(xué)習(xí)的下一個(gè)(或第一個(gè))編程語(yǔ)言
我已經(jīng)被多次問(wèn)到,如果我剛剛開(kāi)始,我應(yīng)當(dāng)學(xué)習(xí)什么編程語(yǔ)言,答案一定是JavaScript,下面是為什么:
最簡(jiǎn)單的開(kāi)發(fā)環(huán)境我相信人們進(jìn)入編程最大的障礙實(shí)際上是編寫(xiě)代碼相關(guān)的所有其它方面的東東。你能夠更快地編寫(xiě)代碼(至少在你開(kāi)始學(xué)習(xí)的時(shí)候),在我看來(lái)就是一個(gè)勝利。每個(gè)人都可以訪問(wèn)web瀏覽器,這意味著每個(gè)人現(xiàn)在也能訪問(wèn)一個(gè)簡(jiǎn)單的開(kāi)發(fā)環(huán)境了。如果你在使用Mac下的Chrome,按快捷鍵cmd-opt-j。就來(lái)到了控制臺(tái),現(xiàn)在你就可以開(kāi)始編寫(xiě)JavaScript并管理你看到的網(wǎng)頁(yè)了。真不錯(cuò)。還有大量的在線(xiàn)編輯器和工具,比如CodePen,JSFiddle,讓你在瀏覽器搭建更為完整的開(kāi)發(fā)/測(cè)試/原型環(huán)境。
簡(jiǎn)單當(dāng)你開(kāi)始的時(shí)候,JavaScript讓編寫(xiě)代碼變得真正容易,這是非常有效的。定義一個(gè)函數(shù),調(diào)用它。寫(xiě)個(gè)循環(huán)。忽略DOM(事實(shí)上,也差不多完全忽略了web),只關(guān)心簡(jiǎn)單的邏輯和代碼。開(kāi)始建立對(duì)象和數(shù)組。JS里的OO模型稍微有些奇怪(特別是對(duì)于類(lèi)和繼承),不過(guò)還好,你需要靈活些,不管怎樣,如果你想成為開(kāi)發(fā)人員的話(huà)。一旦你掌握了基礎(chǔ),你就可以更為深入,并發(fā)現(xiàn)JavaScript的所有力量。
靈活之前討論的另外一個(gè)方面有,JavaScript也是超級(jí)靈活的(論證也是如此)。一旦你能夠從直接嵌在網(wǎng)頁(yè)里的Sctipt標(biāo)簽里的一些函數(shù),并控制一個(gè)圖片或菜單,那么很快你就能夠繼續(xù)帶有很多文件、較龐大的對(duì)象/類(lèi)形式的結(jié)構(gòu),復(fù)雜的單頁(yè)應(yīng)用程序以及整個(gè)更加復(fù)雜的、完整架構(gòu)的web應(yīng)用程序。既然它與DOM和瀏覽器結(jié)合如此緊密,那么JavaScript實(shí)際上更好地?cái)U(kuò)展來(lái)迎接更大的挑戰(zhàn),可以完美地匹配web應(yīng)用程序。
網(wǎng)絡(luò)原生(web-native)足夠多的有天賦的移動(dòng)app開(kāi)發(fā)者讓你相信,app是未來(lái),我仍然認(rèn)為開(kāi)放的web技術(shù)才是未來(lái)的關(guān)鍵。給它一些時(shí)間,我們差不多用HTML/JS寫(xiě)出所有的移動(dòng)app,并把打包好的app部署到手機(jī)上。我認(rèn)為這基本上是不可避免的。學(xué)習(xí)web方面的開(kāi)發(fā)是至關(guān)重要的。不管你在工作上主要用什么語(yǔ)言,你都需要基本地了解它,因?yàn)椴还芪覀內(nèi)绾闻Γ阕罱K還是在操作CSS、調(diào)整一些HTML標(biāo)簽等。那不會(huì)立即就銷(xiāo)聲匿跡,我不這樣認(rèn)為。
不可避免幾乎是到了最后,不過(guò)主要由于思想進(jìn)化而部署其它方面。實(shí)際上我把這是做你為什么要學(xué)習(xí)JavaScript的真正的重要原因。下面是權(quán)衡——如果你開(kāi)發(fā)web方面的東西,那么你到最后是在編寫(xiě)JavaScript。這無(wú)可避免。你可以用服務(wù)器端語(yǔ)言(PHP,Python,Ruby)來(lái)做。有時(shí)候,負(fù)載會(huì)傳遞到瀏覽器,如果你想在遠(yuǎn)端做些有意思的東西,你將不得不使用JavaScript。因此,如果你不得不學(xué)習(xí),為什么不能優(yōu)化這個(gè)過(guò)程呢(或許在更多地方使用JS,而不是更少)。
輕便(瀏覽器/服務(wù)器/原生)由于我們具有了Node.js之類(lèi)的東東,JavaScript已經(jīng)超越了瀏覽器。你不僅可以寫(xiě)服務(wù)器端JS(因此你可以用JS開(kāi)發(fā)前后端web應(yīng)用程序),而且還可以使用node-webkit之類(lèi)的東西打包成可分發(fā)的桌面應(yīng)用程序,或者使用PhoneGap為任意平臺(tái)打包成移動(dòng)app。現(xiàn)在還沒(méi)有其它語(yǔ)言能夠有如此輕便。
工具鏈如果上面那些原因還不夠的話(huà),就開(kāi)發(fā)者工具鏈而言,激增的JavaScript社區(qū)在接下來(lái)的數(shù)年里,還有一條真正的長(zhǎng)路要走。我們或許沒(méi)有像Mac開(kāi)發(fā)者使用的Xcode那樣集成的、一站式方式,但是我們有Grunt和Gulp之類(lèi)的工具,可以建立自己的資源流水線(xiàn)。人們熟知的每個(gè)代碼編輯器都支持JavaScript語(yǔ)法高亮和提示,我們不需要像其他語(yǔ)言的build過(guò)程,因此我們可以更加從容.還有一堆測(cè)試工具;從單元測(cè)試到功能測(cè)試,完全模擬了使用瀏覽器的用戶(hù)。
因此不管怎么說(shuō)——從來(lái)就沒(méi)有開(kāi)始學(xué)習(xí)編程的更好時(shí)間,如果你想開(kāi)始,我建議從JavaScript開(kāi)始。從簡(jiǎn)單做起,慢慢提高。看源代碼。去Github。并為之瘋狂。
原文地址:why-javascript-is-the-next-or-first-programming-language-you-should-learn
相關(guān)文章:
1. JAMon(Java Application Monitor)備忘記2. docker /var/lib/docker/aufs/mnt 目錄清理方法3. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法4. Python OpenCV去除字母后面的雜線(xiàn)操作5. Java類(lèi)加載機(jī)制實(shí)現(xiàn)步驟解析6. IntelliJ IDEA設(shè)置編碼格式的方法7. IntelliJ IDEA設(shè)置背景圖片的方法步驟8. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析9. Python 的 __str__ 和 __repr__ 方法對(duì)比10. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)
