The flexibility fetish

The other day someone pointed out to me that the introduction blurb to OSWorkflow had 8 separate mentions to how flexible it is, and how it has much flexbility. While shameful, it was with quite the sigh of relief that I realised that I hadn’t written that particular blurbage. However, it did get me thinking, what’s up with all the flexibility every project brags of?

I mean honestly, how likely is it that everything is so goddam flexible? Does it actually mean anything anymore? What’s the measure of flexibility?

Looking across any number of products, it’s rare to find one that does not try to big itself up with promises of flexibility the likes of which are seldom seen outside of freak circus shows.

Let’s have a brief browse, shall we? Below are snippets of documentation from various (very popular) java projects. I challenge you to manage to identify a single product, or even what sort of product each might be.

  • based on Java interfaces for flexible plug and play implementations
  • It is easy to use, flexible, and powerful — a model of good object-oriented software architecture
  • …has been developed from the ground up for flexibility and performance
  • a flexible control layer based on standard technologies
  • It is very flexible framework
  • a flexible, comprehensive, easy-to-use open source Java web framework

    The above snippets are from WebWork (2.0), Struts, Tapestry, Lucene, Tomcat, and dom4j documentation (not in that order). I’d be truly stunned if anyone can match up the sentences to the product.

    The whole flexibility malarky is slowly turning into a dirty I-touch-myself-in-public kind of spectacle. Enough already. Everything is flexible, flexibility is in the eye of the beholder. The word is used with such impunity that it’s lost all sense of meaning. If piles of dog droppings like Struts can use it willy-nilly, how can it possibly mean anything?

    Keep in mind that too much flexibility means that your framework will become limp and flaccid, and nobody likes their pride and joy to have those properties. A wise man once said that a framework’s genius lies more in what it does not do, than in what does.

    So, documentation writers everywhere, stop bragging of how flexible you are. It’s nothing to brag about, because every other little shit with a framework is also furiously waving his penis pimping his own not-so-unique brand of flexibility. If you really do buy into that shit, then for fuck’s sake, try to present some more compelling evidence than that word. You might as well start drooling foolishly and tugging at your nose proclaiming that your framework or library is ‘good, nice, and great’ for all the use that F word will bring you.

  • 35 Responses to “The flexibility fetish”

    1. Loke Says:

      This probably because most open source people grows lots of wood by using “extract interface” in IDEA.

      By the way, Isn’t webwork 1 flexible?

    2. Andrew Says:

      With luck Java will soon approach the flexibility of Perl.

    3. boxed Says:

      Come, you are a tedious fool. To the purpose.

    4. boxed Says:

      You should be women, and yet your beards forbid me to interpret that you are so.

    5. fletch Says:

      thank goodness your nose isn’t an unmentionable

    6. Carlos Villela Says:

      *phew*, I strafed that one. Prevayler documentation (http://docs.codehaus.org/display/PREVAYLER) has no mention of The Other F Word.

      And, please, someone slap this ‘boxed’ with a heavy cluestick. It’s really annoying and degrading the (already poor) signal-to-noise ratio here in the comments.

    7. googlespanker Says:

      only a few seconds of lathering googlespank by a fapster like myself has revealed the mapping of quotes to projects:

      dom4j
      lucene
      tomcat
      struts
      webwork
      tapestry

      do you want a cigarete?

    8. Loke Says:

      Googlespanker, you are a very sad person. May I suggest you go to the nearest pr0n web site and search for a life?

    9. Clown Puncher Says:

      He doesn’t need pr0n…he uses google to spank…duh!

    10. Gabriel Mihalache Says:

      Guilty as charged! Oh, Hani, you are the Stile of Java!

    11. bramez Says:

      The F. phenomenon is a consequence of GoF patterns that have become a commodity, if not overused. People tend to overengineer and add patterns when they don’t need to. The result is code that is hyper-flexible and overshoots its original goal, is unreadeable because of too many layers and levels of indirection. I was glad with the XP wave to pop this balloon, now at least there is a damping mechanism when the pattern adepts are overheating.

      Strange you don’t mention Swing. Swing adepts always tout it’s extreme flexibility.

    12. Kris Schmidt Says:

      I engineered the most flexible framework in the world. It has one interface, called Command. It has one method, public Object execute(Object[] args). Trivial plugins integrate this framework with any functionality for Eclipse, Ant, Struts, Tapestry, Velocity, Webwork, etc etc. In a completely optional add-on jar I have 458 classes that help populate the properties of Command objects by reflection using xml files (DOM, SAX, digester, JDOM, SOAP). The framework is so flexible that you can even instantiate Command objects by hand, if you wish to resort to such prehistoric methods!

      Don’t worry for all of you salivating and tugging your unmentionables, version 0.1e-7 pre alpha appearing at a codehaus dropping (er, download site) near you.

    13. Huw Aegh Says:

      “A wise man once said that a framework’s genius lies more in what it does not do, than in what does.”

      My framework doesn’t do anything at all. Does that make me a genius?

    14. Anonymous Says:

      Yawn.

    15. boxed Says:

      Carlos: there’s a bot posting shakespear quotes under my name to make me look bad. Note how the person who wrote that thing is a flaming idiot for not even being close to reproducing simple shit like my sig.

    16. Tom Copeland Says:

      Hi Kris –

      That’s nice, but I’ve forked your project and replaced the method sig with:

      public List execute(List args)

      Now it’s even more flexible – w00t!

    17. fred Says:

      s/unmentionables/nose/

      Did you all notice? He’s listening.

    18. Corby Page Says:

      Here’s how you tell if a framework is flexible. Look on the user mailing list for the following dialog:

      User: Does this framework support obviously essential feature X?

      Framework Developer: No, but our framework is so flexible that you could write a plugin for that in a matter of hours. It’s just that… somehow nobody has done it over the last two years.

    19. Leonardo Bueno Says:

      My frameworks is a lot better and it was not forked, it was built from the ground up for performance and scalability:

      public Object execute(Object o);

      The framework is so extensible that there are lots of extension points. If you decide to use any of the other two competing frameworks you can change a config param and so the other frameworks and your application will not be tied to Lists or arrays. This is very important since this makes the framework also compatible less capable j2me profiles

    20. Leonardo Bueno Says:

      Man… where is the edit comment button?

      Hope you got the idea. This description of my framework sucks but it will be improved on the next version as I’ll start to use maven to post comments on blogs

    21. Rampant Clown Says:

      Looks like jroller failed the flexible framework test … Hani why didn’t you write an “Edit Comment” plugin ?

    22. Tom Copeland Says:

      I could write an Edit Comment plugin for JRoller… it would only take a few hours.

    23. fred Says:

      Flexability is a benefit with a cost. (in maintainability)…unless it adds something for the user or a dramatic speed increase for the developer, it is usually just an exercise in mental mastication.

    24. subterfusion Says:

      regardless of whether it’s a boxed-bot or not, those quotes are incredibly funny.

      What’s all this talk of signal-to-noise ratio? These comments are 100% signal, but the signal just happens to be noise, or something.

    25. Toy App Maker Says:

      How true. Unfortunately, this transcends java frameworks, and is even finding its way into small applications. I read this bile and wasn’t going to comment until I saw the following in the new iStumbler release notes:

      “Release 84 completely remade iStumbler into an extensible, high performance and indispensable wireless scanning utility. Plugins provide unprecedented flexibility……blah blah blah”

      WTF? Why do I need it to be flexible? I just want to know what WiFi traffic is around. Wait, I know…..I can write a plugin that detects the brain waves of self-promoting jackasses. That way I can steer clear of the area.

    26. Gay man who sometimes date with girls Says:

      Flexibility is similar to what I’ve been doing: flirting with other guys while dating with a girl in the cafe.

    27. Clown Puncher Says:

      I’d like to punch your clown, may I?

    28. Clown Punchee Says:

      I’m an incredibly flexible clown. Punch me.

    29. Robert S. Sfeir Says:

      hehe, I agree with Hani… again… something is going wrong here..

      I think every product should have an F scale marked on each product. The lower the better.

      R

    30. In the closet Says:

      Flexibility is being able to date with girls while covering your gay status from the rest of the world

    31. Koos Says:

      You ara ALL a bunch of loozers.

    32. Koos Says:

      You ara ALL a bunch of loozers.

    33. walter Says:

      How about venting some spleen at that vilest of all java marketing buzzwords – ‘scalability’.

    34. Anonymous Says:

      Flexibility usually means the designers of the product couldn’t decide what the thing should do and how it should do it. I’m a busy guy. I got work to do. Give me a package that does one thing and one thing well and I will make it fit. I don’t have time to play with dozens of configuration settings.

    35. Anonymous Says:

      Flexibility usually means the designers of the product couldn’t decide what the thing should do and how it should do it. I’m a busy guy. I got work to do. Give me a package that does one thing and one thing well and I will make it fit. I don’t have time to play with dozens of configuration settings.

    Leave a Reply