: 13/02/2021, the book is no longer freely accessible. The tutorial on Mentawai framework is still available here
Excerpts from the Introduction:
Thank you for taking the time to read this book. We understand that your time is precious and that if you want to take the chance of learning yet another web framework
in Java we better make good use of your time. That's one of the main differences of Mentawai
when compared to other frameworks. Its main and ultimate goal is to save your time. It can only accomplish this goal by being as simple as it can be. If it is something very powerful, but complex, like the C++ language for example it will fail. Whoever has programmed in C++, and it is not a guru, will understand what I am talking about: C++ is tricky to get it right. C++ will get in the way of your projects and you will end up spending most of your time fighting with the language instead of getting the work done. Too much power generates complexity which in turn hurts productivity. When I started the Mentawai Web Project I had a very strong principle in mind: KISS (Keep It Simple, Stupid)
. In my opinion this is the most important principle and design goal of any software project.
But how do you measure simplicity? If you take a C++ guru and ask him if he considers C++ to be simpler than Java he will probably answer yes. He will say that there is nothing more trivial than memory management, pointers, references, structs, templates, etc. Nobody can say that he is lying. C++ is very simple for him
. However in order to be fair when comparing the simplicity of two different languages or frameworks we must take the opinion of someone who has no experience with both languages or frameworks. If we take someone coming from Pascal that has never programmed in C++ and Java before, let him play with both languages for a couple of hours (or days) and after that he comes up with the conclusion that C++ is simpler than Java then I will be forced to think that he is lying or that he does not know anything about programming, abstraction and simplicity.
We also realized early that for Mentawai to acquire high levels of productivity it must be joyful. It must be fun. It must not be boring. And we have a very good example of a big Java failure that probably sent many people to a different career other than programming: Enterprise Java Beans (EJB). EJB (EJB1 and EJB2) was everything but joyful. I am proud of myself for not having to write a single EJB project in my life. Huge XML deployment descriptors, many different classes to do a single thing, many tricks that you must know or nothing will work, crazy integration with non-sense application servers (some costing thousands per CPU) and you have a recipe for a Rube Goldberg Machine
The goal of a Rube Goldberg Machine such as EJB, besides making a programming careers very boring and painful, is to kill the KISS principle. Most Java web frameworks are not as bad as EJB (that would be a very hard goal to accomplish), but we felt that they have abandoned the KISS principle. The rise of the Ruby on Rails framework
(web framework designed with the Ruby language) had signaled to the Java community that something was wrong. Mentawai comes in the way to rescue the KISS principle and the joy of writing web applications in Java before everybody has moved to Ruby.