Caleb, > On 24. 3. 2024, at 16:57, Caleb Brandt <calebbrand...@gmail.com> wrote: >> I know you made Groovy, but if you're anything like me, you love Java.
just for one, although I haven't co-operated on the Groovy creation (am just a very satisfied user), I hate Java very bitterly. The language design is simply terrible, all the worse since the people who made that abomination, i.e., Sun, knew Objective C well (they used to cooperate with NeXT on OpenStep) and thus knew how to do an object-oriented language right. Instead they botched it terribly. No real polymorphism. Very limited encapsulation. Type-system which effectively prevents (or at the very least makes highly complicated and expensive) all the best and most important object-oriented patterns like e.g., proxying and message forwarding. Classes are not objects and their „methods“ do not support inheritance properly. It is quite normal to access instance variables directly, instead of consistent usage of accessors. Heaps and heaps of boilerplate. Often, the darned thing limitations just force the IDEs to generate code — compare e.g., WOLips. Could rant on for months like this :( Whilst languages like e.g., Kotlin or Scala fix some of the problems all right, they, alas, do not allow to switch a big project from the Java disaster without re-writing it at once and completely, which is a big show-stopper. The vast advantage of Groovy is that you can take a big project, just rename all *.java to *.groovy, and it will essentially work (well, as someone already wrote, 99 % — my experience is rather 99.99 %, but indeed there are things which need fixing and there are a couple of gotchas, but there's really a very very small number of them). Then you can work on with the project and gradually change the stupid Java patterns to the pretty decent Groovy ones, part by part, method by method and if need be, practically line by line, without losing any functionality during the process. No other language I know of allows anything like this. All the best, OC