Skip to content

Latest commit

 

History

History

stuq

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

StuQ

一个新的学习方式

JS @ 2017

[johnhax.net/2016/stuq](http://johnhax.net/2016/stuq/)

Introduction of

My Company
and Myself

百姓网 www.baixing.com

自我介绍 zhuanlan.zhihu.com/p/23870345

github: @hax zhihu: 贺师俊 weibo: @johnhax johnhax.net/events

JavaScript

The World's Best
Programming Language

The World's Best

Popular

GitHub, Trending

语言特性 表达能力

先天不足

ES6+

性能

JS是最快的, 动态语言

还会更快

Competition, within largest companies

Competition Cooperation

语言、平台, 得靠爹

一群干爹

Google, Microsoft Apple, Facebook

V8

AngularJS Polymer

PWA

Chakra

TypeScript

Rx

WSH, ASP, HTA JScript.NET Gadgets

HWA

SFX (Nitro)

OSX Automation

React, Native

Nuclide

Reason

给OCamel 披上JS外衣

Yarn

Babel

hardest to upgrade ->, Always use latest feature!

好不好, 得实践

正向反馈

生态

语言生态

库的生态

先天不足

野蛮生长

模块机制, 包管理器

自由竞争

爆发

164,234 packages

183,668 packages

195,117 packages

364,935 packages

modulecounts.com

平台生态

JS as a Platform

  • CoffeeScript
  • TypeScript
  • Elm
  • Clojure

JS社区吸收其他 语言社区的精华

Python

Generators

CoffeeScript

Arrow functions Destructuring

Clojure

Immutable.js

Elm

Redux

Rx

JS社区对其他 语言平台的影响

Node.js

Swoole

Async

Promise

Async/Await

生态

JavaScript have:

The most ubiquitous platform:, Browser

The most active platform:, Node.js

The largest companies:, Google, Microsoft Apple, Facebook

The largest developers Community

ECMAScript

标准演进
  • ES3: 1999年12月

  • ES4: 废弃

  • ES5: 2009年12月

  • ES2015 (ES6) 去年6月

  • ES2016 (ES7) 今年6月

  • ES2017 (ES8) 明年6月

ES6 主要特性总结

  • module

  • class

  • const/let

  • arrow function

  • Symbol, well-known symbols

  • iterator, generator, for-of

  • Promise

  • destructuring, default value

  • spread, rest param

  • template string

  • Set/Map/WeakSet/WeakMap

  • Proxy

  • 内建对象的扩展

  • ……

浏览器支持情况 ES2015

ES2016+ 有些什么新特性?

TC39 Finished Proposals TC39 Stage 3 Proposals

浏览器支持情况 ES2016+

  • async/await
  • async generators, for await of
  • import()
  • SIMD
  • SharedArrayBuffer, Atomics

SIMD 单指令多数据流, 举个🌰

Babel 跟进

The Next Big Thing?

  • module
  • decorator
  • private

WebAssembly

“Everything that can be written in JavaScript will eventually be written in JavaScript”. — Atwood’s law

“Everything that not written in JavaScript will eventually be run in JS/WASM Engine”. — Hax’s law prediction

勿谓言之不预也

后端

Node.js

Node 4.2.0 Argon LTS (2015年10月)

Node 5.0 npm 3 (2015年10月)

Node 6.0 (2016年4月)

Node 6.9.0 Boron LTS (2016年10月)

Node 7.0 (2016年10月)

稳定

The Next Big Thing?

ES6 module

promise化

  • Stream
  • URL
  • WebWorker

Ecosystem Automation

前端框架

React

同构

redux

mobx

The Next Big Thing?

fiber

Ng

TypeScript

Rx

Vue

2016年最闪亮的那颗星

The Next Big Thing?

Cycle.js

移动端

Cordova

NativeScript

Weex

PWA

微信小程序

桌面端

Electron (atom-shell)

IDE

Atom

2015年6月 在发了211个0.x版本之后 发布了1.0

Nuclide

  • 2015年6月对外发布
  • 2016年1月开始以单一包发布

VSCode

  • 2015年4月发布Preview
  • 2015年11月以MIT协议在GitHub上开源
  • 2016年4月发布1.0

IoT

mqtt.js

NodeBots

Netbeast

Ruff.io

ruff code

ruff board

其他领域

游戏

数据可视化

VR/AR

WebVR WebRTC Three.js

总结一下就是

全面开花

潜力巨大

谈点问题

leftpad johnhax.net/2016/all-about-left-pad

2016怎么写JS

JS fatigue

The State of JS

DEMO

QA

JS @ 2017

[johnhax.net/2016/stuq](http://johnhax.net/2016/stuq/)

github: @hax

zhihu: 贺师俊
weibo: @johnhax