The Web Framework Evaluation - Summary
In this article series, we are going to explore web frameworks. This article is taken from my eBook 'The Web Framework Evaluation'.You can get the eBook at http://www.laliluna.de/shop.
Difference between the free article and the eBook in PDF format.
- eBook is printable
- eBook includes the upcoming detailed framework evaluations about 1-2 months earlier
- eBook includes a number of performance and load tests showing rendering performance and memory consumption under load.
Summary
What is the best technology for me?
After all this testing and playing around, I decided to use the following technologies for my job. I am going to focus on two approaches because the characteristics of web application differ a lot and a single approach would not fulfill all needs. There are use cases where MultiP is just the better solution whereas other use cases are better addressed with a SingleP application.
For a MultiP application I prefer a dynamic language. Tapestry, Stripes and Struts are all beautiful frameworks probably more advanced then some of the light frameworks in the Ruby world but the speed I perceived in development using Ruby is the convincing argument for me.
I have not decided finally which Ruby based framework I am going to use. Currently I am using Ramaze but I am going to test Merb and Camping in the next time. Have a look in the appendix for a reference. To add interactive behavior, I am using the Javascript library JQuery and JQuery UI. There are a lot of beautiful solutions available. You will find a list in the appendix. There seem to be two major player which is Prototype with Scriptaculos extension and JQuery. I chose JQuery as I like the approach to select elements of a web page and apply behavior tho this selection. You can use Xpath expressions to select elements which is quite flexible. The consequence is of course that I am using to some extend Javascript. But if the main intention is to write interactive web application then you can't stay away from Javascript without limiting your flexibility. Ajax supporting tag libraries will only help you with standard use cases.
It is important that I use Ruby only as web technology. The web application always integrates with a business layer and a persistence layer. I clearly prefer to write this in Java because of the mature solutions available in our Java world.
For SingleP application I clearly stay away from operating system or vendor dependent solutions. A bad decision could costs years of experience and my impression is that with JavaFX we are at the beginning of a new approach to create SingleP application. The Java world is by far more open to extension then any of the other technologies. With the stable release of JavaFX the people can start to put their own imagination to extend JavaFX with libraries, components and whatever else.
My focus is currently on MultiP application but my preference of SingleP approach is to write either a Java Swing application using a dynamic language, for example JRuby with the Monkeybar framework or alternatively use JavaFX and wrap Swing components into the application.
What is the best technology for you?
I don't know. Find it out yourself.
Web framework tests
I published the first detailed test on a web framework. It covers the Stripes framework and explains the architecture, important feature and the performance. Most features are demonstrated in a sample project. If you have access to the PDF, you will find a detailed performance test as well. The performance test covers rendering performance of templates, validation performance of input forms and a scalability test showing how a framework behaves with an increasing number of users.
The next tests will cover Ramaze (JRuby based), JavaServer Faces 2, Merb (JRuby based). Both Ramaze and Merb will illustrate how the combination of Java backend and Ruby web framework do perform inside of a Java application server.
On my watch list is as well Struts 2, MyFaces, Wicket, Grails. In addition, I am thinking about an approach to compare single page technologies like GWT, JavaFX and Java Swing.
Stay tuned!
Best Regards / Viele Gr��e
Sebastian Hennebrueder