First impression is important, because it sets many of our expectations. When looking for a certain framework or technology to use, reference customers or case studies are highly appreciated because they build already some trust into the technology. Following the decisions of big companies might be questionable, but of course be a much safer alternative than being the first to use a technology or framework. But not only case studies, but also community pages (more than just a dead forum or wiki) with feeds, buzz and blog, or screen casts, should be state of the art nowadays, showing active development of and support for the framework. Of course the presentation of your framework should be pleasant to view and be a prime example of how to use it, especially for a web framework.
But how do big Java Web Frameworks handle this first impression?
- Tapestry, is a very nice framework having handy generators, with its site having no marketing section, the maximum you can get is a downloadable badge, which you can put on your site to claim being tapestry powered. The documentation pages look static and the wiki a bit chaotic, but reveals after some searching a page that lists references. At least the site is clean and doesn’t look outdated.
- Struts, in Version 2, the successor of perhaps the most often used Java Web framework. Aged and sometimes outdated information – Not at all an appealing site. Unless you know what you are searching for you cannot find anything and the wiki suffers from duplication (perhaps due to the merge of WebWork and Struts2) and outdated pages.
- Java Server Faces, represented by the biggest “Community Player”: MyFaces, also has poor marketing. MyFaces recently revamped their website, but still no facts and figures about customers, and no demo. Quite a lot Technology information, but no page aiming at convincing the user that MyFaces is the right choice.
- Spring MVC or Web Flow doesn’t have a marketing oriented site as well. Excellent Documentation and Forums help Developers, but might not convince decision makers.
- Wicket, being the Java Web Framework outlaw, seems to be positioned more to the marketing side. Blogs, Aggregated feeds, live demos and a Buzz page paint a vivid picture about the state of the framework.
Now have a look at the outlaws: the scripters and dynamic web languages. Lets pick one each:
- The PHP “symfony framework” talks about its success: large installations at dailymotion, Yahoo! Answers, Bookmarks and Delicious. Blog, Forum, Wiki (which however could deserve a cleanup), Screencasts, plenty of user contributed Documentation and team written documentation are available. Of course the site itself is made with symfony. The recently launched standalone components have an even more appealing website.
- Ruby on Rails has even an application gallery, where it showcases big sites like twitter, basecamp or the yellow pages. High quality screen casts User contributes How-tos and Blog keep the Community connected, informed and involved. “Get Excited” is the title of the first and most prominent section on their page – hard time resisting to click it.
- Django, the python based web framework, has a complete site dedicated to list applications powered by django, even though it doesn’t list “big ones”, a blog and a large community wiki with clear rules for ticket creation. Although the layout is not optimal and the site is heavy on text, you can find what you are looking for quite easily.
So with the exception of Wicket, I must conclude that Java Web frameworks neglect the PR side of the project. I am not sure if that is really the case but from my observations it is like that.
Some ideas why this is the case:
- Java is placed in business sector, no interest in mass market web.
- Java is developed by eggheads, great examples and docs, but no marketing affinity.
- Java doesn’t scale the way the mass market web scales. Is a shared nothing architecture better for that than a clustered architecture?
- There are too much big players in Java. In other languages the big players are easier to identify.
- Java developers like to produce quality code instead of writing case studies
- Java frameworks websites either use java.net, apache.org or maven-site style which is structured, but not appealing at all.
As a fan of many Java libs and frameworks this makes me a bit sad. What I would like to ask for:
- Do good and talk about it. No need to exagerate, but show what you can.
- Your framework is good. Use it to power your site. It takes time but is the best showcase for you.
- Use state of the art tools like a blog and wiki (yes web 2.0 should finally arrive)
- Be transparent – Use a bugtracker which is fast and easy to use, goodbye bugzilla.
- Make a simple design. There are even free ones on the net. Keep in mind that you are presenting yourself.