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..."
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
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.
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'.
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?
... 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.
But the point is the frameworks. Finally Microsoft have solved the 'framework that sucks' problem by
Dave
I write a blog now, you should be afraid.
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.
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!
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.
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.
.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.
Now I'll admit that there are some areas of
I am a leaf on the wind. Watch how I soar.
But missed CORBA! Surely it belongs in the Technology X != Silver Bullet category
.
;)
... that stuff is years away from being useful to me)
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
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