As a relative newcomer to Gradle (about a month and a half), I rather vehemently disagree with this. Admittedly my use-case is a bit different than most, I suppose. I am working on a replacement for a system that used nmake and an ancient proprietary version control system to build thousands of small projects (some java-based and some not) that were deployed in RPMs. RPMs are not a “native” container type in the Java based ecosystem.
My initial effort was attempted using Maven which I knew and had a love-hate relationship with. Although the Maven RPM plugin support is somewhat ahead of what the Gradle RPM plugin offers, I found it almost impossible to use the Maven plugin. At every corner, another obstacle was found, and another hacky workaround demanded by Maven’s heavy convention demands, requiring dozens of new lines of xml. When I showed what I had wrought, of which I was initially proud, to my teammates, I became embarrassed. Clearly, my work could not be possibly extended to thousands of small projects in any acceptable timeframe.
Once I made the choice to switch to Gradle, everything got better. My build scripts for individual gradle projects are maybe two orders of magnitude smaller than those for Maven. (True, I wrote plugins for Gradle which accounts for part of the script reduction, but plugin creation would have been much more difficult in Maven). Yes, I had (and still have) my groovy learning curve, and yes, I even agree with you that sometimes having one way to express something rather than five is a better way to go, but I’m getting used to it. Yes I hate that there are similar looking constructs that behave differently, and I’ve even complained about that here, but eventually, you get there. Things that had me scratching my head for hours if not days are now solved in minutes.
I have learned to live with the limited Eclipse support as well (improvements will be appreciated), but I long ago learned to live without Eclipse debugging and stepping though code in general, even when I am writing java, and I rarely use it. That is probably the main cause of our disagreement.
It was very easy to express my typical use cases in gradle plugins, and if I need to write more plugins, these will be easy as well. I just created a new plugin this morning in about fifteen minutes. When I demoed this system to my teammates they were extremely impressed and my embarrassment is gone.