IMHO there is no good reason to render dynamic web pages server side.
Server side HTML rendering prevents easy scaling, simple architecture, barrier free content and device independence.
Everything gets so easy, when you throw all legacy truth away and rethink the web. Please read my ten reasons to rethink the web.
PoNG is my prototype of this idea.
No joke: For dynamic rendered browser app, you only need static files server-side -- so no Tomcat, Sharepoint, Liferay, PHP, JEE ... is required.
Have a look at the demos.
Wouldn't it be fine to say: "I need these content, that data tables, blog, these forms on my web page without any HTML coding."
For all standard tasks, the browser should be able to render an appropriate web page, described with a few information only. Also the data and content can be given to the browser in a structured and raw, but non HTML format. Data can be any product catalog, any blog messages, any database result.
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML.
HTML can do a lot of good things and it will still be the best way to explain the browser how to do the rendering details. But is there a reason that humans write HTML? There are so many standard tasks on the web, which are always the same. I looked through a bunch of web sites and found always the same elements. Only the layout and graphical design looks different -- and of course the content.
An other good thing is, that you only have to provide the "raw information" and all the rendering is transfered to the frontend. In the past, there was a huge gap of computing power of servers and clients. The gap has been closed and there is no reason to have all the workload in the backends. We have no good reason to render all dynamic web pages in the backend.
Rendering HTML in the backend is also a bad idea, since the client types of are so different and you have to do all the client specific decisions on the wrong point.
PoNG is "Portal NG" (next generation):
- It is a prototype or study, how it may work!!
- Easy set up: Complete separation of layout, information, style
- Modular: see PoNG Modules
- Flexible backends: Static HTML, PHP, Java Web Container, JEE, ...
Things that are implemented already:
- Basic rendering of the layout
- Plug-in programming model for modules using hooks
- Some very useful ready to use modules
- Modal dialogs
- Security model: Authentication
- Personal customizing
- Zoom views to full width
- Tomcat Backend
- PHP Backend
- Dynamic Administration
How does PoNG works
- The browser loads a standard index file (do not edit this file)
- The index file pushes the browser to request the layout resource for the layout information and renders the response
- The layout in the browser will contain different additional information resources, which are loaded and processed to a web page