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

26 of 477 comments (clear)

  1. 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 Anonymous Coward · · Score: 2, Interesting

      Mine too. I recently had the opportunity to tear the idea a new asshole at a philosophy club meeting. In summary:

      1. There is nothing to suggest that a meme actually exists (and certainly not in physical space, as does a gene); it is just another way of looking at the concept of ideas and their transmission.
      2. Thus, it is of use only insofar as it represents the actual nature of the transmission of ideas; it cannot with soundness tell us anything new.
      3. On inspection, it seems that the actual transmission of ideas bears little resemblance to that of genes. Consider:
      - Ideas that fall out of favor do not disappear, as do poor genes.
      - People are free to choose what ideas they carry and transfer, as opposed to genes, in reference to which they are not.
      - The ideas which gain popularity are those which people find most satisfying, not those which ensure the survival of the person.
      4. The concept of a meme adds nothing to our understanding of ideas other than to foist on it unwarranted connotations of intellectual determinism specifically disallowed by point 2.

  2. lots of valid points by koehn · · Score: 2, Interesting

    The authors validate many of my own concerns with the products mentioned, although some of their predictions are already coming true:

    Rational Unified Process has contained roadmaps for XP process variants for over a year. RUPs primary purpose in life now is to keep consultants employed, although there's a ton of good stuff in there. Sorting it from the three tons of crap is why you need a consultant.

    VB.net appears to have been largely abandoned by IT, and Microsoft's not far behind. That's good, since it just doesn't fit the .Net model, as noted.

    I'm not too sure what the joke is behind local interfaces on entity beans, I thought that was what entity beans were supposed to be in the first place. The whole pass-by-value thing just wasn't going to work, even if the caller and callee were in the same VM, so how else should J2EE support container managed persistence?

    Finally, yes, Struts is bloated and needs to be either updated with something that has a smaller learning curve (like auto-generated beans and forms) or just something else (like the author's suggestion of JSF, which is probably going to be the thing for Java webapps). However, for organizing your code Struts gets the MVC thing down. It's just over-engineered for most apps.

  3. Re:Linux fashion. (should be titled flamebait) by joeldg · · Score: 2, Interesting

    but i'll bite..

    I am actually not sure why Gentoo is so popular right now.. I use it, but I have kind of specific reasons for using it (four-node openmosix cluster of boxes that need to be identical and so upgrades are cron'd to go off at the same time)..
    For the average user not really needing to sit and fiddle around with make.conf and funky masked ebuilds I would not recommend it, Mandrake is nice for home systems where you have a ton of stuff plugged into the box and need something quick that just plain works..

    I guess maybe other have specific reasons for using it..

    I would post to the forum there but that is to risk massive flames and extreme moderation. ;)

    fun fun..

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

  5. Some good points, but... by grungeKid · · Score: 2, Interesting

    These guys have some points, but I think a much better article could be written about this topic. In particular, I object to some statements made:

    Robin [...]was once asked during a job interview: "What's your favourite design pattern?" What's the correct response to that?

    I don't think that's such a stupid question, as long as it's interpreted correctly. A good design pattern, like a good algorithm, is likeable in its own right, because of it's elegance and the way it breaks down a complicated problem. Maybe the interviewer wanted to know if Robin was really passionate about programming.

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

    What libraries do C# offer that are not accessible from VB.NET? As far as I know, all C# libraries (at least those in the standard framework) are CLS compliant, and thus accessible from any CLR language.

    Because programmers didn't test that much, XP stipulates that tests must be written before the code. In other words, just because something has a weakness you shouldn't do the opposite in an extreme form.

    That's just crazy talk. Automated regression tests isn't intended to relieve those lazy programmers, in XP they're the de-facto definition of what the system is designed to. Not to mention that test-first design often leads to better design, in particular wrt coupling between classes and components.

  6. 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'.
  7. 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. 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.

  9. Re:.NET = Fashion by Circuit+Breaker · · Score: 2, Interesting

    I thought the same thing when Java was introduced. The alternatives I considered at the time were Python and Smalltalk, each having much more to offer than Java, and better implemented.

    If you think Java's popularity is a result of it's technical merits, you are dead wrong. It's popular because it was marketed as an anti-bug silver bullet to the powers that be, a bullet that is far enough from C to be bug resistant, and close enough to C that it doesn't require much retraining. I don't think it delievers on either, but -- regardless, it's still fashion.

    Like XML, even though it's bad fashion, it did get common enough that thanks to the available support, it is, in this day and age, actually useful.

    The same will happen with .NET - there isn't really anything new in it compared to alternatives, but if enough people fall for this fashion, it will actually become useful on its own, and lose its "fashion" status.

  10. Re:Come on SOAP...Come on SOAP!! by FatSean · · Score: 2, Interesting

    I was rooting for SOAP to be on their list of crap. I've had to work with it lately, and aside from the UDDI feature, I can't think of one goddamn use for it. I mean, unless your service is a commodity, each service is going to be different enough such that a UDDI search would be useless. Without the UDDI, there is no need for the common message format. I hope it dies soon. The upside is, that most SOAP toolkits expose a service bean...and you can expose that bean using other technologies...like oh...RPC.

    --
    Blar.
  11. 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!

  12. Re:WAP fashionable? by homer_ca · · Score: 2, Interesting

    I've browsed the web on a PocketPC, and it's more a half assed, almost there solution. Some sites will detect the User Agent as Pocket IE and reformat accordingly. Some sites have a mobile version that's formatted for handheld screens, if you can dig around and find the link. You can also just browse the regular full size site. It fits what it can on that little 320x240 screen. Sometimes it fits and sometimes you'll have to scroll around a lot. Speed is decent with Wifi, but I imagine CDMA or GPRS would be painfully slow.

  13. Well... by Mr.Zong · · Score: 2, Interesting

    ..all i can really do is echo the standard sentiment. Except the .NET hate. I mean, most of it's prolly justified (Though only heaven knows, it not exactly a software package/framework people cut their teeth on), but i get this feeling, mostly from using it this past couple of months, that it will be here for the duration, for better or worse. The fact that it has so much crap integrated into it, and not to mention (considering its STILL in an extremely immature stage, and its rather broad functionality) its actually one of the MOST (if not the most) stable/functional(if not practial) things ever to come out of M$, it just gives me the feeling that this is were they want to head (again, maybe not the best idea, hell maybe not even in top 100, but i digress). That, and i like my compilers/FW's to be just like me, simple (not right, not always rational, but simple ;P).

  14. Re: Everything, including tools, in moderation! by gidds · · Score: 2, Interesting
    Well said.

    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.

    UML is simply a way of describing objects and their relationships; not a way to create those things, just a way to communicate them afterwards. Similarly, design patterns are simply practical examples that have worked for people before; reusing them may save you time, and give you a common language others can recognise. That's all. The moment someone with pointy hair tries to treat them as a methodology is the moment you need to worry.

    Personally, I think the main problem with software design (at any level) is that it CAN'T really be codified, bundled into a neat set of rules and procedures to be followed. It's creative. People like to call it 'engineering' and compare it with areas of physical construction, but it's too different - whereas one bridge or building is likely to be the same order of magnitude in size and complexity as another, and have similar technical challenges, software developers are constantly dealing with new ideas, greater complexity, new techniques, and greater demands. And you can't always solve these by using the same old methods. Of course, some parts are repetitive and mindless, but some parts will always be creative (or, as Alan Turing observed, you could get the computer to do them!).

    Some people are naturally good at creative tasks, and others can grow to be so by exposure to good examples and guidane, but some are so used to making and following standard procedures, rules, and processes, that that's all they can do. In software developers, this can work as long as they're writing 'standard' software, but the lack of deep insight can lead to baroque monstrosities, unnecessary repetition, pointless layers of abstraction (or lack of necessary ones), vast bloated frameworks where little is needed (or vice versa), &c, simply because that's The Way Things Should Be Done. You can't codify insight itself.

    And in management, it can lead to the enforcement of methodologies. When things go badly as a result of the sort of developer above, it's natural to consider how that can be avoided. But the idea that software development can be reduced to standard procedures, rules, and processes, while natural for people who've seen it work in other areas, just doesn't work for software. It may give excuses to those who can't do the job, but it merely cramps those who can. Methodologies and tools can make great slaves; but they're lousy masters.

    (The Programmer's Stone is an interesting read and develops this idea much further.)

    --

    Ceterum censeo subscriptionem esse delendam.

  15. Re:"Required" email by Clueless+Moron · · Score: 2, Interesting
    UML is pathetic. It's the OO equivalent of flowcharts, which thankfully died in the late 1970's. The worst part is that as soon as the first byte of code gets written, it becomes out of date and misleading, because who the hell is going to maintain the UML fiction when there's code to be written??

    And so of course, comically, tools came along that make UML diagrams out of code. Or try.

    Absurd. As a programmer, why on earth would I want to look at a bunch of silly boxes when I could look at the source code instead, complete with comments and algorithms?? Even just vi with etags is more useful than UML.

    What? You say there are no good comments in the code? Well, then the project is Doomed, and UML diagrams aren't going to change that. In the end, the code has to stand on its own two feet, and no amount of plastered-on "design methodology" is going to change that.

    PS: I have a compsci degree and 20 years hardcore experience. If you choose to tangle with me, beware that I have a large bookcase of mostly useless fad methodology books here ready to throw at your head.

  16. WAP Dead? I think not... by joefreshman · · Score: 2, Interesting

    Interesting to call WAP dead, considering that it's supported by just about every cellphone released nowadays.

    I'm a software developer for a company that delivers solutions over WAP. We have building, health, and fire inspectors pass or fail inspectors via WAP. It's simple, it's fast (as fast it would be on the web), and it's extremely cheap (existing cell phone plan + around $5/month extra for the WAP service).

    The news that WAP is dead is surprising to me, especially because I've had meetings with higher-ups at three major cell phone providers in the past month about their continued support for WAP on their cell phones.

    I personally use WAP constantly to check sports scores, plane schedules (and departure/arrival gates), and to check on my fantasy football team.

    I also own a T-Mobile Sidekick, which is consistently reviewed as one of the best devices for web-via-phone, and frankly, compared to WAP, it sucks. It's useful for sites that aren't supported via WAP, and of course it's essential for emailing or using extensive form-based websites, but it's much faster to check sports scores and use our Inspector interface via WAP than with the Sidekick browser (or the Treo browser, for that matter).

    Currently, there's simply no substitute for WAP, and I'm glad that it's here to stay.

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

  18. 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.
  19. Re:More ignorant flamebait... by Strudelkugel · · Score: 2, Interesting

    Right, the author obviously doesn't understand .Net.

    Having coded in VB6, VB.Net, C++ and C#, I have noticed that VB editors highlight what I think represents the "language" of the future...

    (Prepare for Troll or Flamebait mod - Now!)

    Intellisense.

    As a language, I like C# better than VB.Net, but the line completion and type lookup under VB.Net make it easier to work with. Fewer typos and faster coding are the result. This is obviously tricky to do in languages where whitespace is insignificant, though. I haven't tried Python with Intellisense, but I suspect I would have the same impression.

    --
    Imagine how much harder physics would be if electrons had feelings! -Feynman, maybe
  20. Re:Linux fashion. by jon787 · · Score: 2, Interesting

    You are only viewing the Desktop side of Linux, from the server side state of the art isn't always good and when Debian says stable, they really do mean it. Unlike Red Hat which shipped GCC 2.96 and called it stable. Mandrake shipping with a kernel that wasn't even released yet. The list goes on.

    The Debian package format is not deprecated, when I first started using it APT was far superior to RPM, although RPM has gained ground since then.

    If you don't want "ancient" packages upgrade to testing or unstable, they are actually quite stable.

    Gentoo is actually really good if you want that last bit of performance out of your system and are willing to take the effort.

    --
    X(7): A program for managing terminal windows. See also screen(1).
  21. Re:More ignorant flamebait... by boatboy · · Score: 2, Interesting

    I was going to have to post this if someone else didn't. VB.NET and C# are both languages that compile to Intermediate Language, which runs on the Common Language Runtime. Common, as in, all languages have these libraries in common. As for Microsoft dropping it, that's debateable, especially in apps like Excel, where it serves as a scripting language that novice users can pick up to, say, tie in a web service- <sarcasm>assuming they don't go "out of style" like XML and Java. </sarcasm>

  22. 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)

  23. Classic fads by Animats · · Score: 1, Interesting
    A few classic, now almost forgotten, programming fads:
    • Decision logic tables. (An early attempt at table-driven programming.)
    • The Kepner-Tregoe method (One of the earlier management fads.)
    • Single entry, single exit coding. (Popular with people who blither about formal methods in programming but haven't actually done proof of correctness work.)
    • Hungarian notation. (Once upon a time, C didn't check types.)
    • The CODASYL DBMS. (Read up on this if you're looking at "object oriented databases". Explicit linking was tried in the 1960s. There were problems. Find out what went wrong the last time around.)
    • Machine-processable comments. (UNIVAC had this in the 1960s; flowcharts could be generated from suitably commented assembly code. This idea keeps coming back as PerlDoc, JavaDoc, "literate programming", etc. But it never really works when the programming language and the comment language are disconnected.)
    • Compilation into a stack machine form interpreted in software. (SNOBOL, 1960s. Slow. USCD Pascal, 1970s. Slow. Microsoft P-code, 1980s. Slow. Java, 1990s. Slow.)
  24. Re:Collections. by jfengel · · Score: 2, Interesting

    For the most part you should substitute the JCF HashMap and ArrayList, which roughly replace Hashtable and Vector with non-synchronized versions (which add overhead which is frequently unnecessary).

    The poster might be referring to the fact that the routines tend to provide Objects instead of strongly-typed objects, which leads to so much casting that I do frequently end up writing specialized collections classes just to avoid the cast. JDK 1.5 (when and if) should have a new collections framework designed to solve that problem.

  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