javascript爲什麼會火及它的過去、現在及未來

javascript發展的這麼好肯定好肯定有它的原因的,我們看下各個語言的排行版及佔有率
下面是2019年3月的情況

javascript爲什麼會這麼火

個人分析有以下幾點原因:

  1. 前後端的分離,使得jsp,aps,技術的邊緣化,React,Vue,Angluar這三個前端框架三分天下,使得前端技術不斷髮展。
  2. 混合App 的開發,react-native,weex,Flutter框架促使了javascript的使用場景越來越多,這些混合開發極大的提高了app的開發效率,這些框架在一定程度上強佔了原生app(Android和IOS)開發的市場.
  3. node.js 使得javascript可以做後端開發成爲了一種可能,這樣可以使一些前端開發工程師成爲全棧工程師成爲了可能,使javascript服務端開發在一些特定使用場景越來越火。
  4. 一些的新的框架在AR,VR和IoT這一些方面使得javascript的使用場景也越來越多。
  5. html5和css3及相關技術的發展也間接促使javascript的發展。前端html+css+javascript三個核心技術可以做的事情越來越多,檢驗也越來越好。

Javascript誕生

瞭解一門語言的誕生,其作者,和誕生的原因,我們才能比較深刻的瞭解一門的特性,才能很好的明白爲什麼今天的javascript是這個樣子。據說javascript的作者Brendan Eich(布蘭登·艾奇)只花了十天的時間就把這門語言設計出來了。
下面我們來看看其真其誕生的原因,及其特性

1994年,網景公司(Netscape)發佈了Navigator瀏覽器0.9版,這是世界上第一款比較成熟的網絡瀏覽器,轟動一時。但是這是一款名副其實的瀏覽器–只能瀏覽頁面,瀏覽器無法與用戶互動。比如你登錄一個網站輸入完用戶名點擊提交的時候。瀏覽器並不知道你是否輸入了,也無法判斷。只能傳給服務器去判斷。

網景急於解決瀏覽器與用戶交互這個問題。當時解決這個問題有兩個辦法,一個是採用現有的語言,比如Perl、Python、Tcl、Scheme等等,允許它們直接嵌入網頁。另一個是發明一種全新的語言。
這兩個選擇各有利弊。第一個選擇,有利於充分利用現有代碼和程序員資源,推廣起來比較容易;第二個選擇,有利於開發出完全適用的語言,實現起來比較容易。到底採用哪一個選擇,網景公司內部爭執不下,管理層一時難以下定決心。

就在這時發生了一件大事,1995年Sun公司將Oak語言改名爲Java,正式向市場推出。Sun公司大肆宣傳,許諾這種語言可以"一次編寫,到處運行"(Write Once, Run Anywhere),它看上去很可能成爲未來的主宰。

網景公司動了心,決定與Sun公司結成聯盟。它不僅允許Java程序以applet(小程序)的形式,直接在瀏覽器中運行;甚至還考慮直接將Java作爲腳本語言嵌入網頁,只是因爲這樣會使HTML網頁過於複雜,後來纔不得不放棄。

總之,當時的形勢就是,網景公司的整個管理層,都是Java語言的信徒,Sun公司完全介入網頁腳本語言的決策。 因此,Javascript後來就是網景和Sun兩家公司一起攜手推向市場的,這種語言被命名爲"Java+script"並不是偶然的。

此時,34歲的系統程序員Brendan Eich登場了。1995年4月,網景公司錄用了他。Brendan Eich
Brendan Eich的主要方向和興趣是函數式編程,網景公司招聘他的目的,是研究將Scheme語言作爲網頁腳本語言的可能性。Brendan Eich本人也是這樣想的,以爲進入新公司後,會主要與Scheme語言打交道僅僅一個月之後,1995年5月,網景公司做出決策,未來的網頁腳本語言必須"看上去與Java足夠相似",但是比Java簡單,使得非專業的 網頁作者也能很快上手。 這個決策實際上將Perl、Python、Tcl、Scheme等非面向對象編程的語言都排除在外了。Brendan Eich被指定爲這種"簡化版Java語言"的設計師。

但是,他對Java一點興趣也沒有。爲了應付公司安排的任務,他只用10天時間就把Javascript設計出來了。由於設計時間太短,語言的一些細節考慮得不夠嚴謹,導致後來很長一段時間,Javascript寫出來的程序混亂不堪。如果Brendan Eich預見到,未來這種語言會成爲互聯網第一大語言,全世界有幾百萬學習者,他會不會多花一點時間呢?
總的來說,他的設計思路是這樣的:
(1)借鑑C語言的基本語法;
(2)借鑑Java語言的數據類型和內存管理;
(3)借鑑Scheme語言,將函數提升到"第一等公民"(first class)的地位;
(4)借鑑Self語言,使用基於原型(prototype)的繼承機制

所以,Javascript語言實際上是兩種語言風格的混合產物----(簡化的)函數式編程+(簡化的)面向對象編程。 這是由Brendan Eich(函數式編程)與網景公司(面向對象編程)共同決定的。
如果不是公司的決策,Brendan Eich絕不可能把Java作爲Javascript設計的原型。作爲設計者,他一點也不喜歡自己的這個作品:
“與其說我愛Javascript,不如說我恨它。它是C語言和Self語言一夜情的產物。十八世紀英國文學家約翰遜博士說得好:‘它的優秀之 處並非原創,它的原創之處並不優秀。’ (the part that is good is not original, and the part that is original is not good.)”
部分內容來參考百度百科Brendan Eich

Javascript的發展

因爲 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發佈了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發佈了 IE 3.0 並搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是爲了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成爲 JavaScript 語言發展過程中的重要一步。

在微軟進入後,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 並沒有一個標準來統一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨着業界擔心的增加,這個語言的標準化顯然已經勢在必行。

1997 年,JavaScript 1.1 作爲一個草案提交給歐洲計算機製造商協會(ECMA)。第 39 技術委員會(TC39)被委派來“標準化一個通用、跨平臺、中立於廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的 TC39 錘鍊出了 ECMA-262,該標準定義了名爲 ECMAScript 的全新腳本語言。

在接下來的幾年裏,國際標準化組織及國際電工委員會(ISO/IEC)也採納 ECMAScript 作爲標準(ISO/IEC-16262)。從此,Web 瀏覽器就開始努力(雖然有着不同的程度的成功和失敗)將 ECMAScript 作爲 JavaScript 實現的基礎。

ECMAScript被制定後,一共經過了六次改版,如果之前看過一些資料的同學可以發現很多常用規範不是在第三版定義的就是在第五版定義的,這中間究竟發生了什麼故事呢?

第一版:

ECMAScript在制定第一版的時候有3個很重要的原則:

1 把所有和瀏覽器相關的代碼全部刪掉,這也是javascript1.2 與 javascript1.1 不兼容的主要原因。

2 要求對象和平臺無關。

3 全面支持Unicode的編碼,這是爲了以後能支持多語言的開發。

可以看出Js在設計之初就不是客戶端語言,所以js可以在很多平臺去使用,比如node.js,甚至在很多機頂盒裏也在使用js。

第二版:

ECMAScript在制定第二版的時候其實沒做什麼修改,只是進行整理。

第三版:

直到第三版的時候才真正去定義JavaScirpt,我們現在常用的很多都是在第三版進行定義的,也就是ES3。

第四版:

到第四版的時候,大家都發現js非常強大,所以在第四版的時候要加入很多新的特性,新的數據結構,對第三版進行了大量的修改,這就導致了第四版幾乎要成了一門新開發的語言,委員會裏的成員意見就開始出現分歧,有的人支持第四版進行大改動,而有的人建議做成3.1的版本進行小範圍的修改,最後更多的人贊成不做大範圍的修改,導致ECMAScript沒有第四版了,而3.1版最終因爲一些原因也沒有發佈。

第五版:

由於前面的原因,3.1版本演變了後面的第五版本,也就是我們常說的ES5。

第六版:

2015年6年 正式發佈了ES6,它的目標是使js可以用來編寫複雜的大型應用程序,成爲企業級開發語言。

這裏說到的ECMAScript 只是JS裏的一部分內容,一個完整的JavaScipt應該包括:

核心(ECMAScipt)
文檔對象模型(DOM)
瀏覽器對象模型(BOM)
內容部分來自js發展歷史

javascript的未來

  1. javascript和其它面嚮對象語言越來越像,自從javascript 引入了class以後,語法和格式一些和其它面向對象的語言越來越像,比如java,C#等,使學習javascript的學習成本很低,用的人自然越來越多。其它的特性也會慢慢的引入javascritp
  2. web前端框架和庫越來越多,除了React,Vue,Angluar,以後肯定會出現其它的黑馬。
  3. 估計javascript會在人工智能,5G等多個行業發力
  4. node.js越來越火,在各個行業強佔後端市場。

這僅是個人意見,權供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章