Live data from Hacker News

Why Everyone Eventually Hates or Leaves Maven

nealford.com

101–110 of 168 posts

Re: Why Everyone Eventually Hates or Leaves Maven

#101
post #55
post #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 ba…

> not using verbose Java-like languages that require IDEs for the all the boilerplate and rote refactoring. You probably need to revisit your opinion on IDE's, they haven't been used for boiler plate code since the late 90's with Visual Studio. Java IDE's make your more productive and they help you keep your code base in a healthy state with very little technical debt. Not using them would be like preferring a screwd…

I'm reminded of The IDE Devide (http://osteele.com/posts/2004/11/ides), which describes the differences between a "langauge maven" (which I'll admit to being) and a "tool maven".

Re: Why Everyone Eventually Hates or Leaves Maven

#102
post #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).

As part of your build were you wiping out your local repo ( ~/.m2 ) for some reason? It would only need to check if you don't already have the version specified in your pom in your local repo.

Re: Why Everyone Eventually Hates or Leaves Maven

#103

I wholeheartedly disagree with this post, though I do like his conceptual framework of composable and contextual abstractions. I've worked on countless Maven builds and have done everything under the sun. Maven's plugin system allows you to ultimately achieve whatever you need out of your build--in the 10% case that you have a need that isn't already covered by the varied plethora of plugins out there. You can even c…

brilliant summary.

Re: Why Everyone Eventually Hates or Leaves Maven

#104
post #43

It's not Maven. It's Java and XML. They both end up involving much more overhead than Ruby/Rake.

IMHO, it is XML.

XML is a great language since it has the power of schemas and DTDs. It makes it easy to validate the data you expect in each of the fields.

And fuck am I tired of hearing about how saving 10% of your keystrokes during authorship is such a great thing. Most of the time spent on software in in maintenance, so you want better readability than terseness. coffeescript, yaml, etc... are far inferior solutions for most of the uses they get put towards.

Re: Why Everyone Eventually Hates or Leaves Maven

#105
post #89

Earlier quoted context omitted.

Building java libraries isn't really all that difficult. Not is packaging them. Damned if it doesn't take 30 lines of XML to do it in maven, but these kinds of see-spot-run situations are pretty easy. Extremely difficult in maven and five minutes work in make or ant is things like "running LaTeX to generate a PDF of some of your documentation, because it is math laden and HTML isn't suitable". This is not theoretical…

Or you could use org.codehaus.mojo:latex-maven-plugin, stick your latex and graphics in src/main/latex/ , and watch it 'just work', like I do. I agree that not every maven plugin does exactly what you want it to, but a lot of them get pretty damn close, and as the authors iterate them, they gain a lot of flexibility.

I don't have too many issues getting latex running either, but I do mostly agree, despite my humorous aside. If I had a quid for every extra hour that Maven added to my work above and beyond the coding, I could take you all to lunch. Tools should at least attempt to get out of the way. Maven is a Swiss-army knife with a blade as the handle.

Re: Why Everyone Eventually Hates or Leaves Maven

#106

It's not Maven. It's Java and XML. They both end up involving much more overhead than Ruby/Rake.

You get something in exchange to that overhead:

1) predictability 2) static analysis 3) quality (static typeing vs. duck typing) 4) sophistication/maturity 5) reproducabilty 6) tooling

All that's not always necessary, but if you know the thing you're building has a shelf life of at least 2 years then ruby/rake are pretty shitty tools.

Re: Why Everyone Eventually Hates or Leaves Maven

#107
post #70

Good article. I like the idea of what Maven tries to achieve but I prefer monkeying with ant because I can get things done. If Maven or its successor ever gets to where things can't get into a mucked up state; I'm in.

strange, by default maven is much more strict about things, so it's hard to muck up. Perhaps you weren't creating the maven project in the format it wants you to create it in (which IMO, is a good one). Have you tried creating new projects with

mvn archetype:generate ?

Re: Why Everyone Eventually Hates or Leaves Maven

#108
post #65
post #57

"These abstractions apply to tools and frameworks as well, particularly tools that must scale in their power and sophistication along with projects, like build tools. By hard-won lesson, composable build tools scale (in time, complexity, and usefulness) better than contextual ones." And then the person that wrote them leaves and we're fucked. If maven doesn't do what you need to do, then chances are you don't need to…

If what you need to do can be done in Maven you don't need to do anything very difficult. Ant scales poorly; dependencies are a particular headache. Maven scales astoundingly poorly. Here's a very short list of things that are massively obnoxious to do with Maven, but are perfectly reasonable: - submitting code to a code review site like Gerrit. - generating code (for example, a parsed SNMP MIB that you want as a Jav…

I thought Maven was a build tool, shouldn't your continuous integration system put code into Gerrit?

We use Maven and it just works. We play with the idea to move to Gradle, but the effort is non trivial and the real benefits not clear.

We use Sonar. We use Clover for code coverage. We use PMD. We use Checkstyle. We use FindBugs.

Re: Why Everyone Eventually Hates or Leaves Maven

#109
Maven just works and if you stay within it's intent, it does it's job.

We use Maven with Bamboo for continuous integration and it just works. We play with the idea to move to Gradle b/c it's more powerful, but the effort is non trivial and the real benefits - beside the 'but it's programmable' - not clear.

Re: Why Everyone Eventually Hates or Leaves Maven

#110
post #82

Earlier quoted context omitted.

Well in ruby you could use bundler and it becomes gem 'gem-name' # in Gemfile $ bundle install

Until you want to do it on a system you just want binaries. Or until you need to guarentee the version of the library you're bundling Or you want to run on something other than a MAC-in-crap, like Linux. RVM has the same problems. In my opinion, one is for play, and one is for work. If you just want to fuck around and spew code in one long controller that looks like spaghetti, and you don't want to worry about reprod…

> Or until you need to guarentee the version of the library you're bundling

gem "thing", "3.0.0.beta3"

gem 'rails', :git => 'git://github.com/rails/rails.git', :ref => '4aded'

Post reply on HN