Categories
JavaScript Web Development Year in Review

JavaScript in 2015: The Maturation Year

Last year's post was titled "JavaScript in 2014: The Year Everything Changed (Again)." This year feels different. Not "everything changed again"—more "things settled into place." ES2015 shipped, React matured, patterns emerged. This was JavaScript growing up.

ES2015: From Experimental to Standard

ES2015 (ES6) finalized in June. But unlike most standards, developers had been using it for months via Babel. The finalization formalized what was already practice.

The shift from "experimental features" to "standard language" matters psychologically. Teams that resisted transpiling because ES6 felt unstable are now adopting it. Babel moved from optional to essential infrastructure.

Categories
CSS JavaScript Web Development

CSS-in-JS: Heresy or the Future?

The React community is experimenting with writing CSS in JavaScript—inline styles defined as objects, styling colocated with components, no separate stylesheets. This violates web development orthodoxy so completely that the reaction ranges from "interesting" to "what heresy is this?"

After building with CSS-in-JS approaches, I think the heresy might be onto something. But the trade-offs are real.

The Traditional Separation

Categories
JavaScript Node.js Open Source

Node.js and io.js: The Reunification

Node.js 4.0 releases this month, and it's not just a version bump—it's the reunification of Node.js and io.js. After a year of fork drama, the community is back together under a foundation governance model. This is as much about politics as technology.

Understanding what happened and why it matters reveals tensions in open source governance.

Why the Fork Happened

Categories
Frameworks JavaScript Web Development

Angular 2: Breaking Everything for the Right Reasons?

Angular 2 has been in development for over a year, and beta just landed. The reaction is mixed: excitement about modern architecture, frustration about breaking compatibility with Angular 1. Google chose to rebuild rather than evolve, and that decision will define Angular's future.

The question is whether the improvements justify abandoning millions of lines of Angular 1 code.

What Angular 2 Changed (Everything)

Categories
JavaScript Language Evolution Web Development

ES2015 Is Here. Now What?

ECMAScript 2015 (ES6) was officially finalized this week. After six years since ES5, JavaScript has classes, modules, arrow functions, promises, and dozens of other features. This should feel momentous, but the reality is most developers have been using these features for months via Babel.

The standard finalizing doesn't change what we write—it changes the legitimacy of writing it.

What Actually Changed

Categories
Architecture JavaScript React

Redux: Flux, But Simpler (Mostly)

Redux launched this month and is spreading quickly through the React community. It's another state management library solving similar problems as Flux, but with a radically simpler approach: three principles, one store, pure functions.

After building with it, I'm convinced Redux's constraints are its strength. But those constraints require discipline most teams don't have.

The Flux Problem

Categories
Build Tools JavaScript Web Development

webpack Won the Bundler Wars (Somehow)

A year ago, browserify was the dominant module bundler and webpack was the confusing alternative. Today, webpack is becoming the default choice. This shift happened quickly and reveals what developers actually value versus what they claim to value.

Why webpack Won (Despite Itself)

Categories
JavaScript Mobile Development React

React Native: JavaScript Everywhere, Literally

Facebook open-sourced React Native this week, and the pitch is bold: write native mobile apps using JavaScript and React. Not hybrid apps like PhoneGap—actual native apps with native performance and native UI components.

This is ambitious. The question is whether JavaScript's "write once, run anywhere" promise finally delivers or disappoints again.

What React Native Actually Is

Categories
JavaScript Node.js Tooling

npm 3: Flatter Dependencies (Finally)

npm 3 is in beta, and the biggest change is how it handles dependencies. Instead of deeply nested trees, npm 3 tries to flatten them. This seemingly small change has significant implications for how we use npm, especially for frontend code.

The Nested Dependency Problem

Categories
JavaScript Tooling Web Development

Babel: The Transpiler War Is Over

The ES6 transpiler landscape has a clear leader: Babel. Renamed from 6to5 just last month, Babel is rapidly becoming the standard way to write modern JavaScript today. After a year of Traceur vs 6to5 debates, the community is consolidating.

Why Babel Won