成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HTML5下一步如何發展?

開發
計算機程序員一直受跨平臺問題的困擾,自從需要涉及第二個平臺開始。自那之后,問題的數量便迅速增加。如今,開發人員至少需要同時針對四個操作系統(以及更多細分的系統)進行開發,運行這些操作系統的設備具有各種外觀、尺寸大小、分辨率、持久度、輸入方法、運營商網絡、連接速度和狀態、用戶界面的規定、應用商店、部署及更新機制等。

計算機程序員一直受跨平臺問題的困擾,自從需要涉及第二個平臺開始。自那之后,問題的數量便迅速增加。如今,開發人員至少需要同時針對四個操作系統(以及更多細分的系統)進行開發,運行這些操作系統的設備具有各種外觀、尺寸大小、分辨率、持久度、輸入方法、運營商網絡、連接速度和狀態、用戶界面的規定、應用商店、部署及更新機制等。

全球許多開發人員一度曾將Java*視為跨平臺開發的***。確實,Sun*(現在為Oracle)的這種結構化語言持續在解決許多跨平臺問題,但它也會引入不少障礙,而其中最重要的一個障礙之一便是,類結構甚至會給最微小的程序功能造成沉重負擔。在開發人員轉為使用瀏覽器來進行應用交付時,Java帶來的負擔變得更加沉重;Java小應用程序對瀏覽器而言是不透明的黑箱,因為該語言對開發人員是封閉的(盡管我們非常尊重JCP)。

在Java使瀏覽器大戰愈演愈烈的同時,一種名稱相似的解析語言橫空出世。這種語言開始名叫Mocha,后來改為LiveScript,***定名為JavaScript*。實踐證明,它在一些方面比Java更加實用,因為它能夠與瀏覽器進行交互,并能夠使用HTML的級聯樣式表單 (CSS) 來控制內容顯示。JavaScript支持很快便成為每個瀏覽器的標準功能。現在它就成為了HTML5編程語言,該語言被萬維網聯盟視為下一種標記語言的標準。

為了更好地了解HTML5的成功原因、現狀以及未來發展方向,《Intel® Software Adrenaline》雜志采訪了英特爾軟件與服務事業部軟件開發產品部的資深***工程師Moh Haghighat。Moh是英特爾針對Firefox*瀏覽器開發的***JavaScript即時編譯器 (JIT) 的技術領導。他還領導了***并行JavaScript JIT和并行瀏覽器布局引擎原型的開發工作,這二者都是在Firefox環境下進行開發。他目前負責領導英特爾的HTML5技術戰略工作。

Intel Software Adrenaline:對于跨平臺開發,HTML5為何優于Java?

Moh Haghighat:啟動Java小應用程序會讓我想起聲名狼藉的“加載Java”狀態欄。它在啟動時會看到大量進度條,而不像如今的Web瀏覽器那樣具有快速響應性,這起碼會讓人感到厭煩。這是該語言的根本問題,而[Adobe] Flash*在某種程度上解決了這個問題。哪怕是運行一小段Java代碼,也需要將整個JVM載入瀏覽器,而且在開始執行這些代碼前還可能要執行一大串類初始化程序。對于服務器端的代碼,您在服務器上針對大量客戶端重復運行相同的代碼,這種情形還可以接受。但在客戶端,您希望運行的代碼來自許多不同應用,看到如此大量的進度條會讓人無法承受。運行Java的***位置被證明是服務器端的中間件,Java應用服務器先驅WebLogic*便是一款優異的中間件。對于客戶端開發來說,這也是HTML5優于Java的技術原因之一。雖說如此,在建立可管理編程語言的可行性,以及為更高效的高級語言(如JavaScript、PHP*、Python*和Ruby*)奠定基礎方面,Java發揮了重要作用。

Java還有一些確實非常出色的特性,可支持高效的代碼生成,而幾乎無需昂貴的編譯器分析,如針對寄存的基于類型和基于偏移量的歧義消除。

另一個問題在于Sun對Java項目的運作。Java一開始并不是開放技術,同時Web技術也發生了演變。我認為Java沒有成功的主要原因是Sun忽略了Web瀏覽器;在JavaScript變得日益強大的過程中,我們沒有看到Java在瀏覽器方面有多少創新。JavaScript異步使用模型 (AJAX) 讓瀏覽器成為出色的交互平臺,這使得許多基于Web的應用大受歡迎,如Google* Docs。同時,這些應用的復雜性不斷增加。例如,Gmail*的JavaScript代碼從2004年的近萬行增加到2010年的近50萬行,僅在六年間就增長了50倍(參見圖1)。隨著Web在全球的迅猛增長,已有數百萬網頁使用JavaScript,因此就已安裝的代碼庫而言,JavaScript目前是影響力***的語言。在與瀏覽器集成方面,Java根本無法與JavaScript相提并論,因為JavaScript是瀏覽器的“原生”語言。另外,采用CSS和JavaScript的瀏覽器對UI和邏輯實現了完全分離,而Java平臺則沒有。

HTML5提供了更具吸引力的備選方案。您編寫的應用可在任何類型的計算設備上運行,無論是電話、平板電腦、筆記本電腦、臺式計算機還是電視。如果設備支持HTML5,它就能在該設備上運行。您甚至無需進行編譯;您只需要編寫程序,它就會被分發和執行。

 

Lines of JavaScript Code: JavaScript代碼的行數

Gmail 50x larger in 6 years: Gmail在6年內增長了50倍

圖1:Adam de Boor,Google

ISA:JavaScript和HTML已存在多年。最近有什么變化使HTML5對跨平臺開發如此有效?

MH:首先,在過去五年里,JavaScript的速度大幅提升,快了100倍(參見圖2),這在很大程度上得益于JavaScript JIT的出現。由于Web應用復雜性和成熟度的顯著增加,JavaScript JIT成為一項不可或缺的技術。在JavaScript性能方面,2011年的***Internet Explorer*版本比2001年的Internet Explorer快了100倍以上。其次,通過HTML5還突然引入了非常多的新功能。這可能是自瀏覽器推出以來,HTML實現創新最多的一次。現在,HTML的渲染方式已經與過去完全不同。在HTML5開始得到廣泛采用之后,其性能有了顯著提升,新功能也不斷增多。

 

Sunspider runs per minute: 每分鐘運行Sunspider的次數

Internet Explorer JavaScript performance improves 100x: Internet Explorer JavaScript性能提升了100倍

圖2:Luke Hoban,Microsoft

在技術采用方面,我觀察到了另一個值得關注的趨勢,IT部門日益發現HTML5***吸引力,這是因為人們會在工作中使用各種不同設備。在如今的業務環境下,所涉及的智能手機、平板電腦和便捷式電腦達數百種之多。HTML5是唯一的可以讓IT的應用跑在所有的設備上的方案。另外,公司也無力針對每種設備類型開發相關應用并提供支持。現在,基于HTML5的響應式設計模式不斷出現,這種設計模式能夠使內容適應設備的顯示屏尺寸。這些全都是HTML的重要組成部分,因為利用CSS和JavaScript您能動態地適應不同的設備。

ISA:由于沒有靜態類型化功能,JavaScript一直因其僅局限于小型應用程序而飽受批評。這種批評有道理嗎?

MH:JavaScript將來會提供類、模塊及類型化功能。負責下一個JavaScript版本相關工作的ECMAScript*委員會正在研究類的問題,類有利于維護工作。Java有類,C++也有類。JavaScript采用基于原型的繼承模式,這將允許您實現類,但它不強制要求以某種特定方式實現類。Java有自己針對類的對象模式;目前JavaScript語言沒有采用特定的類模式。它使讓用戶能夠實現自己的類版本。

出于軟件工程的原因,在有大量開發人員參與項目的情況下,人們可能需要特定的類模式。對于大型項目,您可能需要做一些限制,例如需要定義特定的編碼原則等等。如果每個人都以自己的方式來使用JavaScript的話,其靈活性有可能會產生負面作用。

讓我們類比一下老早以前,FORTRAN等編程語言都使用GOTO語句。但在20世紀70年代,Edsgar Dijkstra和其他人士發現以非結構化方式使用GOTO語句有害無利。因此,程序員被要求使用結構化的編程原則,而不要隨意使用GOTO語句,從而使編程語言和應用更易于理解和維護。而在JavaScript變為低級語言,并在其基礎上能夠實現大量高級語言時,同樣的事情也正在發生。JavaScript已變為所謂的“Web的匯編語言”。

ISA:您能給我們舉一個這種情形的例子嗎?

MH:最近,利用限制和結構方面最令人振奮的例子,是Mozilla正在開發的一個名為 “asm.js” 的項目,以及另一個有關聯的名為“Emscripten”的項目,這基本上是一個將 LLVM位碼轉換為JavaScript 和HTML***PI的編譯器。(LLVM是Apple*公司贊助的一個項目,旨在為C/C++及其他語言開發低級虛擬機編譯器基礎架構和語言前端)。Emscripten實質上是將C++轉換為JavaScript。

Asm.js是Emscripten的一個可選目標,可以提供近乎原生的性能,與經優化的原生代碼相比,開銷通常降低2倍,而目前的全JavaScript則約為5倍。雖然JavaScript使用動態類型,但asm.js的要求(如類型推斷和注釋)仍然完全基于JavaScript規范。使用asm.js,用戶能夠編寫被證明是靜態類型的代碼。因此,在裝載時,用戶能夠驗證代碼實際上是靜態類型。提前編譯器能夠生成極其高效的代碼而無需進行額外檢查,這與動態類型語言不一樣;這有助于同時提高靈活性和代碼效率。

如我們所說,這些語言都在不斷發展演變,將能夠把大段計算密集型代碼(如性能庫和游戲引擎)轉換為JavaScript,并使其可應用于全球每一個設備成為可能。JavaScript正在成為高級語言的目標語言。

ISA:目前有哪些與JavaScript相關的語言項目?

MH:現在有一種叫CoffeeScript*的語言,Microsoft也在開發TypeScript*語言,它是JavaScript的超集。Google的Dart*是一種采用類概念的新語言,也編譯為JavaScript。我不認為有人能讓整個Web都更換Web瀏覽器的主語言。然而我相信,各種語言的優異特性匯集到一起,將會對JavaScript規范產生影響,而這些特性也將會添加到規范中。這基本上實現了演變、向后兼容性以及增量改變。

ISA:英特爾直接推動了HTML5和JavaScript的發展。您能否給我們介紹一下這方面的相關工作?

MH:英特爾在并行技術領域一直居于領先地位,并行性使HTML5能夠滿足多核的要求。您需要利用并行性提高響應速度和電源利用率。我們對Firefox*布局引擎的CSS規則匹配實現了并行化,使其具有可擴展性。從編程語言的角度看,HTML5有一個稱作“Web Workers”的并行性API。它非常適用于粗粒度的后臺線程,但如果您希望執行大量小型并行[任務],Web Workers則無法勝任。英特爾一直與Mozilla在并行陣列方面開展合作;我們在英特爾實驗室的同事首先建立了它的原型。目前我們正在努力解決實施中的所有問題,以使其進入到ECMAScript,即JavaScript的官方語言規范中。

另外,我們還與Mozilla和Google進行合作,以確保現在已有(如Sandy Bridge和Ivy Bridge等等)的SIMD矢量功能可以真正采用JavaScript進行編程。也就是說,如果您的JavaScript代碼對數據進行并行的操作,那么該代碼會真正實現矢量化,同時開發人員使用這些功能時能夠保證代碼的執行。這些功能終將進入標準之中。

結束語

面對操作系統和設備不斷增多的趨勢,全球許多開發人員都在尋找經濟高效的方法來創建他們的應用。開發人員一度將Java視為跨平臺開發解決方案。與較老的語言相比,Java有許多優勢,但Java沒有跟上移動平臺的快速創新步伐。開發人員現在轉為使用HTML5及其核心技術,即JavaScript和CSS,來實現所需的***功能和跨平臺可操作性,以便在當今的應用市場上取得成功。

據Haghighat說,英特爾工程師繼續在英特爾平臺上對HTML5引擎進行優化,并為HTML5增加新功能。英特爾將HTML5視為邁向透明計算時代的重要步驟。為進一步加快HTML5的廣泛采用,英特爾現在還提供了英特爾® XDK,這是一個完整的開發套件,可幫助開發人員在Android、Firefox* OS和iOS等各種平臺上,構建、測試、調試、打包及部署其HTML5應用。

資源

英特爾® XDK HTML5開發環境:http://html5dev-software.intel.com/

英特爾® 開發人員專區:http://software.intel.com/zh-cn/html5

關于作者

Edward J. Correia自1980年以來一直在計算機行業工作,那時他便開始銷售(并偶爾侵入)Atari 公司和 Commodore公司的電腦。除了為RH+M3撰稿,Correia目前還擔任CRN Test Center的編輯主任。CRN Test Center是一家計算機與網絡測試實驗室,于1995年在Correia的協助下成立。在脫離CRN的母公司United Business Media的10年期間,Correia曾擔任《Software Test & Performance》雜志的編輯和SD Times的執行主編。

責任編輯:林師授 來源: 51CTO
相關推薦

2015-05-19 11:31:11

LTELTE網絡

2018-09-20 21:13:41

5G網絡無線技術

2018-05-18 10:18:20

云計算云廠商物聯網

2017-01-17 15:57:47

大數據特朗普數據湖泊

2013-08-12 14:42:20

UI設計UX設計設計

2014-09-04 10:01:12

2011-05-19 16:17:34

軟件測試

2022-05-21 23:38:01

云原生IT企業

2017-05-02 14:17:50

存儲數據閃存

2019-05-21 05:09:23

物聯網數據IOT

2017-01-18 12:16:37

OpenFlowSDNONF

2023-11-13 11:10:16

2024-10-15 15:42:50

2018-09-13 12:51:52

云計算私有云公共云

2013-11-25 13:30:47

微信開發

2021-05-30 15:58:51

云計算DevOpsIT

2022-01-07 18:23:37

工業物聯網IIOT物聯網

2021-01-19 10:47:16

5G工業互聯網大數據

2009-11-04 15:52:16

Windows Emb服務導向設備

2011-05-05 10:25:35

Windows Ser
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品人人做人人爽 | 91精品国产麻豆 | 九九亚洲 | 蜜臀网 | 成人福利网站 | 337p日本欧洲亚洲大胆 | 视频一区二区在线 | 国产精品视频一区二区三区 | 91精品国产91久久久久久不卞 | 瑞克和莫蒂第五季在线观看 | 美女黄18岁以下禁止观看 | 99热热热热 | 久久久亚洲一区 | 免费在线看a | 国产日韩欧美一区二区 | 男人的天堂久久 | 国产精品久久久久久吹潮 | 精品国产乱码久久久久久丨区2区 | av毛片| 天天爱天天操 | 国产一区二区三区在线 | 中文字幕久久精品 | 韩国av一区二区 | 天天操天天干天天透 | 亚州成人| 午夜一区 | 日韩av成人 | 在线看亚洲 | 国产精品一区二区三区久久久 | 国产精品亚洲成在人线 | 国产精品美女 | 久久成人免费 | 国产在线观看 | 日韩免费视频一区二区 | 五月婷婷在线视频 | 欧美性生活视频 | 精品视频一区二区 | www.中文字幕.com | 国产一级淫片免费视频 | 欧美xxxx黑人又粗又长 | 日本特黄特色aaa大片免费 |