Junction is an all JavaScript framework that closely models the Ruby on Rails model-view-controller design pattern and implementation. And with the help of the Helma JavaScript web server, it runs the same code both on the client and on the server. Exactly the same code, in fact.

The framework not only handles the basics of rendering pages (using JavaScript templating), but it also handles data and code synchronization with the server, local client caching using Google Gears, model versioning, and much more. It’s an amazingly complete solution for an entirely new model of web development.

The article walks through the building of a very simple contact management system, and shows that ONLamp doesn’t believe in Long Pages ;)

TrimJunction is the real deal. Air and Siverlight are touted as the way to build the next generation of RIAs. However, with standardization, JavaScript is the programming language of the web.

It’s great to see a standard way of building client side JS functionality emerge. Other libraries provide nice functionality, but they aren’t really a framework. Anyone who programs in rails would notice that advantages of building your JS functionality in Junction immediately.

I talked with Steven Yen about providing Junction support for AIR. The in-memory model, works as-is in AIR today. Steven requested a sync API for the embedded SQLite database to further AIR’s support for Junction. A sync API is on the radar for AIR 1.0.