Web Development Resources

The Abundance Problem

This list of links started out as a loosely categorized bookmark collection not originally for public consumption. It was drawn from a sense-making exercise lasting several months, during which time I tried to make some sense of the current state of HTML5 application development. The role of this taxonomy is not to act as a tutorial but rather as a structured list of resources.

We can start with the approaches found in Backbone, Meteor, Ember, Knockout, Dojo, YUI, CanJS, Mithril, Ractive, etc., and each one seems like a perfectly viable way to begin work. But then the web giants weigh in with their own alternative future(s). Facebook has given us React, Twitter has taken FlightJS, and Google has offered us more than just these two: AngularJS and Polymer.

This bewildering and sometimes paralysing abundance of choice is perhaps best appreciated in the number of ways we can build a simple Todo List. And all this choice has come before the upcoming tsunami of changes that will inevitably propagate around the world when new features coming in JavaScript ES6 and ES7 are finally universally available in all browsers.

So unfortunately the state of web development, while very promising in the near future (see JavaScript in 2015), is currently so fragmented and choppy that it’s sometimes described with words like “hopeless” and “unsustainable” (see The State of JS in 2015).

I believe we are at a crossroads in web application development. This chaotic discipline (contradiction deliberate) could continue to churn for some time, but it could also just as easily coalesce into a new vision of how to build the web. I sure hope it does.

Caveat

My research began from the perspective of client side web applications (single-page apps), particularly those that support custom visualizations. A cursory examination of the list below will reveal that there are quite a number of missing libraries, frameworks, and techniques that any reasonably seasoned developer might have expected me to include. If you need a broad overview of all the options then TodoMVC is probably where you should start. This list has a particular trajectory by comparison. I was following something of a depth-first search into the joys of immediate-mode web applications.

Over the course of the next few weeks I will be writing about the conceptual starting point of this search, the major themes explored, and some potential insights that might make my future development work a little easier.

Academic Research

These links come from the academic community, and offer a hint regarding new possibilities.

Background Discussions on Architecture

These links talk about web architecture, with a particular focus on virtual DOM and immediate mode.

Videos on JavaScript and React

Functional Reactive Programming (FRP)

Another useful architectural abstraction that I believe fits very well with an immediate mode approach to web design is FRP. Here are a few documents, libraries, and examples in this space.

ReactJS Resources

Flux Architecture

Helpful Resources

A Few Notable Frameworks

These libraries and frameworks either support a larger framework like React or represent a foundation of their own that I believe has important future implications. Immutable data structures, in particular, promise to change the way we think about interaction history.

Resources for using upcoming features of JavaScript

These resources relate to features coming soon to all browsers, but not yet guaranteed to be available.

Making use of new JavaScript means compiling to old JavaScript. Here’s one way to do that.

Beyond this point the links are simply grouped without much comment. They do have value in the larger scope of web development in general, but they address such a variety of issues that they can no longer be considered central to the larger point of this blog. We may end up drawing from these links in future posts, and the list itself may grow and change.

Server-Side Events

Storage

Visualization

Graphic Design

Flexbox Layout

Page layout is about to change again. This is the new standard.

Animation Notes

A few places to get data

RESTful APIs (for consumption)

Data Sources and Libraries

Semantic Web

Potentially Useful Libraries

Books

Miscellaneous