I'm currently heavily involved in developing a rather huge application for the web. Nowadays, there is a certain illusion that frameworks, be it the Java EE using Spring or Rails and it's friends simplify development and make it actually fun developing for the web.

At least for me, this fun suddenly ends when it comes to controllers and their more-or-less tight integration to according views. The traditional, but still largely used, MVC-pattern worked perfect for monolithic, big pages with each one having a clearly defined function.

Today, the world changed. AJAX is still hot shit, and using it without a) blowing up the lines of code in both the view and the controller requires either writing a lot of unreusable helper-functions or depending on templates ( or partials ), anyhow, prepared lines of view code.

But the core idiom of AJAX, the ability to exchange single parts of a website without touching the rest of it, is and cannot be addressed efficiently using these two methods, at least not with the claim that development is fun. It's not fun ( at least not here.. again ) to include templates over and over and over again. Web development is still, tell me I'm wrong, struggling with the Presentation rather than solving complicated Model-related tasks. And there is either no one concerned or I am way to stupid to get the point.

I'm really looking for a metalanguage describing a web-interface, with all it's bindings to data, to related controllers and a framework being able to process such a thing ( including caching and so on ), making it straightforward to develop an ajax-based interface, tailored to one's needs.

For those of you pointing at one of the many JavaScript Frameworks, like GWT, enabling such a functionality: It's not what I mean. It's a more general, server-side processed approach, enabling slim clients and fast page processing.

Edit: I know, editing posts is not best practice, but this small additions isn't wort another post. So I was really thinking a lot about what I wrote here, and I'm quite confident that the main point is indeed the fact the code that logically belongs to the viewer ( something that loads a list for an autocompleter ) is still around in the controller which creates a scenario we usually try to avoid using MVC.. view code in the controller. And updating the view once again requires updating the controller code, most likely at least. What is the other option? To let that simple code be created by a helper at the time it's needed. Same for Content-type switching orgies to format the output properly. I'm on it, to make coding a little more fun.

And if I've been missing some hot new thing ( I've been playing with CouchDB, jiha ), please let me know.