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
>