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..."

38 of 477 comments (clear)

  1. I wonder... by inertia187 · · Score: 5, Funny

    Actually, I always suspect an idea is bad when Sun Microsystems has an entire Java-One conference based on it.

    --
    A programmer is a machine for converting coffee into code.
  2. 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 Celandro · · Score: 5, Informative

      The Struts tag libraries are incredibly useful for any kind of html form based web app (aka. all of them). Remembering what the user last selected on a form takes a ton of horrible looking code if done with pure jsp or old school servlet/jsp model 2. Struts is also useful for automatically filling out your java bean with data from the http request, validating it according to your rules and sending it back to the input page if there are errors or processing it if there are not.

      I will definitely agree that the learning curve for struts is quite steep and the number of files involved per user action is high (1 form bean, 1 action, 1 jsp, 1 xml config file, 1 property file, possibly 1 xml validation file) but there are some IDEs which help out in some cases. The problems are incredibly similar to most MVC frameworks. Using modular design leads to more complex code, its a fact of life.

      Struts is certainly not the end all and be all but its better for medium to large projects than the alternatives I've looked at (caveat: I have not investigated JSF which someone mentioned)

    2. Re:LOL, Struts is right on target. by Digital11 · · Score: 3, Interesting

      Believe it or not ASP.NET also does the whole remembering what the user picked EXTREMELY well.. It's almost as if you're coding windows forms sometimes because of how painless some things can be.

      Now I'll admit that there are some areas of .NET that make me want to poke my eyes out with a blunt object, but overall i've found it to be much easier to work with than PHP or ASP for large web-based app's.

      --
      I am a leaf on the wind. Watch how I soar.
    3. 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
  3. Soapbox by Anonymous Coward · · Score: 3, Funny

    We regret to inform our readers that the column, formerly titled "Soapbox" will appear under a different name after the girl on the left ate the entire soapbox.

  4. Victim? by tarquin_fim_bim · · Score: 3, Funny

    "as demonstrated by Britney, our sexy young model over on the left"

    That's my mother you insensitive clod.

  5. Microsoft Bob will never go out of fashion. by Anonymous Coward · · Score: 3, Funny

    Clippy the paperclip told me so.

  6. 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.
    2. Re:The one i hate most by crazyphilman · · Score: 3, Funny

      The worst conflict I ever had with a sysadmin was when I was doing Perl for a small company in New Jersey. They had a development group in Manhattan which used VB 6 extensively. Some idiot in that group floated a suggestion that ALL programming at the company use Hungarian Notation. So this sysadmin informs me that as a matter of policy, from now on all of my Perl variables will use Hungarian notation.

      But, I pointed out, in Perl a variable's type depends on context.

      "Huh?" He asked.

      "Ok, I read in a number as a string. Then I use it as a number. Then I format it using a regexp. Then I print it as a string. What is it, a number, or a string?

      "Use two variables, one integer with an "i" prefix and one string with an "str" prefix." he said.

      "Well, now that you're using double the memory to perform the same task, let's consider. How will this scale when we've got thousands, or tens of thousands, of hits?" (this was going to be a CGI app). I crossed my arms and waited.

      "Doesn't matter. Use Hungarian Notation. It'll make it easier to read your code."

      "But it's fucking stupid."

      "No it's not! DO IT!" (and so on, ad infinitum).

      I called a friend of mine, who had taught me a lot of my Perl knowledge, and I asked him, point blank, what he thought of all this.

      "Your sysadmin's a re-re." He said.

      "A what?" I asked.

      "A re-re. A retard. Freshen your resume."

      And, so I did... ;)

      --
      Farewell! It's been a fine buncha years!
  7. .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.

    1. Re:.NET = Fashion by WasterDave · · Score: 3, Interesting

      Y'know, I don't think it is. Certainly when C# was introduced I was like, "yeah, whatever" who's going to swap from Java to this?

      But the point is the frameworks. Finally Microsoft have solved the 'framework that sucks' problem by ... ahhh ... doing a Borland one. For the sanity of those who still have to code for this sack of shit platform, I wish it the best of luck.

      Dave

      --
      I write a blog now, you should be afraid.
  8. 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 :-)

    1. Re:What about CORBA? by alien_blueprint · · Score: 4, Interesting

      But missed CORBA! Surely it belongs in the Technology X != Silver Bullet category

      Disclaimer: I'm clearly bigotted .

      However, if you believe CORBA was going to be a silver bullet, then you were mistaken. I've never heard anyone say such a thing. But then, I stay away from marketing people.

      As far as I'm concerned, CORBA best solves the "this project has too many resources" problem

      I think you actually discovered that "distributed systems are difficult".

      What you need is a component infrastructure that builds on CORBA to make the slice of the generic distributed system problem that most people are (currently) interested in a simple problem. Luckily it exists, and it is called J2EE ;)

      As for me, J2EE *doesn't* address the kind of problems I'm interested in, so the *only* option is CORBA. (And please, don't talk to me about web services or SOAP ... that stuff is years away from being useful to me)

  9. UML by 3Suns · · Score: 4, Funny

    What? No mention of UML?? Together with Design Patterns, these two are making my fellow software engineers less intelligible by the minute!

    --

    -3Suns

    ~~~~
    The Revolution will be Slashdotted
  10. Hmmm... by Anonymous Coward · · Score: 5, Funny

    Technology X = Money/Success/Silver Bullet

    Illegal division by zero at line 1.

  11. Re:YIKES!!! by KillerHamster · · Score: 4, Funny

    Whats next? A front page story post with the goatse guy?

    I've been submitting those, but for some reason, they keep getting rejected.

  12. 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.

  13. Memes by BlueEar · · Score: 5, Interesting

    Richard Dawkins in his book "The selfish gene" introduced a concept of a meme. Meme is a replicator, just like gene, except that it represents an idea. It is copied by us, humans, either verbally or in writing, software, paintings, etc., and so on. Susan Blackmore in her book "The meme machine" expands on the idea.

    Now, what does it have to with "Software Fashions". Both Dawkins and Blackmore present well-thought out argument that memes are subject to similar forces as genes. As a consequence, just like in a genetic world you can have outbreaks of viruses, in memetic environment there are outbursts of ideas. Some of them are as much use as a flu virus, and until our minds develop resistance to it, they will spread. Once memetic vaccine has been developed they die out.

    Blaming software fashions on SFV is just like blaming flu outbreak on a SVV (stupid virus victim). Note that memetic fashions are common and not restricted to software. From bell-bottoms, through furbies to whatever the latest craze we have now.

    --
    A religious war is an adult version of a fight over who has the best imaginary friend
    1. Re:Memes by Kris_J · · Score: 4, Funny

      I read that book a while back. Don't worry, you'll stop seeing memes everywhere soon. Or at least, you'll be able to fight the desire to post about them once your immune system kicks in.

  14. 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.
  15. Re:In a few years... by kryonD · · Score: 4, Funny

    .NET is more like a cold than a fashion. After a while, it will just go away and everyone will feel better that it is gone.

    Makes you wonder if there is some hidden insight in calling the Linux version 'Mono'.

    --
    I've dirtied my hands writing poetry, for the sake of seduction; that is, for the sake of a useful cause. --Dostoevsky
  16. Re:Let's vote for the greatest forgotten... by WatertonMan · · Score: 3, Interesting
    C# (as opposed to the generic .NET) actually is a good language that does improve on Java a lot. One can even argue that its GUI tools are a considerable improvement over Swing.

    On the other hand one must ask whether programming in C# really is better than doing RAD in C++ Builder or even (ugh) Delphi.

    Also, while it may be a "fad" at the moment, we should remember that Java was as well for a long time. Yet Java definitely made it past the fad moment. With C# this is even more likely since it seems like Microsoft will be making Windows more and more dependent upon .NET whether we like it or not. Thus calling it a "fad" seems difficult, despite all the exaggerated hype.

  17. Re:WAP fashionable? by EarwigTC · · Score: 5, Interesting

    The savvy love WAP. I monitor every network I manage with it, created WAP-based listing searches for one of my real estate clients, and wrote a system to put our local newspaper's stories into WML. The users who know this don't hesitate to pay Nextel $10 a month more to get it.

    There's lots of useful content that can fit within WAPs limitations, and it's a snap to do. I blame the low acceptance on content creators who are not taking the tiny bit of time needed to make WML versions of their sites.

    Until the content is there, it can't become very popular in the mainstream.

    --
    Promote civility: mod down any post starting with 'ummm'.
  18. 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!
  19. 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!

    1. Re: Everything, including tools, in moderation! by GlassHeart · · Score: 3, Interesting
      Design patterns and UML were designed as practical tools, not dogma. If they help you do what you were doing anyway (and they often do), then great: use 'em. But if they don't, then don't. They're there to serve you, not the other way around.

      This is true, but note that the UML/patterns/OO newbie is in no position to determine that. One common mistake is to read the book, discard the parts you don't think is necessary, and then proceed with your design work. The rules that you chose to ignore were put there by pretty smart people, and there's a good chance they were put there for a good reason. When the design finally fails because you were missing something, the egotistical designer then blames the method.

      The point is, I think the parent post was suggesting that the programmers in question may simply have broken the rules, and not actually found some instance where the methods really apply poorly. It's ego-boosting to think that what you do is unique and beyond the reach of old stuffy rules, but the truth is that most of us are doing things that have been done before.

      This isn't to say that those cases don't exist, but that they're probably rarer than you think, especially if your team of programmers is trying it out for the first time, especially if you don't have a senior engineer already experienced in the method guiding your team. For the first time, at least, the instructions should be followed to the letter and strictly enforced. They should be dogma until you've at least went through a complete product life cycle with them.

      What you suggest we've already tried for decades. The result is prevasively poor documentation and fragile designs.

  20. Re:XHTML by Obsequious · · Score: 4, Interesting

    That's an interesting point, and one that I have been having a hard time reaching an opinion on.

    See, the hacker part of me demands that anyone who has a web page learn HTML: it's not that hard, and it's like having a driver's license -- it's a lowest common denominator of skill. I believe that if every dork with a GeoCities site actually knew HTML instead of exporting from MS Word, the Web would be a better place. So, from that perspective, XHTML is something I support -- though I support it from the sense of replacing HTML (which should die in the eternal fires of Hell) entirely. Making people learn XML would be nice, but it's too complex a thing to make "required reading" for GeoCities weenies.

    That said, you are obviously correct in that XML is the way the world should be. In fact, I did some web pages in straight-up well-formed XML coupled with CSS stylesheets, and it worked just fine. The only problems are that with current browsers, you can't use inline embedded images (Mozilla and IE don't support this) or hyperlinks (basically XPath, which IE doesn't support.) So, it looks like the Promised Land is withheld from us, which forces us to use XHTML for a while yet.

    So, as you can see, I am wishy-washy on whether I like XHTML, or if I do whether I like it better than XML.

    Of course, now I feel like I just did an in-depth evaluation of whether N*Sync or Britney will be more successful in the long run.

  21. Relevance to, well, everything by ghostlibrary · · Score: 5, Funny

    I don't know, we just tiger teamed on this same paradigm at a standup meeting, and frankly most of their suggestions violate ISO 9000 and show no facility for CMI. Perhaps if they'd used a quality circle to better evaluate their stance, they'd actually have action items that would be meaningful.

    Fortunately, we here in the business world don't have the same 'fashion trends' problem you software blokes seem to suffer.

    --
    A.
  22. The very worst fashion... by cartman · · Score: 4, Interesting

    The very worst fashion has to be EJBs.

    EJBs complicate development. Where a single class would previously have worked just fine, EJB requires up to seven (!) classes to define things like the Remote Interface, Remote Home Interface, etc. And where a simple constructor would previously have served, EJB requires a long JNDI call. Not to mention, there are zillions of arbitrary coding restrictions that must be memorized and followed for EJB to work properly.

    Furthermore, EJBs drastically impair performance. The "shopping cart" demo that comes with a major commercial app server brings my 1GHz 512M machine to its knees. Such a program could otherwise execute quickly on a 286 8MHz, a machine less than 1/1000th as powerful as the one running the EJB. I regularly encounter shops that have huge farms of commodity boxes to run very trivial EJBs that would otherwise execute on a single box just fine.

    And EJBs do not scale any better than 2-tiered systems. 2-tiered systems allow you to horizontally scale the business logic by adding commodity machines to the second tier. Adding another tier does not help this at all.

    ...For this crippling blow to development, you get to pay Bea $40k/developer. Snake oil! Very expensive snake oil!

    Software development resembles a foot race between you and your competitors, and using EJB resembles paying a surgeon exorbitant sums to cut off your left leg before the race. It costs craploads of money, it cripples progress, and it hurts!

    1. 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.

  23. 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.

  24. Re:YIKES!!! by schtum · · Score: 5, Funny

    She is more scary. I mean, she could EAT the goatse guy

    Or, she could climb in goatse guy.


    If she did both at the same time, you'd have a wicked MC Escher drawing.

  25. My personal vote for industry flavors of the week by meldroc · · Score: 3, Interesting

    Flavors of the week, past & present:

    DRM: Right now every big software company is considering it, and many of them will stop using it when they realize just how much it pisses off their customers, and how little it does to reduce piracy.

    Push content: How many of you still have a push client on your systems? /me listens for responses, hears nothing but chirping crickets.

    .NET is also a flavor of the week that will be yesterday's news once Microsoft force-upgrades their customers to the next flavor of the week.

    Cameras in every gadget, starting with cell-phones. Most people don't care enough to use them, don't want to have to check themselves in the mirror every time their phone rings, and have little use for them outside the normal uses that a dedicated camera is usually used for. In the end, it's an expensive gimmick.

    Virtual reality. Visions of William Gibson's matrix have danced in the heads of thousands of developers and marketers, but that's not going to happen in real life. The problem is that VR interfaces are far less intuitive than the good old fashioned screen full of windows with a keyboard & mouse. Can you imagine donning VR goggles & gloves to write a letter or buy airline tickets? It's just plain easier & faster to do it the way we do it today.

    --

    Meldroc, Waster of Electrons
  26. 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.