Software
Sean
picasso@madflower.com
Fri, 9 Mar 2001 13:40:07 -0500 (EST)
Buy a Mac =)
On Mon, 12 Mar 2001, Edward Glowacki wrote:
> I will now make a blanket statement to which there are exceptions,
> but for the most part is entirely true. There are some important
> points in here, plus my usual style of humor, but I *am* entering
> rant mode here. Forgive me...
>
> Software sucks.
>
> And now the justification for that statement (aka, "The Rant")
>
> In a day where we have 1.5Ghz processors, software development
> travels at the speed of a dead tortise. Take for example the
> saviour of all web browsers, Mozilla. Granted, it's still "beta"
> (and has been for how many years now?). Netscape was a released
> product and had the same problem too. It crashes. *KABOOM* No
> warning, no catching itself on the way down, one wrong move and
> your dozen important browsing windows all disappear, leaving
> you staring at your desktop wallpaper.
>
> Now, the only conclusion I can draw from this information is the
> following: Every software ever written has the following code loop
> embedded in it (written in psuedocode for simplicity):
>
> #define haha_how_long_should_the_pathetic_user_last? 10000
> start
> starting_clock_cycle = fetch_current_clock_cycle()
> offset = random(haha_how_long_should_the_pathetic_user_last?)
> while(starting_clock_cycle + offset > fetch_current_clock_cycle() ) {
> function_normally()
> }
> crash()
> end
>
> As you can see from this example, every program will crash, it's
> just a matter of how lucky you get with your random number offset.
> Now keep in mind, it doesn't matter if your program is doing anything
> or not, as other programs will increment the CPU's current_clock_cycle
> counter. Thus, the faster computers go through cycles, the bigger
> programmers have to set their offset in order for any work to get
> done. Programmers aren't keeping up. Therefore, when I start
> Mozilla, I hardly have any time to browse before I pass that
> threshold and make it to the crash() line... Ahhh, now you can
> see my frustration!
>
> I'm back, just returned from a quick jaunt to another window, and
> I'll be damned if Mozilla didn't crash again when I clicked on the
> little X in the corner of the window to close it.
>
> Software sucks.
>
> A funny story, I was flipping through channels the other night,
> and I think it was the MSU channel (channel 17 on Lansing AT&T
> cable) that was proudly displaying a blue screen of death!!! Now
> I can't imagine a program that does something simple like a slide
> show (with some cheesy fades between slides) behaving in an unstable
> manner, one would think it would be pretty easy to debug. Of
> course, I'm not blaming the slide show, it could have been anything,
> it's Windows after all. But the point is, here I was at home
> looking at someone's crashed software on TV. Now I realize they
> put a lot of worthless shit on television these days, but I really
> don't need to go home after a long day of dealing with worthless
> software and sit down on my couch to stare at the output of more
> worthless software.
>
> Software sucks.
>
> I think I might know why software sucks so bad. It's a couple of
> things really.
>
> First is that not everyone that writes the software I end up using
> is a professional. Part of that is due to the open source philosophy,
> where anyone is able to submit a patch, and if it works, cool, a
> problem has been fixed. But the code base is so diverse that not
> everything gets tested properly, and so bad things start to happen.
> This is not to say that all non-professionals can't write good
> software, just that I think a lot of software is written by
> self-taught hobbiests scratching an itch.
>
> Second is that professionals can't code either. (By professionals,
> I'm referring to "has graduated college with a CSE/CPS/equivalent
> degree.). You don't learn much about software development in
> college computer science classes. Yeah, you have projects to code,
> but they are generally small and are designed to teach you a subset
> of some larger concept. Write a program that sorts numbers, write
> a cheesy shell that accepts 3 commands. Oh, and if it crashes when
> you pass it more than 10 arguments, that's 1 point off your grade.
> Don't bother fixing it though, because we don't have a development
> cycle, we just write-once-and-throw-away our code here. I could
> rant on this a while longer, but I think what I've already said
> will suffice.
>
> Third is that users don't seem to give a shit that their software
> sucks. Even I, who seems to know better, have been trained to use
> shotty software and "just deal with" the crashes.
>
> Fourth is that there is no accountability in the software industry.
> If a car manufacturer sells cars and a problem is discovered, they
> issue a recall to fix it, "Such and such a car explodes when hit
> in the left rear quarterpanel by the gas tank, bring it in if you
> want to live." If a software company sells software and a problem
> is discovered, fuck the clients! They signed away their souls when
> they busted the shrink wrap and threw the EULA on the floor. If
> software in someone's pacemaker bluescreens, that's too bad.
>
> Fifth is that software is written by geeks for geeks. Very few
> products (be it an OS, a piece of software, a web site, whatever)
> are designed with any significant user testing, other than testing
> on other geeks. You end up using stuff that's cryptic and has
> plenty of "cool stuff" instead of stuff that's easy to use and has
> the stuff you need.
>
> Sixth is that software is written for the management. "Hey, that
> flash animation and JAVA on your home page rocks! Fuck the user
> if he/she can't get to any useful 'content' or get any work done!"
>
> Seventh is that users don't give any feedback. How many times have
> you personally written to a software author and said, "Hey, when
> I do this and this, your program produces funny output."? I've
> done it a few times, but not enough. I've more often suggested
> enhancements or ways to do things differently to make them work
> better, but even then, I could have done more.
>
> Eigth is that software writers prefer to copy rather than innovate.
> When was the last time you saw some really innovative software?
> A good counterexample to this statement are Zope, which I think
> is pretty cool. But take web browsers. Mozilla looks and acts
> almost exactly the same as NCSA Mosaic did when it first came
> out. Sure, it can read email and news now, and it can WYSIWYG
> edit some HTML, oh, and you can use different skins on it so that
> it looks perty, but it's still a web browser, and it still is the
> same as it used to be. And basically all the other browsers
> use the same format, the same button bar, the same everything.
> Also look at the way Windows copied the Mac interface (poorly),
> and now GNOME and KDE are copying stuff from Windows.
>
> Ninth is legacy software. I'll be damned if your 20 year old
> program, written for MS-DOS 3.3, won't still run on your Windows
> 2000 box. Which means there is *how much* code being dedicated
> to that compatability? X windows, which draws everything as
> if it were over the network, which is really cool for remote
> display but bites the big one for local machine performance.
> But it's the standard, has been for 20 years, gotta use it.
>
> Tenth is documentation. Written by coders presumably for the
> general populace, though it never seems to work out quite right.
> This is of course only if they bother to write any docs in the
> first place. You can't figure out that you need to hit
> ALT-SHIFT-CONTROL-ESC-NUMLOCK-NUMLOCK-LEFTCLICK to use that
> feature, why not, it was in the... oh shit, I never wrote
> that down anyware... Sorry dude, fuck you, grep the source
> if you want to figure it out. (actually some source code
> has really good documentation in it, in addition to what's
> in the manual.)
>
> Eleventh is lack of vision. Or more precisely, lack of
> a plan containing the intermediate steps between where
> one is at and the vision, which itself rests on the X axis
> at infinity. There are some really cool things out there,
> and some of them actually work, but most of the time they
> fall grossly short of their expectations. The idea comes,
> the code follows, the redesign continues indefinately to
> fix what should have been done right to begin with.
>
> Software sucks.
>
> Hmm... That was pretty long... and very crass, I usually don't
> swear in email that much. I guess Mozilla crashing so many times
> in a row put me in a bad mood. Well, if you made it this far,
> thanks for reading. And if you didn't, I feel better anyways having
> written it. I'm thinking of editing it, cleaning out the garbage,
> filling out some of the ideas, and submitting it to Slashdot or
> something. Think it's worthy or think it's crap, send me some
> feedback... =)
>
> User in agony,
> ED
>
> --
> Edward Glowacki glowack2@msu.edu
> Michigan State University
> _______________________________________________
> linux-user mailing list
> linux-user@egr.msu.edu
> http://www.egr.msu.edu/mailman/listinfo/linux-user
>