It's the future
Boopathi Rajaa
@heisenbugger
The story begins,
yo angular
Criteria
What are your expectations?
Complex asset pipelines
Different kinds of files
Not a single executable, Large assemblage of files
Clean up of resources
this.state
Transpile
Bundle
Minify
CSS Preprocessors
CSS Postprocessors / Style transforms
Cache busting - hashes in filenames
Separate dev & prod configs / env / pipeline
Image optimization
Source maps
watch for changes
Increment rebuilds
Development web server
Unit tests
Live reloading & Hot module replacement
Linting
Continuous Integration
Package management to handle dependencies
webpack
grunt
jspm
coffee
yeoman
jenkins
gulp
broccoli
babel
traceur
cssi
browserify
uglifyjs
VirtualCSS
css in js
brunch
postcss
sass
autoprefixer
less
cssnext
express
node-haste
jest
mocha
jshint
requirejs
systemjs
selenium
phantomjs
istanbul
jsdom
chai
eslint
jscs
and lots more,
Sorry if I've not listed your favorite tool
Choice paralysis
What did we choose ?
- webpack
- react
- postcss
- babel
- eslint
- jest
Configuration as a Service
Convention over Configuration
OKAY.
What's the moon shot?
When will this stabilize?
When can I start writing code without any of these tools?
The only time you can say that the Web is “good enough” is when you’re building for yesterday’s Web
Tooling is not the problem of the Web.
Tooling is the future of the Web
Libraries and Frameworks are a different problem altogether
The conundrum: My framework is better than your framework
this.setState( nextState )
React
Webpack
output: {
path: path.join(__dirname, "build"),
filename: "MyDll.[name].js",
library: "[name]_[hash]"
},
plugins: [
new webpack.DllPlugin({
path: path.join(__dirname, "build", "[name]-manifest.json"),
name: "[name]_[hash]"
})
]
new webpack.DllReferencePlugin({
context: path.join(__dirname, "..", "dll"),
manifest: require("../dll/js/alpha-manifest.json")
}),
ES7 / ES2016
Async / Await
Observables
Comprehensions
class properties
function bind
General Theory of Reactivity
Value
Promise
Iterable
Observable
Sync
Async
Single value (1)
Multiple values (*)
var a = 1;
var b = 2;
var p = fibonocciGenerator()
.filter(i => i !== 0)
.map(i => 5/i);
p.forEach( // ...
a = asyncA()
.then(() => ...)
b = asyncB()
.then(() => ...)
var p = fibonocciAsync()
.filter(i => i !== 0)
.map(i => 5/i);
p.forEach( // ...
Macros - sweet js
Sure, we'd want that. And sweet.js can handle a lot (it handled classes, destructuring, and other ES6 features before they were implemented in popular engines). This may take a while. Best way to ensure this outcome: more people learning, using, and helping improve sweet.js.
Is it becoming a spec?
When will macros get into JavaScript?
Will the core get slimmed in favour of macro-definitions?
Always bet on JS
Boopathi Rajaa
@heisenbugger
componentWillUnmount() { doCleanup({ value: 'Thank You', done: true }); }
It's the future - React Conf Flipkart
By Boopathi Rajaa
It's the future - React Conf Flipkart
- 1,757