It's just that Java is very verbose, and actually I found it particularly horrible for data driven applications (by this I mean apps whose behavior is determined by data/config files, not "Big Data" - I have no experience with the latter). For complex data types you always need to create complex class hierarchies. In other languages you could just write<p>webInfo = {url: "bla.bla", title: "bla die blub", links: ["link1", "link2"]}<p>Notice that webInfo contains two different types, Strings and Arrays. In Java arrays or hashes you can not easily mix types - you'll end up just putting objects everywhere, then be forced to litter the code with type casts. Or you create the unwieldly class hierarchy. That is my prediction, anyway - I am too lazy to come up with a good example :-(<p>You can also not simply write something like the hash above. The nearest you can get is if you have created that class hierarchy with suitable constructors, you could instantiate that in one go. At least that is my memory - I have now avoided it for so long that I am not even sure how to instantiate an Array or a Hash with data on the fly anymore.<p>I think instantiating an array with data goes something like<p>links = new String[]{"bla", "blub"}, and there is nothing like that for Hashes - you are stuck with<p>info = new HashMap()<String, Object>;//generics are particularly ugly and annoying<p>info.put("links", new String[]{"bla", "blub"});<p>info.put("title", "some stupid web site");<p>info.put("url", "undisclosed");<p>And so on - a far cry from the example above. (Note the Java syntax is probably wrong, created from memory - but it is something like that).<p>Even if you went through the mind numbing work of creating appropriate classes, you'd be stuck with<p>info = new WebInfo(title, url, new String[]{link1, link2,...});<p>And that is just for two different types, and notice that there is no way to see what the name of the parameters of the WebInfo constructor actually are from that snippet of code.<p>title: someTitle<p>is actually much more readable because you can instantly see that someTitle is supposed to be a title.<p>Also if you want to use NoSQL, I suspect converting java classes to JSON could be a pita, too.