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