Live data from Hacker News

Why Everyone Eventually Hates or Leaves Maven

nealford.com

1–10 of 168 posts

Re: Why Everyone Eventually Hates or Leaves Maven

#2
Oh wow. I just raged at my manager for exactly this type of problem.

I'm not sure if it's due to someone's lack of technical ability, or if they get distracted by other externalities, but we always tend towards something that seems really simple at first but instead incurs a lot of technical and process debt later on.

Brilliant read.

Re: Why Everyone Eventually Hates or Leaves Maven

#3
I don't hate Maven, and I haven't left it yet.

But he is absolutely correct about the key observation: a basic tool with "plugins" is simply NOT the way to create a build tool. A built tool should allow (when needed) the full flexibility of a Turing complete programming language. Because eventually your project is probably going to need it.

Re: Why Everyone Eventually Hates or Leaves Maven

#4
It's a trade-off, right? As most things in software are.

Recently, I inherited a project that had 10,000s of lines of ant scripts. Resource constrained, I didn't have anyone to maintain that build process. So, I took a few hours and converted those projects to several hundred lines of maven 'scripts'. Now, it works way better than the previous system, because now I can have a person focused on coding features, rather than maintaining process.

Maven was what I knew at the time; and, it fit well enough. Maybe Grails is the right answer, though. Or, something else.

Anyway, ultimately, it comes down to what trade-offs we make and what things we prioritize with our limited knowledge that we have available. And, that is the art of software development.

Re: Why Everyone Eventually Hates or Leaves Maven

#5
post #3

I don't hate Maven, and I haven't left it yet. But he is absolutely correct about the key observation: a basic tool with "plugins" is simply NOT the way to create a build tool. A built tool should allow (when needed) the full flexibility of a Turing complete programming language. Because eventually your project is probably going to need it.

You should take a look at http://www.gradle.org/ if you haven't already. I worked on an ant project and decided we needed to convert to a better build system. I started down the path of Maven, but Gradle changed my mind because of the conciseness.

It uses the groovy language so hopefully it doesn't fall into the same trap as described in the post.

Re: Why Everyone Eventually Hates or Leaves Maven

#7
This is very eloquent distillation of the thought process underlying the evolution of my toolset over the last 5 years.

After having jumped into Rails and shifting from BBEdit to TextMate as my primary editor overnight back in 2005, when TextMate started withering on the vine I became disillusioned that I had put so much effort into pursuing such a short-lived tool.

Reflecting on my history with a UNIX shell going back to the late 80s, I realized that things I had learned 10, 20 years ago from the UNIX world were still relevant today. I committed myself to getting serious about vim because I want to optimize for A) learning many programming languages and B) not using verbose Java-like languages that require IDEs for the all the boilerplate and rote refactoring.

While this kind of toolset will never provide quite the bang for the buck of a contextual IDE in a specific language, it's a phenomenal hedge against all the career risks I face in terms of Ruby becoming irrelevant, the web becoming irrelevant, Apple nerfing OS X, or any other probable sea change. No matter what happens I feel like vim + bash will bring me an immediate level of productivity in any new task I face, even if I start flattening out before I reach the Eclipse or Visual Studio level of wizardry, I don't expect any one thing to last long enough in this industry for such optimizations to pay off.

Re: Why Everyone Eventually Hates or Leaves Maven

#8
I'll take rigid maven any day. Much preferable to some cobbled together build system that is undocumented and hard to reliably reproduce.

I'm curious what people are doing with Maven that they manage to get into such a fight with it? Although to be fair, due to issues in its dependency resolution mechanics, it can pull in incorrectly versioned artifacts without ever telling you anything.

Re: Why Everyone Eventually Hates or Leaves Maven

#9
Spot on post.

Last year replaced a maven shitfest with an old fashioned Makefile which calls javac and manual dependencies. The whole port process took about 2 hours.

Integration and test run time has gone from 7 minutes (to drag all the maven plugins and dependencies down) to just over two minutes.

This saves us a fortune on build agent capacity as well (we use TeamCity).

Re: Why Everyone Eventually Hates or Leaves Maven

#10

I'll take rigid maven any day. Much preferable to some cobbled together build system that is undocumented and hard to reliably reproduce. I'm curious what people are doing with Maven that they manage to get into such a fight with it? Although to be fair, due to issues in its dependency resolution mechanics, it can pull in incorrectly versioned artifacts without ever telling you anything.

I've never understood the hate for it either.

It's a relatively thin wrapper around Javac for defining your dependencies and implementing a standard compile, package, test, deploy lifecycle.

In the bad old days you would just half-implement the same thing in an ad-hoc way.

Post reply on HN