What does RSF offer that other frameworks don't? Today there are more open source Java web programming frameworks in the world than practically anything else. Having made a quite thorough study of the market, and occasionally suffered for our study the hard way, we are prepared to say there are a number of areas in which they all fall short.

   The core RSF values:

!!Primacy of markup 
The first value point of RSF is the prime role of markup and design. Many frameworks are increasingly offering more or less pure HTML templating, recognising that the role of the designer in constructing a UI is the most crucial one - and that it should be one that is unconstrained by technical barriers. However none succeeds in creating a templating layer that is as free of interference as RSF's [IKAT] - in the RSF templating language, everything is reskinnable right down the last tag. Even in quite modern frameworks, once one reaches a region which is designated as a "component", control over the markup ceases and one is once more back in the grotesque world of mixed markup and code. In RSF, even the components are written in the same pure HTML style, and many cases which require "components" in other frameworks can be dealt with by simply using the renderer. Further than this, RSF is unique in promoting not only previewability of appearance, but previewability of behaviour. Not only are RSF applications "click-throughable" page by page to show an overall application design, RSF components can be demonstrated more or less "live" from the filesystem, so that markup and Javascript experts can work in their area of expertise more or less free of interference from coders. RSF is ready for a more modern, specialised market where one worker no longer is expected to be a "Jack-of-all-trades" and work on all aspects of an application at once. Particular innovation is at work today in the world of client-side frameworks such as [Dojo|http://dojotoolkit.org/], [jQuery|http://jquery.com/], [YUI|http://developer.yahoo.com/yui/] and the [prototype.js|http://developer.yahoo.com/yui/] family, and RSF is uniquely positioned to benefit from all this innovation by being the most client-agnostic and markup-friendly framework we can build.


!!Universal portability
The second value point of RSF lies behind the scenes. RSF allows applications to be designed with an unprecedented portability and flexibility of deployment. Since the entire framework architecture, as well as the target application architecture, is designed using the modern IoC structures we have now seen established, most notably, by the [Spring|http://www.springframework.org] framework, what were previously completely "baked-in" architectural choices can now be adjusted very late, just with light changes of packaging and configuration. RSF takes Spring's IoC a little further with a very high-performance request-scope implementation, [RSAC], which is the key both to portability to different deployment environments such as Servlets, Portlets, Sakai tools and others, as well as an agnostic approach to fat vs. thin clients now being explored through RSF's [UniversalViewBus] architecture. Frameworks are in fact far ''more'' in need of the benefits of an IoC-driven architecture than applications, and RSF is one of the first top-down IoC frameworks, with the entire structure wide open for configuration and extension. 

!!Natural web idiom
Returning to the user-facing side, RSF provides a better user experience through a thoroughgoing respect for long-established web idioms. Many frameworks are not even able to deliver adequate Web 1.0 interfaces, with lack of support for web fundamentals such as HTTP GET forms, bookmarkable URLs, functioning back buttons with a clean browser history, and browser forking. All of this support comes with no special design effort in RSF - bookmarkable URLs are not a "design option", they are baked into the application structure and are in fact quite an effort to defeat! Likewise keeping a clean browser history free of annoying popup warnings is "not an option" - it is just the way things work. RSF emphasises a "zero server state" approach where very many more situations can be handled idiomatically without resort to session-based solutions - RSF's [OTP] mapping idiom helps considerably in casting an application structure as a stateless space of web services, ready for operation from the widest variety of clients.

RSF returns application design to being fun again, free from the traditional heavy "stodge" of J2EE concrete classes, framework interfaces and restrictions. In many ways RSF is the least "Java-like" of the Java frameworks, and is attracting programmers from the more dynamic markets such as PHP and Python, whilst maintaining the impeccable "Enterprise" credentials that Java programmers expect from the likes of the Spring framework.

RSF is fun to work with, and finally returns the web to the way it was meant to be - come and join in!