Top Banner
Javascript征服世界是可能的嗎? gasolin@Modern Web Conf 2015
59

Javascript征服世界是可能的嗎?

Feb 15, 2017

Download

Internet

Fred Lin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Javascript征服世界是可能的嗎?

Javascript,征服世界是可能的嗎?

gasolin@Modern Web Conf 2015

Page 2: Javascript征服世界是可能的嗎?

征服世界的4個秘密1996, 2008, 2010, 2013

從0到1

Page 3: Javascript征服世界是可能的嗎?

被豪門包養

第一個秘密:JS從1996年開始

Page 4: Javascript征服世界是可能的嗎?

Netscape/Opera 1994↓

Internet Explorer 1995(War ↓ One)Safari 2003

↓Firefox 1.0 2004

(War ↓ Two)Chrome 2008

豪門包養史

Page 5: Javascript征服世界是可能的嗎?

瀏覽器

Page 6: Javascript征服世界是可能的嗎?

順道介紹 - 瀏覽器排版引擎

Page 7: Javascript征服世界是可能的嗎?

JS引擎

http://en.wikipedia.org/wiki/List_of_ECMAScript_engines

Page 8: Javascript征服世界是可能的嗎?

搞定豪門

搞定瀏覽器

Page 9: Javascript征服世界是可能的嗎?

搞定豪門

搞定瀏覽器

Page 10: Javascript征服世界是可能的嗎?

快100+倍第二個秘密:現在的JS比2008年

Page 11: Javascript征服世界是可能的嗎?

http://www.youtube.com/watch?v=D2ibM4oufdM

Page 12: Javascript征服世界是可能的嗎?

變快的JS能做什麼呢?

Page 13: Javascript征服世界是可能的嗎?

自己試 http://beta.unity3d.com/jonas/WebGLBenchmark/

讓發明人可以安心

玩3D遊戲

Page 14: Javascript征服世界是可能的嗎?

Emscripten

可編譯 c++ 程式到 Web,搭配 asm.js 技術僅慢原生1.5x倍

Page 15: Javascript征服世界是可能的嗎?

還是慢1.5倍怎麼辦?

Page 16: Javascript征服世界是可能的嗎?

摩爾出來面對

http://big5.cri.cn/gate/big5/gb.cri.cn/32464/2010/07/21/1325s2928129_3.htm

Page 17: Javascript征服世界是可能的嗎?

摩爾出來面對

換快一點的CPU就解決了

http://krsna.lamost.org/popular/POPU/moor.htm

Page 18: Javascript征服世界是可能的嗎?

可編譯成JS的程式語言http://bit.ly/1F94Dx5

RubyPythonErlangPerlLisp/schemeHaskellSQLphp

Java/JVM.Net relatedc++BasicPascalgo

Page 19: Javascript征服世界是可能的嗎?

可編譯成JS的程式語言http://bit.ly/1F94Dx5

RubyPythonErlangPerlLisp/schemeHaskellSQLphp

Java/JVM.Net relatedc++BasicPascalgo

Page 20: Javascript征服世界是可能的嗎?

JS才成為獨立的程式語言

第三個秘密:從 2010 年開始

Page 21: Javascript征服世界是可能的嗎?

從前從前

Page 22: Javascript征服世界是可能的嗎?

JS

event callback, non-blocking I/O, single thread

Page 23: Javascript征服世界是可能的嗎?

然後

Page 24: Javascript征服世界是可能的嗎?

與網頁百寶箱分開跑馬燈按右鍵無效落葉效果

JS終於可以

Page 25: Javascript征服世界是可能的嗎?

與DOM分開

JS終於可以

DOM 相關 API:

window.addEventListenerthis.getElementById(‘name’);moz-, webkit-, ms-...

Page 26: Javascript征服世界是可能的嗎?

搞定命令行

Page 27: Javascript征服世界是可能的嗎?

搞定命令行

Page 28: Javascript征服世界是可能的嗎?

搞定命令行

Page 29: Javascript征服世界是可能的嗎?

全端JS

Page 30: Javascript征服世界是可能的嗎?

全端JS

Page 31: Javascript征服世界是可能的嗎?

Enterprise Ready

Page 32: Javascript征服世界是可能的嗎?

http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/

網站前/後端同構Isomorphic

Page 33: Javascript征服世界是可能的嗎?

搞定伺服器端與建置工具

Page 34: Javascript征服世界是可能的嗎?

搞定伺服器端與建置工具

Page 35: Javascript征服世界是可能的嗎?

9成軟體可以搬上web

第四個秘密:從 2013 年開始

Page 36: Javascript征服世界是可能的嗎?

Cordova (Mobile Evolvement)

WebKit 2005↓

PhoneGap 2009↓

Cordova 2011

http://phonegap.com/app/

Page 37: Javascript征服世界是可能的嗎?

桌面開發:前/後端融合

WebKit 2005↓

Chromium 2008↓

Node 2009↓

NodeWebkit 2013↓

Electron 2014Github Atom ↓ MS VS Code

Page 38: Javascript征服世界是可能的嗎?

React Native (no HTML)

Node 2009↓

React 2013↓

React Native 2015

https://www.youtube.com/watch?v=KVZ-P-ZI6W4

Page 39: Javascript征服世界是可能的嗎?

Web App化

● 開網址即用 https + manifest

● 離線時可用 service worker

● 連線時更新● 模組化開發 web component

From html5rocks

Page 40: Javascript征服世界是可能的嗎?

搞定桌面端與跨多平台

Page 41: Javascript征服世界是可能的嗎?

搞定桌面端與跨多平台

Page 42: Javascript征服世界是可能的嗎?

搞定桌面端與跨多平台

Page 43: Javascript征服世界是可能的嗎?

JS的未來

Page 44: Javascript征服世界是可能的嗎?

搞定系統與嵌入式裝置?

Page 45: Javascript征服世界是可能的嗎?

Web即平台

Firefox 2004↓

Firefox for Android 2009↓

Firefox OS 2013

Phone, TV, Embeded

http://www.cnet.com/pictures/kddis-high-end-firefox-os-phone-the-fx0-pictures/3/

Page 46: Javascript征服世界是可能的嗎?

duktape

● ES5.1 compatible● Small footprint (can install in Arduino due)● Can embedded in C

Page 47: Javascript征服世界是可能的嗎?

Exprino pico

http://kck.st/1JNq4DK

板子上直接跑JS (8kb)

Page 48: Javascript征服世界是可能的嗎?

@Idea 把物聯網裝置當成DOM節點

Query

$.byName('門口感測器').trigger('motion', function() {

$.byLocation('客廳').setOn();

});

Web Component

<iot-device name='門口感測器'>

<iot-motion-sensor data-pin=7></iot-motion-sensor>

</iot-device>

http://devicejs.org/

Page 49: Javascript征服世界是可能的嗎?

結語

Page 50: Javascript征服世界是可能的嗎?

多種平台

WindowsMacLinuxAndroidiOSBB10FirefoxOSWebOSArduino

使用者同時擁有

Page 51: Javascript征服世界是可能的嗎?

多樣設備

DesktopTVTabletPhoneWatchEmbedded

使用者交互使用

Page 52: Javascript征服世界是可能的嗎?
Page 53: Javascript征服世界是可能的嗎?

偉大的企業都有秘密,秘密不會消失不見只有相信秘密,才能看到隱藏的機會

- Peter Thiel

Page 54: Javascript征服世界是可能的嗎?

Reference

Javascript world domination https://medium.com/@slsoftworks/javascript-world-domination-af9ca2ee5070

Happy 18th Birthday Javascripthttps://resin.io/blog/happy-18th-birthday-javascript/

Evolution Webhttp://www.evolutionoftheweb.com/

Extensible webhttps://extensiblewebreportcard.org/

Page 55: Javascript征服世界是可能的嗎?

One More ThingWeb 技術簡史

Page 56: Javascript征服世界是可能的嗎?

Web古代

Netscape 1994↓

Internet Explorer 1995(Browser ↓ War One)

JavaScript 1995↓

CSS 1996↓

Page 57: Javascript征服世界是可能的嗎?

Web中世紀

HTML4/DOM 1998↓

HTTPXMLRequest IE5 1999↓

IE6 2001(90% browser ↓ market share)

JSON 2002

Page 58: Javascript征服世界是可能的嗎?

Web大航海

Firefox 1.0 2004(Browser ↓War Two)

Gmail 2004↓

Ruby on Rails 2004↓

WebKit 2005↓

JQuery 2006

Page 59: Javascript征服世界是可能的嗎?

Web工業革命

Mobile Safari 2007↓

RESTful 2007 ↓

Chrome 2008 (Browser ↓ war intensify)

NodeJS 2009↓

MongoDB 2009↓

PhoneGap 2009