Software [sorta OT]

Mike Szumlinski szumlins@msu.edu
Mon, 12 Mar 2001 22:39:26 -0500


Speaking of which, if any of you are students and interested in a part time
job working for Apple as a campus sales rep, we are hiring in April (I
believe). If anyone is interested, send me a copy of your resume and I'll
put it in. The job pays $10/hour, 15 hours/week and has some fun perks. Just
figured some might like to know. If not, just delete this message

-Mike

On 3/9/01 1:40 PM, "Sean" <picasso@madflower.com> wrote:

> 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
>> 
> 
> _______________________________________________
> linux-user mailing list
> linux-user@egr.msu.edu
> http://www.egr.msu.edu/mailman/listinfo/linux-user

-=--===---===---===---===-=-
|Mike Szumlinski           |
|Michigan State University |
|A26079565                 |
-=--===---===---===---===-=-
"The future is no place to place your better days" -DMB