7 ms·
Yup. Gradle is by far the worst-designed technology I've encountered in ~30 years of programming. Using it not only made me not want to use Gradle, it made me n
by mrec 6y ago
Yup. Gradle is by far the worst-designed technology I've encountered in ~30 years of programming. Using it not only made me not want to use Gradle, it made me not want to use Java.
- TheRealSteel 6y agoI don't understand why Gradle breaks every second time I build my project, and I have to run Clean Project. If Clean Project is required to build the project, why isn't that part of the build process?
- rwoerz 6y agoSame for Maven. Common reason: the mere presence of a "leftover after refactoring" file beneath target/ breaks the build because it is still included in the classpath.
- eitland 6y agoFWIW: I've used Maven for years and I don't have these problems. When I am tasked with fixong other peoples config I usually move things to the correct location, delete the corresponding configuration qnd then everything works (better).
- allenbrunson 6y agohard agree. i took up flutter a couple of years ago, which means i am now saddled with (ugh) gradle for android builds. i am used to being able to intuit the underlying architecture of various tech things and fix them, which is utterly impossible as far as gradle goes. not only are the error messages unhelpful, they are usually confidently incorrect. they tell you the problem is likely thing X, which in fact has nothing to do with the problem. (to be fair, this seems to be coming from whatever stuff google has added to the android build process, rather than gradle itself.) these days, once gradle starts spitting errors, i know better than to read them. instead, i have to start thinking about when the build last worked, and what might have changed. if that path proves not to bear fruit, then it is time to trash that project completely and recreate it from scratch, which experience has taught me will take a lot less time than trying to “fix” the gradle build errors.
- atc 6y agoI second this. Java's paid the bills for most of my career (17 years) and it is second only to NPM and its ecosystem in my book. Compared to Cargo (Rust) and Cabal or Stack in Haskell, it's constantly painful to use.
- eplanit 6y agoExactly. And now, android development is by design impossible without it. So stupid.
- usrusr 6y ago> Gradle is by far the worst-designed technology I've encountered in ~30 years of programming. I nominate Groovy. Many of gradle's failures are just idiomatic groovy. The entire mindset of "friendly simplifications" that work 80% of the time, and if they give pretend that you don't notice, look, there's pretty code over there! Even kotlin suffers from some of that (you can override a val x:Int with a val x:Int get() unless it's tied down otherwise, talk about principle of maximum surprise) but the genes from the other parent avoid the worst.
- rcoveson 6y agoCan anybody explain to me why it ever seemed like a good idea to make both: (1) Semicolons at the ends of lines and (2) Function-call parentheses, not required, and not illegal, but optional? It strikes me as an abdication of the responsibility of a designer, like making both String::substring and String::substr available as aliases one to the other. Who cares? Choose one and stick with it! Otherwise it becomes a race between linter-writers and community programmers to see if the entire ecosystem will become polluted with an ugly mix of both styles. A race which the linter-writers always lose.
- zmmmmm 6y agoGroovy was created during the time when Ruby was taking off and was dramatically improving productivity of creating basic CRUD type web sites. So Ruby had a beautiful simple syntax, and I think Groovy was an experiment to see how close you could get to that while maintaining compatibility with Java syntax. It's actually a remarkable success as far as it goes - most Java code can be copy and pasted in and is valid Groovy. But of course it only works because it optionally accepts parentheses, explicit vs implicit arguments etc. It does lead though to one of the biggest lies which is "if you know Java then you already know Groovy!" - that's just a mean trick to play on people.
- oblio 6y agoAnd to make things more interesting at some point the nearly-frozen-in-time Java started evolving again so Groovy is stuck in some sort of parallel universe because Ruby failed to get mass traction and most people are not familiar with it while Java 8+ has its own concepts that don't translate as neatly as Java 6-7 concepts translated to Groovy at the time.
- kohlerm 6y agoCome on. Gradle might have many features you might not need, but IMHO the one popular alternative maven is one of the worst designed build tools. Dependency resolution is a joke just taking the shortest path in the tree in case of conflicts. No good support for incremental compiles etc
- pjmlp 6y agoThanks Android, the only reason to ever touch Gradle.
- p2detar 6y agoSorry that you feel this way, but this is simply not true. If it were the case, why would all these companies [0] waste their time with Gradle? Bad technologies tend do die out. Not the case here. 0 - https://gradle.com/customers https://gradle.com/customers (Edit: Heh, TIL rage downvotes are a thing in HN as well.)
- blandflakes 6y agoIt isn't really the case that poorly designed technologies die out, necessarily. They just need to have one killer advantage. Javascript, as the only option, PHP prior to getting its act together won with its extremely low barrier to entry both in terms of learning the language and getting it running somewhere. So gradle having users doesn't convey to me that it's necessarily well-designed. I think it's "killer advantage" was that it's not xml.
- p2detar 6y agoJs and PHP: fine, but it’s not quite clear from your post what that killer advantage of Gradle is. Having users? Hmm.
- 60secs 6y agoScala / SBT is so much worse