WebWork 2, 2 years on

The last time I looked at webwork 2 was a couple of years ago. At the time it was a half assed toy churned out mostly for the entertainment value of it, with little to no real direction, and a lot of pointless rubbish that some author or the other thought would be neat.

So, sensibly, I assume that two years of mass adoption would drag webwork 2 kicking and screaming into maturity. It’d have to cater for real people, people who aren’t necessarily sexually aroused by cvs -q -z 3 update -dP.

Of course, being of the easily aroused variety, and an eternal optimist, that’s the route I go down (after quickly giving up on the binary download), figuring that hey, I know webwork 1 inside out, how hard can this be? I even play the newbie, and decide to do it the brainless way and follow the docs/tutorial/getting started guide.

Therein perhaps lies my fatal mistake. That innocent decision led to webwork 2 being rejected yet again for yet another project. I can honestly say that out of all the halfassed opensores projects out there, I have never, ever seen such misleading documentation. It makes one long for strachanesque documentation, where some weirdo northerner (UK) with a goatee sharts all over a page for about 20 seconds and calls it documentation, then moves on to the next shiny bauble.

The documentation seems malevolent in its deception. This cannot possibly be a freak accident of nature, someone out there is out defacing these wiki pages, ensuring that the hapless user is molested (bad molest, not good molest) in as many ways as physically possible. The mess starts off with the dependencies description. Clearly, someone has wisely thought that it’d be great to enumerate the dependencies, and clearly label them optional or required. Sadly, the first thing that happens is that you’re sent to some autogenerated ivy oh-no-shit-just-splattered-on-my-screen kinda page. If you’re lucky enough to puzzle this out, you’ll end up with an alleged list of six or so jars required. So far so good. So you foolishly keep reading down the getting started page, and get to the web.xml sample. Hrm, this seems to mention a springframework listener. Now if I know my jars, I’d guess that this is some sort of spring*.jar. Needless to say, there is no mention of this in any of the dependencies. Excellent. The filter is also mapped to /*, which is rather excessive. Of course, later on in the page we’re told that in fact it’s mapped to *.action only. The mind boggles.

Next I’m told to create an xwork.xml, alright then, created. Then I’m shown an xml snippet showing an action declaration. Lovely, the only question, where in god’s name does the thing go? There’s no hint anywhere of where this xml element fits in, nor the following result element.

The language on the page is par for the course; mostly consisting of surprising and perplexing sentence structure, with the occasional sentence where the author was clearly thinking ‘waaamaaaaameeeeeeflubplopchkchkchk’. Hilarious examples include:

Especially the example in this section should be helpful to seasoned Java developers with previous experience in MVC frameworks. Especially? Especially what? Hello?

WebWork will take notice since the URI ends in .action. Take notice eh, what a sharp eyed little library.

…and redirect us accordingly. Us? There is no us my friend, we’re not on this journey together, you illiterate turdburglar (not to mention that we seem to have suddenly switched from the third person to….’us’)

All of these are on a single page. Still, I know roughly what I need to do. I litter my lib with jar droppings, I knock up an action and simple hello.jsp view, and fire up my poor abused container.

Much to my horror and display, I am confronted with a jbossian output of staggering proportions. Apparently, all those optional jars are only optional if you happen to not mind six or seven pages of stacktraces on startup. I suppose an old fashioned warning about not enabling support for crapfest X would be too helpful and non-invasive. Looking through the code reveals that sneaky old trick of logging an exception, then throwing it up. It’s almost as bad as hibernate in fact. I am endlessly amazed at how people who really aren’t that dimwitted manage to fuck up logging time and time again. You’re a library, for fuck’s sake. Someone is CALLING you, if you throw exceptions, they’ll deal with it, they’ll log it, they’ll print it out and cram it up their ass if they so choose, it’s their problem. DONT LOG AND THROW.

Eventually I do get to try to access my action, and I’m regaled with an exception, of course. The error? You’d never guess! It’s….something to do with velocity. Yes, the now deprecated view that isn’t supported anymore.

Of course, there are other irritants, like the fact that running ant to build webwork seems to get stuck for a few days in the ivy process. To keep things spicy, it also will sporadically crap out during a download, forcing you to kill ant and try again.

I suppose nobody sees the irony of merging with Struts (or at least, half of Struts, since Craig McWawafoofooploppyhan has stolen half); WebWork seems to have slowly limped its way into unusability and a certain ‘hi developer, open wide so I can enter somewhere god intended to be strictly one way’ lifestyle. Thus, a merge with the original crapfest that started them all is quite apt.

I can’t help but feel bitterly disappointed. I’m sure that once all these hurdles are overcome, webwork can’t possibly be that bad to use. It has a lively community and a reasonable set of developers. It’s just so sad and pitiful seeing it lack polish, even after all these years. No wonder the RoR fanboys are busy circlejerking themselves into an alternate state of being; almost anything else, even by pure accident, will be less painful and more enjoyable.

23 Responses to “WebWork 2, 2 years on”

  1. Patrick Lightbody Says:

    I agree, the non-reference docs are pretty bad. But to be fair, the reference docs are really good. We spent a lot of time on them. We’ll get sane tutorials in there soon too :) Thanks for the laugh, as always!

  2. Jason Carreira Says:

    You should buy the book! hahahaha….

  3. Will Sargent Says:

    I got Webwork to work, eventually. The online documentation is terrible, but once you get some already existing code to show, it does make sense.

    http://tersesystems.com/post/7900062.jhtml

    Here’s the nutshell:

    http://tersesystems.com/post/8500060.jhtml

  4. Philip Says:

    The documentation isn’t that bad, just rather poorly structured. We’ve been doing a lot of work improving it lately, but because of all the work and changes that went into 2.2, most of the docs are still under review. There is also the problem of developers vs. writers, and the typical wiki clutter. These are being addressed.

    See you again in 2 years :)

  5. Dr. Confused Says:

    Hani,

    What happened to your english? All polished (atleast the starting of the blog)

    Did ya take english classes?

  6. pageup Says:

    “Especially the example in this section should be helpful to seasoned Java developers with previous experience in MVC frameworks” sadly only exists now in google’s cache (dated Feb. 8, 2006). Docs updated on Mar. 1 are no longer funny.

  7. Philip Says:

    Ah, that would be my action. Sorry for not keeping those ‘funny’ docs (smell the sarcasm), since they were over six months old, and contained statements no longer true, I was so free to remove parts of it until someone gets the time to write new ones. Better no docs than bad ones, I guess.

  8. digitalsanctum Says:

    Execellent rant on what everyone agrees is a great framework not achieving it’s full potential. You rank right up there with Dennis Miller.

  9. Jason Carreira Says:

    digitalsanctum,

    Not sure if that was intentionally funny… Dennis Miller would be an example of someone with great potential not living up to it, at least for the last 5 years or so…

  10. Adam Nisenbaum Says:

    If one has log4j knowledge and really dislikes error messages from a library, one could raise the logger in question to fatal and not have any error, informational, debug or warn messages!

  11. Turdburgler Says:

    Who the f*ck is Dennis Miller? Clearly hasn’t lived up to much if I’ve never heard of him

  12. Dick Stallman Says:

    It’s time to move on from dumbed down Java and incredibly brain dead Java frameworks into the 21st century.

    Ruby on rails is for the professional who needs to get things done and not wank around with hand-holding IDEs and wizards.

  13. Michael Jouravlev Says:

    Jason> You should buy the book! hahahaha….

    I got one, I even started to read it. So much self-praise: love us, we are the best, WebWork rules. I could not find good old “Struts sucks” refrain yet, but found “Struts is no longer in development” remark. Either good or nothing about dead. In liew of WebWork 2 resurrection as Struts 2 I suggest a codename for it: Le Chuck. Muahaha!

  14. Corby Page Says:

    Holy crap, you must be a powerful man, Hani. If I read that right, you just gave Webwork a java.net style facial, and Patrick thanked you for it!

    I shied away from Webwork for a while because I wasn’t sure how serious the developers were about it. But I finally picked it up last month, and had no problems getting everything up and running. The docs are inconsistent, but I didn’t run into the setup problems that you did (the Freemarker dependency took me by surprise, though).

    The biggest problem I found was a JBoss-style inconsistency in the implementation of advertised features. The 2.2 release announcement included glowing descriptions of the support for JSTL and Java 5 generics, neither of which worked, period. The simplest test case had not been executed before release. JSTL was fixed in 2.2.1, and generics are scheduled for 2.2.2.

    But it’s good stuff, and fun to develop with. You and Rickard will claim in 5 years that Webwork 1 is still the best, but we’ve got to move on…

  15. nobody Says:

    well, the nice thing about webwork1 was the sheer simplicity - so that getting what you wanted done would never be a confusing or distracting experience… although I tend to want to use ww2 nowadays, I sorely miss the ‘feel’ of webwork 1…. which like some of Oberg’s other projects, seem to get lost once other people take over….

  16. Bret Says:

    “No wonder the RoR fanboys are busy circlejerking themselves into an alternate state of being; almost anything else, even by pure accident, will be less painful and more enjoyable”

    Hillarious!

  17. Jesus Says:

    These idiots don’t see that the quality of an open source product is judged by its documentation. They are more interested in playing with their shiny toys and tugging at their own genitalia for quick gratification. They are not interested in delivering a real product. I wish these half-ass open sores would just go away.

  18. Don Fuckwit Says:

    It’s time to move onto sweatier underpants - http://framework.zend.com

  19. Anonymous Bastard Says:

    What a load of ejaculatory fluids…

    Hani, you admitted coming back to the scene of the crime. That would make you a suspect in the eyes of the Java Polis.

    Instead of reviewing the same old projects, why not pick some new ones to throw you rectal expenditure at?

  20. pls grow up Says:

    >>since Craig McWawafoofooploppyhan has stolen>>

    Comeon Hani,

    You can bile on the guys skills or lack of.., but ridiculing a guys name is not very nice. Please grow up if you want your comments taken for real, tad bit atleast.

  21. Beat me senseless Says:

    “Of course, being of the easily aroused variety, and an eternal optimist…”

    easily aroused? Probably. Eternal optimist? HAHA!

  22. Paul Grahamsturbation Says:

    You wouldn’t have had any problems if webwork was built on lisp, by lispers, not the java dumb guys. Did you know I wrote a book on the subject? It’s so good OH OH OH! So Good!

    whew. I also went to Harvard, did you know that? OH OH OH! Harvard! I’m such a fucking genyus(sp?!?!)

  23. Eric Braymond Says:

    Baaaah! Baaaaaah!

    Hi Paul,

    I’m one of the three most important people in the universe, and I’d like to ackknowledge (baaaah!) that you are a genuys. Thx 4 being smart like me, and the 2 other guys.

    Dick, let’s do lunch.
    (p.s. you haven’t been returning my phone calls. Lemme just aim on you msn messenagr)

Leave a Reply