ApacheCon: Shale

Due to some freak accident, I find myself at the last day or two of ApacheCon. I’m actually here for JCP reasons, but I figured I might as well find a few talks to point and laugh at.

So the first disaster I stumble into is Craig Mcflaflaweewomjibberploppy’s Shale talk. I walked in halfway during this talk, and probably unsurprisingly, the demo being shown looked like it had escaped from 1998. The demo was shale validation, and how it can be server or client side. The client side validation was shown using, wait for it…ALERT boxes. Craigy clearly cares nothing for web 2.0, web 1.1, or web 1.0.

Craigy then goes on to talk about tiles. It’s so hard to take this stuff seriously. Does anyone actually use tiles? Even delta.com runs sitemesh. The tiles stuff is the usual horrific sprawl of xml, and Craig is his endearing incoherent self.

I haven’t been to any other talks, so maybe this is par for the course for apachecon, but the screens are absolutely abysmal. Craig is showing his IDE< and the text is so blurry and vague that I can't even figure out what IDE he's using. He keeps saying how clever it all is and gesturing wildly in the general direction of what I think is some xml, but of course, the poor audience sees nothing at all beyond some blurry gibberish.

Next up we see some tapestry inspired crud, with the idea of writing html pages and plopping an array of jsfid attributes for the dynamic poop. The demo involves changing the colour of error messages. I feel pretty bad for Craig, as this demo is a great example of why everything he ever writes is so astoundingly unusable. The process goes something like this: find the right id for your element, go to some xml file, find the right item, go to the error messages, find the class, go to the style, REDEPLOY the app, then see your colour change! Of course, Craig realises how much work this is, so happily points out that it wouldn’t be possible without open source. Most perplexing.

Craig’s guiding principles seem to be COD; confuse, obfuscate, and disempower. The more levels of indirection you have, the better your framework. Users that call the framework apparently find that confusing, scary, and pants-filling. He thinks users would rather have frameworks call user code. Every API that this man has ever produced adheres to these principles. The six people in the world who know better look on incredulously, as both Apache and Sun allow this smut to propagate and pollute our beloved java landscape.

At least there are some smart people in the audience, I can see at least 3 people who look very asleep, and I think one of them is a fat man who is about to start snoring, and some guy just stormed off in disgust.

Clearly I’m not the target audience for this talk. The thoughts I’m left with after attending this talk boil down neatly into: wtf is shale’s relationship to struts and/or webwork?

23 Responses to “ApacheCon: Shale”

  1. Anon Says:

    I’ll carry on the tradition of first post!

  2. Just a Struts user. Oh, boy... Says:

    > … The more levels of indirection you have, the better your framework.
    > … He thinks users would rather have frameworks call user code.

    Right on the money!

  3. Dil B. Irt Says:

    Management believes that Levels of Indirection are the answer to just about anything…

    In fact, one pointy haired boss, after hearing about xml and property files, approached me last year asking me to create an insurance application that would function as a manufacturing solution for a water treatment firm.

    Being the guy with the funny tie, of course, I said it was possible. :)

  4. Anonymous Says:

    Solution: use Swing! No crummy XML required.

  5. Greg Peres Says:

    Does anyone use this stuff?

    Probably? The fat guy sleeping in the presentation probably does… Probably to change the background colours on his Furry site.

    The real question is… Does anyone use this stuff to make REAL applications? Phil’s Transmissions on Baker Street doesn’t count.

    Most of these frameworks only address the “COOL” factor. For me, it is cool when my solution works, doesn’t look like ass and doesn’t require someone who smells like ass to write it.

    A framework is a way for a consultant to bill more time to a project. Searching for “framework” on SourceForge results in so much crap. Searching for “naked chicks” on SourceForge results in “Almost Naked Objects” which appears to be another web framework based on another web framework.

    Thank you “The Internet” for making my dreams come true.

    More real naked chicks… Less web frameworks.

    Cheers,
    Greg

  6. Peter Pilgrim Says:

    Sad to here, that Craig’s Shale was not good enough. Was it so actrious really? Anyway I am here at JavaPolis 2005 in BELGIUM, David Geeary is going to give a Shale presentation here in hour. I probably wont make that one, because of a conflicting presentation. At the time of writing, I see Jason Carriera answer question on WebWork 2.2. It looks like WebWork 2.2 is a better Struts, but I asked hime about the compatibility layer, and how wide ranging it would be? Come and help us implement it. The plan is to support Struts legacy however. Anyway I got to get to the next section.

    Peter Pilgrim

  7. Anonymous Cowherd Says:

    Hmm. Frameworks calling user code.

    Why am I reminded of the very worst of RAD development tools, like Delphi or MFC, where the poor developer of a network service cannot interact with sockets directly, but instead must register callbacks to be called when the framework believes that data is waiting?

    Meh.

  8. Bruce Says:

    Use Ruby

  9. Just a [former] Struts user Says:

    Cowherd, if you cannot tell the difference between

    * should I poll in timely manner or be called once, and
    * should I call when I need to or be called when I don’t freaking need to

    then you should stray from programming.

  10. Anonymous Cowherd Says:

    * should I poll in timely manner or be called once, and
    * should I call when I need to or be called when I don’t freaking need to

    then you should stray from programming.

    The particular clusterfucks I was talking about prevent you from doing stuff like merging a bunch of active socket connections into a single Reactor-pattern doodad. By making decisions for you ignorantly and badly, they violate the principle of least suprise and tend to flop over and die when too much is demanded of them. The choice implied in your questions, between inefficient polling versus efficient but error-prone edge-triggered logic, was not presented to the unfortunate end users of these tools.

    Does that clear things up for you?

  11. Victor Ionescu Says:

    Hani, you didn’t say anything about Spring. Please share with us, it would be great to trash Spring apache-style. I would like also some more bile regarding commons.logging and how other commons “throw” the log messages at us instead of exceptions. Keep on the good work. Long live the poo!

  12. Peter Pilgrim Says:

    I did eventually goto David Geary’s Struts Shale talk at JavaPolis 2005 here in Belgium. I dont know what happened in Cali but here the conference takes place in a multiplex cinema, and everything that I saw on the movie silver screen was legible. The BEJUG Belgium Java User Group are to be applauded because this is the best conference in Europe.

    Now in regards to David Geary. He is a seasoned speaker and his demos especially on AJAX and JSF/Shale worked out of the box. I just love what the Baby Apple Powerbook can do. It was a really good. Geary’s talks in the past tend to be a little bit simplistic, but if you keep a presentation KISS then there there is not too much that can go wrong. Geary’s talk was great.

    Javapolis 2005 has just finish so I am off home to London. See ya!

  13. Anonymous Says:

    Jackass

  14. Anonymous Says:

    COD = confuse, obfuscate, and disempower

    awesome ;)

  15. Anonymous Bastard Says:

    Victor, you will not see Hani trashing Spring, because he has entered a most unholy alliance with Rod Johnson in a secret ceremony involving rim jobs galore, and other vile acts against the very fabric of the Java community.

  16. JDJ boy Says:

    I’m gonna rewrite TSS with Shale (and AJAX) to get rid of this:

    java.rmi.ServerException: RuntimeException; nested exception is: kodo.util.DataStoreException: java.util.NoSuchElementException: Timeout waiting for idle object

  17. Anonymous Says:

    > Who even uses Tiles?

    Let’s see … uhhh, there’s Roller. And XPlanner, and about ten thousand other applications :)

    Realistically, there are more applications are using Tiles today than there are developers who have even heard of SiteMesh. Sad, but true.

  18. JSR-121 (JAVA ISOLATION) Says:

    Hello

    Can you post an article about java isolation (JSR-121) ?
    It has been just released and people aren’t talking about.

    Thank you.

  19. Sheila Says:

    May Santa bring ‘ya all one of my bad books for Xmas. Read it and be saved from your mediocrity.

  20. Khurram Says:

    COD = confuse, obfuscate, and disempower Great one for xml gurus…

  21. Java Addict Says:

    > COD; confuse, obfuscate, and disempower.
    I read:
    COD; confuse, obfuscate, and disembowel.

  22. Dan Novik Says:

    This component from Coldtags suite is like tiles, but there is no XML at all:
    http://www.servletsuite.com/servlets/template.htm

  23. Andy Says:

    While I didn’t see Craig’s ApacheCon Shale talk, I’ve seen his compadre David Geary do the Shale song and dance a few times now. These guys and their silly frameworks seem hell-bent on turning the albeit hamfisted processes of Java-based web development into EJB development. Seriously, nineteen freaking XML files to produce a simple “Hello World”? And then, as you say, there’s the requisite editing of five more files to make the text turn blue and the background turn green. Craig’s stuff is no use to anyone who needs to Get Things Done: it’s a solution in search of a problem, or rather, the wrong solution for a problem these guys clearly don’t understand. Plus, are we really supposed to be taking MVC advice from the guy who inflicted Struts upon us? Cripes, that monstrosity should’ve earned him a lifetime ban from the ever getting to work on a new framework again.

Leave a Reply