It means that when it comes to writing code to deal with a query language, which involves having an AST and manipulating it every which way, Java gets <i>creamed</i> by many other languages. Both the Lisp series of languages (which Clojure is in) and the ML series of languages have <i>wildly</i> better stories for dealing with AST manipulation, as in, better enough than Java that it&#x27;s worth learning those languages <i>just for that</i>, if that&#x27;s the task you have.<p>Whether or not Java is a &quot;bad&quot; choice is a definition issue, that it is handily beaten by many other languages is pretty concrete.<p>I&#x27;m not saying this as a Clojure partisan, or a Java-hater, or anything like that. I&#x27;m saying it as one who has used enough of the relevant languages to know it&#x27;s not even close.<p>For something more concrete, I&#x27;m more on the ML side, so work through <a href="https:&#x2F;&#x2F;en.wikibooks.org&#x2F;wiki&#x2F;Write_Yourself_a_Scheme_in_48_Hours" rel="nofollow">https:&#x2F;&#x2F;en.wikibooks.org&#x2F;wiki&#x2F;Write_Yourself_a_Scheme_in_48_...</a> and you&#x27;ll see what I mean, even if you just do the first couple of chapters. For all that Haskell may be weird in some ways, consider what it means for a tutorial of a language to be talking about parsing in the <i>second section</i>. You&#x27;d never get that with Java.