BlackBeltFactory made with Vaadin - part 1 - Selection

John Rizzo
On Mar 10, 2010 12:27:00 PM

This post is about, a community for learning Java related technologies.

70,000 members contributed to building 100+ exams and great courses over the years.

Typically developers go there to:

  • Take free exams
  • Take distant courses with a coach
  • Contribute to the courses and exams content
  • Coach other developers

Should we add exams and courses about Vaadin on BlackBeltFactory?
Give your opinion in this Vaadin forum thread.

Since the beginning in 2004, we have followed the technology evolution for building and went through multiple refactorings. For the front-end, we started with Struts v1 and JSPs. In 2006, we moved to Struts v2 (WebWork) with JSPs and have been so pleased with the improvement for the programmer's point of view. We preferred Struts2 over JSF, because all of us felt there was something wrong with JSF.

In 2007, we introduced some JavaScript/Ajax in our application with the help of Mootools to have more user-friendly Web2.0 behavior. But within a year, it was really a pain to maintain because of the extra layer of client-side JavaScript code. I couldn't say that our JavaScript code was badly structured. Maybe we are not smart enough. We just felt spending too much time on technical aspects and too littile on developing our application's features.

In June 2009, we started developing the course marketplace, which was released in March 2010 and called BlackBeltFactory. We wanted to leave the Struts/JSP/JavaScript glue, and also wanted to have more and more Ajax for the user experience. I felt like having the choice between:
  • JSF
  • Flex
  • GWT

We still had bad feelings against JSF. After having coached projects using JSF, I strongly believe there is something fundamentally wrong with it. Replacing our Struts2/JSP/JavaScript situation with a JSF/JSP/JavaScript situation was no improvement, on the contrary.

Flex was tempting. It has existed for years, people like it and the end-user result/experience is great. But ... I still feel that web applications should contain Html (while I may be wrong, just can't control it).


GWT was tempting too. No more JSP. No more HTML for the programmer (or so little). No more JavaScript. But ... still there is a client-side and a server-side from the programmer's perspective (as with Struts/JavaScript). A client-centric application such as Google Docs is a great value. But with a DB centric application as JavaBlackBelt, it's a problem because we need to transfer data prior and after doing anything. The programmer needs to manage the communications between the client and the server explicitly, including JPA entities that would be detached (and even serialized). It looked like the open door to many time-consuming side-effects and technical issues.


Then I discovered Vaadin. Rich end-user experience. No JavaScript, not even a client-side (for the programmer's perspective). No JSP/Html. Based on GWT. The model was soo promising that it was worth a try. I downloaded it and started reading the tutorial.


to be continued.  (edit: part 2 is here)
John Rizzo
BlackBeltFactory co-founder.