Web UI Compilers – JSF, GWT, Microsoft AJAX
Why don't you use JSF, Microsoft AJAX, Spring, GWT… I get these questions constantly. I'm sure most UI developers do also. They are correct, I don't use these UI generators / compilers. So then we come to the question of why? To discuss why we have to look at the history of interface development for the web.
The first solution was to extend HTML to allow for the embedding of applets in the code. This was a great solution. Most developers realized that HTML would never be good at logic, and Perl wasn't quite there yet. The problems with this approach should have been clear early on. Java ran slow on the hardware of the day. That was the first problem. The second problem was that most users were on 36 Kbps or 56 Kbps modems, so the multi-megabyte applets took 20 minutes to download. This was unacceptable, but it was the only solution at the moment. For programmers it was a pretty good situation, they could write server-side code and then in the same language, write the client side code.
The main issue with applets was that they were often designed by the coders, so it isn't necessary to say that they looked awful. At the same time if they did have designers work on the applets they incorporated many images that slowed the downloads.
It was time for the revenge of the designers. Macromedia came out with Flash, and developers had mod_perl, the beginning of the code forking took place. It was easy for designers to work with the art friendly Flash, and its vector processing VM was light enough for the processors of the day to handle. The back end programmers would develop in the language of their choice, usually Java, and then the web designers would work in Flash. This approach took the web by storm.