JavaScript的角色巨變和Web技術的發展

來源:互聯網
上載者:User

曾經JavaScript是職業程式員看不上眼的指令碼語言,如今只有進階程式員才能駕馭它。

JavaScript性質和地位的天翻地覆,正是Web技術飛速變化的印證。

最初職業程式員輕視JavaScript,認為它和C、Java這些真正的開發語言相比只是指令碼小毛孩(Script Kids)的玩具。那時候,互連網才剛剛從單純提供靜態資訊發展到和使用者之間有一些互動。JavaScript做的只是跑龍套的角色,檢查使用者輸入,向使用者提示資訊,做一些四則運算;或者真的是用來做玩具,顯示浮動圖片,變幻字型大小顏色,豐富滑鼠效果。JavaScript在大家的印象裡,就是一門文法屬於C風格,對格式不那麼嚴格,所能做的只是增加一下頁面和使用者的互動的輔助性語言。

後來,Web開發隨著ASP、Java、PHP的發展大行其道,但是開發還主要集中在伺服器端,簡單地說,就是商務邏輯加上操作資料庫。JavaScript的作用也得到發展,為了類比傳統的用戶端應用程式,提供更豐富的功能和友好的操作,比如類比多級菜單、分類樹、多標籤頁表格,JavaScript操作DOM API成為必不可少的手段。用戶端應用程式在功能上漸漸沒有優勢,安裝、升級和維護的劣勢使得它和Web應用此消彼長。

進一步有三個因素使得Web應用成為主流。

其一是技術性的原因,即Ajax的發明和普及,大大提高了Web應用的使用者體驗,因為它不僅消除了提交頁面——空白——重新顯示這樣和用戶端應用相比煩人的過程,而且極大地豐富了使用者和系統之間互動的可能性——頁面不再是一個整體,每一個部分都可以顯示獨立的資訊,跟隨使用者的滑鼠鍵盤的各種輸入各自變化更新。

其二是設計上的原因。傳統的用戶端應用程式的介面像代碼一樣符合一定的規則,功能表列、工具列、主介面,使用者的操作也限定在文字框、單選框、下拉框等一套標準控制項中。應用程式的介面似乎就應該這樣標準化,就像電腦就應該是有一台主機、一個顯示器、一個鍵盤。這樣一種理念部分地是因為程式員不是設計師,和漂亮的介面相比,他們更關心代碼的正確和系統的效能;設計師可以用繪圖軟體畫出與眾不同的好看設計,但是一方面介面是和功能一道開發的,設計師沒有相應的知識和技能將他們的設計結合到程式中,另一方面無論是VB、Dephi還是VC,要想將一套想象出的顯示和使用者操作編寫成新的控制項,都是很困難的事。Web開發的情況截然不同。頁面和背景程式天然地分開,和前景程式只要設計良好也能完全分離,設計師只需掌握HTML和CSS就可以用各種頁面設計軟體設計出程式員能夠應用的介面。和上面相對應的另一方面,使用HTML+CSS+JavaScript建立一個直觀好用的“控制項”也比較容易。於是,漂亮精緻的介面和方便友好的使用者體驗如雨後春筍一般湧出。Web應用在介面上迅速超過了用戶端程式,在外觀上取得了優勢。有一段時間,開發Web系統時模仿經典的用戶端程式的介面(功能表列、工具列和主介面等)很普遍,而現在的傳統型應用程式,往往學習的是Web應用美觀的介面和簡潔的操作。學生已經超越了老師。

第三個原因既是技術的,也是文化的。一個Web應用的前端,包括HTML、CSS和JavaScript,都是開放的。任何一個有興趣的人,都可以查看、研究、學習、測試和編輯,這一點與傳統的代碼不可見的用戶端程式有巨大區別。互連網開放的文化也和開源的精神相得益彰。層出不窮的介面設計和編程理念可以在互連網這個巨大的平台上展現,相互競爭。經過實踐證明的優勝者又迅速被學習傳播。這樣一個良性的競爭平台,使得Web技術的發展速度大大超過傳統型應用程式。

正是在這樣一個大背景下,JavaScript的潛力得到充分發揮。大家發現,它天生適合用來做Web的前端開發,而這又是Web應用中日益複雜和重要的部分。JavaScript變成構建豐富的使用者介面,實現精緻的功能的支柱。因為任務大大增加,JavaScript指令碼的長度也迅速增長。提供公用功能,展示最佳實務以至於設定整個應用程式框架的指令碼庫大量湧現,日新月異。Prototype、jQuery、dojo、YUI、Knockout、AngularJS……讓人眼花繚亂。JavaScript動態語言的本質和採用原型的對象機制,使得完成同樣的功能,所需的代碼數量比靜態基於類繼承的語言,如Java,少很多。但是缺乏編輯時語法檢查,瀏覽器這樣一個不友好的開發環境,使得用JavaScript開發複雜的功能容易出錯,或者換句話說,需要程式員更加細緻。JavaScript語言本身的特性(函數是第一類對象,匿名函數的聲明,對象的原義定義),既提供了寫出精緻優雅的代碼的可能性,各種不同的實現方式和風格又需要開發人員對語言有更好的掌握和清晰的思路。

終於,JavaScript演變成一門主流語言,充滿吸引力和挑戰性,並且只有高手才能充分駕馭。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.