There are two completely different concepts called "Web 2.0":
the second of them dictates the technologies that you should use (at least some JS and machine-readable content in (some) answers). Of course, there is nothing against using Java (or CGI, Perl, whatever) on the server.
the first has nothing to do with technology, and everything related to the service itself that you provide. again, you can use whatever you want.
why are these two mixed in the same term? and what's more: why are dynamic languages supposed to be “more appropriate” for this? I would suggest that this is just a temporary coincidence, all three things (user-generated content, AJAX, serious dynamic languages) immediately came close to the spotlight, and most proponents of each concept use the other two.
in short, it is best to avoid undefined market terms such as "web 2.0" and use the correct descriptions. at least during work. when selling VC and PHB, use any and all keywords that are coming!
Javier
source share