Slashdot Mirror


Software Fashion

fedor writes "Software fashions come and go, but they always claim a few victims on the way. Where there's fashion, you'll find that rather weak willed person who is the Stupid Fashion Victim (or the SFV for short). This great article from Software Reality is all about fashion in software. Do you all remember WAP? In a couple of years some of the current 'technologies' will be gone too. The article mentions VB.NET, struts and XP as current fashion..."

15 of 477 comments (clear)

  1. LOL, Struts is right on target. by Anonymous Coward · · Score: 3, Insightful

    It's good for a lot of situations, but it's the most overused framework I've ever seen.

    Rick

    1. Re:LOL, Struts is right on target. by Mr.+Slippery · · Score: 4, Insightful
      Using modular design leads to more complex code, its a fact of life.

      If modularization begets complexity, you ain't doin' it right.

      Modularization should simplify, in that each module encapsulates and abstracts a well-definined function. It may add volume to your code, but should render it easier to work with.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
  2. The one i hate most by smartin · · Score: 4, Insightful

    Hungarian Notation., the fashion of obfuscating your code.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    1. Re:The one i hate most by wrmrxxx · · Score: 3, Insightful

      Even Charles Simonyi, who started the whole Hungarian Notation thing, didn't propose that it should be used everywhere, for every variable name. This is, as the parent post suggests, a classic case of a valid idea being used in inappropriate contexts just for the sake of fashion. Unfortunately it (or worse still bastardised versions of it) has become so entrenched it is followed more like it is religion than fashion. Some developers can't be talked out of it with any reasoning - they just tell me it has to be that way, because it's programming. Like religion, logic seems to have no place.

      In the days when you wrote complicated code in older forms of C that required casting all sorts of things to pointers (through char * before void existed), greater programmer care with the scope and type of variables was important. There were all sorts of things that a compiler wouldn't catch, so sometimes it was worth sacrificing code readability. Now, of course, it mostly just doesn't make sense to make the sacrifice. Compilers handle data types just fine, and you don't have to cast through some totally unrelated type in modern languages. OO languages keep a lid on scope: you don't have masses of global variables. OO languages also introduce polymorphism, in which H.N. or type based naming can be very misleading. Code clarity is very valuable, and more natural language is one tool to achieve this (see Knuth's Literate Programming for some interesting ideas). It frustrates me no end when people want me to read a series of codes (with no vowels!) as if I were a computer. Give me language instead: I've been handling that since before I could walk.

      I think this particular fashion persists so strongly despite common sense for a number of reasons:

      • Momentum: there's so much of it about (e.g. Microsoft API docs) that programmers who don't think about why they should do things just copy the pattern blindly. Self perpetuating fashion.
      • Programmers not only undervalue code readability, they get some elitist kick out of making it undreadable. As if making it unreadable somehow makes code look more technical. I've seen programmers write code with vowels stripped out of every single variable name, even though they can touch type and have no absolutely no reason to abbreviate.
      • Maybe HN is useful in a training environment (so markers can see validity without using a compiler?) and it just carries into a professional career.
  3. .NET = Fashion by bersl2 · · Score: 3, Insightful

    .NET will disappear once Microsoft starts pushing their next initiative and forces upgrades and rewrites. It's all about the $$$, never about the product. The product is just a conduit for money.

    This is why OSS is so great. Most of the time, it's not about the money; it's about the product. Therefore, it's not about getting sales, it's about getting users.

  4. What about CORBA? by DrInequality · · Score: 5, Insightful
    He hit all of my favourites: XML, Visual Fred, etc...

    But missed CORBA! Surely it belongs in the Technology X != Silver Bullet category. As far as I'm concerned, CORBA best solves the "this project has too many resources" problem.

    But then again, I'm probably just another SFV :-)

  5. Re:Interesting? by Doomrat · · Score: 4, Insightful

    Don't you see? Moderating it as Interesting is a master stroke of comedy. It's the only thing which has made me laugh on Slashdot all day. Most of the other attempts to be funny here result in my wishing cancer upon the poster.

  6. More ignorant flamebait... by M.C.+Hampster · · Score: 5, Insightful

    From the article:

    VB.Net is really just syntactic sugar on top of C#. C# offers more and better libraries.

    That alone should tell you that the author has no clue as to what they are talking about. I am most definately not a VB.NET fan, but that statement is just false and shows a huge lack of understanding of the .NET Framework.

    --
    Forget the whales - save the babies.
    1. Re:More ignorant flamebait... by Keith+Russell · · Score: 4, Insightful

      They're talking out their asses on the libraries. CLS-compliant is CLS-compliant. But they're dead-on right about VB.NET. I'm pretty sure that Microsoft "upgraded" VB by starting with C#, changing the syntax to match Basic, then dumbing it down with over-verbose keywords for new language features and a lack of "intrinsic" keywords for unsigned integer types. All this for a language so different from previous versions of VB, it needs a non-trivial conversion anyway.

      Hmm, instead of making the language easier to use, they just made it different. Syntactic aspartame?

      --
      This sig intentionally left blank.
  7. Missing the biggest stupid software fashion by 0WaitState · · Score: 5, Insightful

    The biggest stupid software fashion is IT outsourcing--it has reached the point where every corporate middle manager feels they have to have a story on how they're outsourcing, long before (if ever) outsourcing has proven any reliable ROI.

    Unfortunately, unlike other stupid fads applied to software such as TQM, ISO9000, RUP, etc., outsourcing does real economic damage to the victims, (as opposed to just the psychological damage represented by trying to work around the others).

    --

    Remain calm! All is well!
  8. Everything, including tools, in moderation! by RevMike · · Score: 4, Insightful
    What? No mention of UML?? Together with Design Patterns, these two are making my fellow software engineers less intelligible by the minute!
    RevMike's first law of development methodologies- "The only thing worse than not following a methodology is rigidly following the wrong methodology."

    If UML and Patterns is making your engineers less intelligible, then they are doing something wrong. It is possible that those tools are not appropriate for your problem space. It is also possible that they need to drop the elements of the model that aren't working for them.

    Design Patterns is an incredibly useful tool, especially in the OO world. But as was noted in the article, there is a danger of designing everything as a pattern. Being able to say "I use a Service Locator to look up the remote resources" or "I use this Abstract Factory to get the proper xml parser" is incredibly useful. But it has a tendancy to be overdone.

    Everything, including tools, in moderation!

  9. I nominate XML by tjstork · · Score: 3, Insightful


    XML is a fad because the whole concept of universal interchange of data is getting locked down by the big vendors. Theoretically, yes, data in XML is portable, but, so are well documented binary structures and CSV.

    To have real interoperability, you have to know how the software uses the data. To get that, you must have open source. Microsoft knows this, and that's why they are pushing XML as the "nirvana" of interoperability.

    I'd invite anyone who argues against the above to look at an XMLized Word document...

    --
    This is my sig.
    1. Re:I nominate XML by Anonymous Coward · · Score: 3, Insightful

      I don't care about XMLized Word documents. I care that 10 years from now I'll know exactly what

      <record id="35">
      <name>Joe Blo</name>
      <shoe-size>12</shoe-size>
      <favorite-number>10</favorite-number>
      </record>

      means, while the following:

      35,"Joe Blo",12,10

      is just a blob of useless data.

      I.e. XML helps ME in MY PROGRAMS today. It's not the nirvana of anything, but I sure as hell don't want to switch to CSV.

  10. Re:The very worst fashion... by wrmrxxx · · Score: 3, Insightful
    EJBs complicate development.

    Misuse of EJBs complicate development. When they're used just for the sake of fashion (as often seems to be the case), a perfectly good solution (for something) can be applied to entirely the wrong problem, resulting in a mess. The parent post makes two good points about the danger of fashion (another way of saying following blindly without thinking?); one of these points is perhaps made inadvertantly. Firstly, the results are bad. Secondly, it can make it look as if the subject of the fashion always produces bad results and has no merit.

    Just because EJBs can be (and sometimes are) misapplied does not mean they have no value. Sometimes the situation is not 'EJBs complicate development', but rather problems get complicated all by themselves, and EJBs can provide a solution. For example, container managed entity beans can make object-relational mapping happen (along with transaction management) with hardly any code. It may seem complicated when you look at the multiple interfaces and deployment descriptors needed, but really this is a very simple solution relative to the complexity of the actual task to be performed. If I had to write my own code to handle these tasks so easily, it would take me forever.

  11. Re:"Required" email by WNight · · Score: 3, Insightful

    A method that proposes comments that don't live in the code is broken. It requires programmers to have a second file open, and to update two things every time they make a change. A system that requires an extra annoying step for absolutely no gain is defective.

    For absolutely no gain? Yes. There are better ways, such as putting any needed documentation into the source code itself. That way not only are they more accessible when reading the code but they're easier to change and harder to forget about.

    Check out doxygen (at sourceforge) for a pretty cool system.