Boopathi Rajaa
@heisenbugger
yo angular
What are your expectations?
Different kinds of files
Not a single executable, Large assemblage of files
Clean up of resources
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
Sorry if I've not listed your favorite tool
Configuration as a Service
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
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( // ...
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?
Boopathi Rajaa
@heisenbugger
componentWillUnmount() { doCleanup({ value: 'Thank You', done: true }); }