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