書名: WebAssembly實戰作者名: (加拿大)C.杰勒德·加倫特本章字數: 917字更新時間: 2021-05-12 10:20:16
前言
與一些朋友相比,我在編程方面開竅較晚。直到高中時,我才偶然接觸編程。當時我需要再修一門計算機課程,輔導老師向我推薦了一門選修課。我以為要學習的是計算機工作原理,但出乎意料,這門課程是關于編程的。很快我就對它癡迷不已,并將職業發展方向從建筑學調整為軟件架構。
2001年,我加入了Dovico軟件公司,工作內容是維護與改進公司的C++客戶端/服務器應用程序。當時的風向已經轉變,2004年,Dovico決定轉向軟件即服務模式,我也將工作重心轉到了Web應用程序產品。雖然我仍會幫助維護C++應用程序,但我的核心關注點變成了用C#和JavaScript進行Web開發。目前,我仍然從事Web開發,但是重心轉到了體系結構方面——構建API、使用數據庫,以及探索新技術。
我很樂于通過博客和公開演講回饋開發者社區。2017年9月,有人問我是否有興趣為本地用戶做一場演講。在四處瀏覽以尋找演講主題時,我看到了一篇來自于PSPDFKit的文章,其中討論了一種名為WebAssembly的技術。
當時我已經對谷歌的Native Client(PNaCI)技術有所了解,它允許編譯后的C/C++代碼在Chrome瀏覽器中以接近原生的速度運行。我也了解過Mozilla的asm.js技術,借助這種技術,可以將C/C++代碼編譯為JavaScript的一個子集,并讓它在支持此技術的瀏覽器中高速運行。它也可以在不支持asm.js的瀏覽器中運行,只不過速度上沒有優勢,因為它就是JavaScript。這是我第一次聽說WebAssembly。
WebAssembly擁有asm.js的優點,同時致力于彌補其缺點。有了WebAssembly,你能夠以多種語言編寫代碼,并將它編譯為可在瀏覽器中安全運行的代碼,而且它在所有主流的桌面瀏覽器與移動端瀏覽器中都可用!它也可以應用于瀏覽器之外,如Node.js!我被WebAssembly的潛力深深觸動,從那時起,便開始利用所有空閑時間探索這項技術,并撰寫與之相關的博客文章。
2017年年末,Manning出版社注意到了我的博客文章,相關人員問我是否有興趣撰寫一本關于WebAssembly的圖書。最開始,我計劃在書中覆蓋多門語言,并分別從后端開發者和前端開發者的角度來展示如何使用這項技術。但是,初稿的講解重點明顯不夠突出,因此我和審校人決定將范圍收窄,只關注C/C++語言,并且側重于后端開發者。
在我撰寫本書時,WebAssembly社區與工作組也沒有閑著。實際上,這項技術的幾項改進正在進行當中。最近,不需要啟用任何實驗性功能就可以在Chrome的桌面版本中使用多線程WebAssembly模塊了!WebAssembly有潛力幫助Web開發更上一層樓,對于它的未來,我拭目以待。
- Learn Swift by Building Applications
- Oracle數據庫從入門到運維實戰
- Learning Neo4j 3.x(Second Edition)
- 云計算通俗講義(第3版)
- jQuery開發基礎教程
- Flutter跨平臺開發入門與實戰
- 一塊面包板玩轉Arduino編程
- Android群英傳
- ROS機器人編程實戰
- Microsoft HoloLens By Example
- 啊哈C語言!:邏輯的挑戰(修訂版)
- Offer來了:Java面試核心知識點精講(框架篇)
- C語言程序設計實驗指導與習題精解
- Implementing Domain:Specific Languages with Xtext and Xtend
- 微軟辦公軟件認證考試MOS Access 2013實訓教程