Wednesday, September 28, 2011

The New Framework Discussion (Part One)

mikeal posted "A new direction for web applications" And I left the following comment.

I agree about MVC is not the right fit. For me it breaks down even for Rails with JavaScript on the client. Model is database term that does not fit async data. RESTful is certainly part of the mix as are other HTTP inputs and IP streams. These don't fit the model analogy either. 
The "new" framework is probably much more of a mosaic than a flow (or flowchart). Not certain how well the neighbors (parts of the mosaic) know each other. Probably some zoning laws, but everyone is able to do their own thing (except after midnight) so long as certain ordinances are not broken. 
My other thought is that these new apps are much like a room full of people. Conversations between a few people are great. Lectures work. But getting a room to act together requires something like Roberts Rules of Order. 
Writing internet code is certainly has a long way to go.

I wanted to expand on that post and comment about the New Framework. I think there are several influences shaping its development.

  1. Async. The first big push was Ajax. The latest is node.js. Data no longer has a flow or a sequence, it is more quantum. REST is the structure for async.
  2. Speed. Look at the popularity of Steve Souders and Nicholas Zakas talks and books on speed. I hope the new framework fits the techniques they and others are discussing. For example, fewer requests doesn't always play well with frameworks that generate lots of directories and files.
  3. Events. Even a small app has a population of events. The new framework must provide a logical structure to these events.
  4. CSS, HTML and JS. Most of us work with all three. For example, what use to be in JS is now often in HTML5. The new framework will have to consider all three.
  5. History. Presenters are going back and looking at the development of other technologies and looking for good patterns. Douglas Crockford was looking at the transition from manuscripts to books in his talk at CapitolJS. This search is common for any new technology. Marshall McLuhan showed that a new technology retrieves an older technology. It will be interesting to see what is retrieved by the new framework.
  6. Testing. Of course.
You can probably argue that there are other forces at work here. For example, I could argue pro and cons of templating. 

I'm sure someone is working on the new framework right now, it is "just now well distributed" yet.

1 comment:

mikeal said...

I want to make one quick comment on speed.

I love Nicholas and Steve and their work has been very informative but js vm performance has outpaced a lot of what they've said in the past about javascript performance.

Their most relevant work to read today is related to DOM performance, which is still a huge problem and has barely changed since they began writing about it.

Here's the thing though. IO performance optimizations have an order of magnitude difference compared to DOM performance optimizations.

Alex Russell has been doing a talk on WebKit internals that addresses this in relation to the browser and what IO operations essentially block rendering.

Optimizing IO performance characteristics in these new platforms, including node.js, isn't well documented or understood by most developers. node.js has attracted a lot of people from strong networking backgrounds that already have a deep understanding of this problem but it hasn't really been documented or even really blogged about.