To me, Maven is two things: a way of *declaring* dependencies between components and a way of *declaring* a transform on assets that comprise these components. The transform says something like: "I have some assets in a given form in locationA and I want to transform them into another form in location B. The assets are a bunch of files structured according to certain conventions. The target is typically (but not always) some sort of deployable archive form that adheres to some standard such as a JAR, WAR, EAR or a complex assembly consisting of multiple such forms.
This is the essence of the declarative nature (and the magic) of Maven. You can realize this kind of transformation without having to state procedurally the steps required to get there. The "XML sucks" discussion is one that has been repeated in many other domains and is rarely fruitful. -brian ________________________________________ From: ext Jason van Zyl [ja...@maven.org] Sent: Sunday, October 24, 2010 11:21 AM To: Maven Users List Subject: Re: [Repetitive]: Maven does not live up to its promises On Oct 24, 2010, at 11:15 AM, Justin Edelson wrote: > Jason- > I'm sure there's a lot here to respond to, but if I could make one > suggestion, it would be to clarify what you/we mean when we say that Maven is > 'declarative'. This seems, at least for Mr. McDonald, to be the source of > some confusion. > That would definitely be one of the clarifications. > Just my 2 cents... > > Justin > > On Oct 24, 2010, at 9:03 AM, Jason van Zyl <ja...@maven.org> wrote: > >> Kenneth do you mind if I use the body of this rant in a blog entry? I will >> leave it verbatim and won't quote anything out of context. >> >> There are many people who misunderstand Maven at a fundamental level, but in >> sum total not many Maven users or people attempting to use Maven, actually >> traffic this list. It would probably be more instructive to have your rant >> and my answers in a place where more people can see them. >> >> Would that be OK? >> >> On Oct 23, 2010, at 5:15 PM, Kenneth McDonald wrote: >> >>> First, note that I did tag this as repetitive: You don't need to be reading >>> it if you don't want to be rehashing recent issues. >>> >>> <beginning of rant> >>> However, I want to give a concrete example of just why I dislike maven (and >>> all other XML solutions) so far. I am trying to do what I think should be a >>> reasonably easy thing to do--upload onto github (or something similar) >>> current documentation for the project I have hosted on github. So far the >>> best solution I've seen involves making another branch of my project and >>> including the documentation there. This is fundamentally wrong (the docs >>> are _part_ of the project), but I'm not blaming maven here. It's probably a >>> git thing I don't yet understand. >>> >>> However, once we get past that, the pom files necessary to upload the docs >>> are daunting, to say the least. >>> >>> Even more than that, though, the pom files are fundamentally unreadable. Oh >>> I don't mean you can't puzzle through them in an afternoon or so if you >>> have the time. Of course you can. But (and I think this deserves to be in >>> caps), XML FILES ARE FUNDAMENTALLY WRITTEN WITH THE EASE OF THE COMPUTER, >>> NOT THE HUMAN, AT HAND. I mean, that's just a simple statement of fact, not >>> an opinion. I just don't get how people can be so oblivious to this. Would >>> you really want to program in a dialect of XML? How many people do you know >>> who do so? Do you really think that all of the work that has been done on >>> parsers and compilers over the last thirty years has been in vain because, >>> realistically, humans should just program in XML? I open up an XML file, >>> and unless I'm quite familiar with the "dialect" of XML in use, simply >>> understanding the structure takes at least half an hour. THEN I need to >>> understand the content. There is too much redundancy, too few structural >>> cues to indicate meaning, too few keywords (yes, they're important!), too >>> much nesting, too little ordering in that nesting...I could go on. >>> >>> Of course people will dispute this. They're wrong. If they were right, we >>> would have had something like XML for all our programming needs twenty >>> years ago. Sorry people, you're just plain wrong. >>> >>> Now, what are the claims made for (or implied by) maven: >>> 1) That it is declaratively, not procedurally, based. >>> 1-a) Whoop-te-do. So are makefiles. Sure, they've accumulated a lot of crud >>> over the years (and a rewrite _like_ maven was probably necessary to clear >>> this out), but makefiles are, at their core pretty simple. You have a build >>> target. It depends on other build targets. You build those other targets, >>> and then you build what you're working on. Is this revolutionary? >>> 1-b) I've mentioned this before, but Prolog has been doing declarative >>> programming for years. Without obscure semantics. With lots of extra >>> expressive power, like list manipulations, arithmetic, etc. etc. With an >>> understandable syntax. With lots of extra libraries. Would it have really >>> been so bad to base a declarative codebase on Prolog, a mature, proven >>> technology? >>> 2) XML is standards based. >>> 2-a) Sure. Like Prolog. Or even (choose a variant of) LISP, for god's sake. >>> All of these "languages" are standards compliant until they're not. XML >>> will suffer the same fate. >>> 3) XML makes it easy to interoperate with other systems. >>> 3-b) This is the biggest piece of bullshit I've ever heard. It totally >>> confuses a data format (let's say, "ASCII") with a data standard (let's >>> say, "CORBA", though that's stretching things.) XML is a data format, pure >>> and simple. No matter how hard it tries (remember DTDs?), it cannot attain >>> the status of a data standard, because the needs of data standards evolve >>> and continually require new things. So a data format such as ASCII, can >>> have quite a long life--but trying to do the same thing to a data standard >>> is a pointless exercise, and will not hold. >>> 4) Apache is wedded to XML. >>> 4-a) This one really pisses me off because I suspect it's absolutely true. >>> I believe that Apache has a large number of very talented programmers, and >>> I believe they are, in large respect, wasting their time because they have >>> come to worship XML. I don't get it. There are things for which XML is >>> appropriate. There are also so many things for which it's not, that why >>> would you spend all of your time there? I don't have an answer. >>> >>> Anyway >>> </end of rant> >>> Ken >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org >>> For additional commands, e-mail: users-h...@maven.apache.org >>> >> >> Thanks, >> >> Jason >> >> ---------------------------------------------------------- >> Jason van Zyl >> Founder, Apache Maven >> http://twitter.com/jvanzyl >> --------------------------------------------------------- >> >> Three people can keep a secret provided two of them are dead. >> >> -- Unknown >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder, Apache Maven http://twitter.com/jvanzyl --------------------------------------------------------- happiness is like a butterfly: the more you chase it, the more it will elude you, but if you turn your attention to other things, it will come and sit softly on your shoulder ... -- Thoreau --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org