Michi Henning on Computing Fallacies
Karma Sucks writes "Check out this summary of a keynote at Linux.conf.au by Michi Henning of CORBA fame. It really hits the nail on several points. I especially liked the point about people constantly rewriting letters in these modern times, as opposed to say 1945 where it just wasn't worth the pain of re-typing a letter. The only point that didn't made sense in this summary was the one about "source code being useless"."
My trolling career is ruined now that I can no longer page lengthen in the way that I used to!
Vintage computer games and RPG books available. Email me if you're interested.
Fallacy 10: Open Source is the Answer
;)
- Economic model is doubtful
- Source code is useless
- Motivation for Open Source is inappropriate for most software
- Nerd culture is counter-productive
I'd like to see him come here and say that.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
"Fallacy 10: Open Source is the Answer
- Economic model is doubtful
- Source code is useless
- Motivation for Open Source is inappropriate for most software
- Nerd culture is counter-productive
We write software for peer recognition. We write fancy structures because 'it's cool', but not particularly useful."
This is wisdom for the ages, here. Seriously. Don't write software because 'it's cool'. That only leads to burnout. Write it for money. At least you get something back and don't ruin the market for the rest of us.
Let me introduce you to a friend of mine. M$ paperclip. Eyes start to follow
Michi as he walks back and forth across the stage. [Histerical laughter]. It's
in principle a really good idea, something that monitors your progress, but when
it starts to interrupt your work, by telling you a joke, it is ethically wrong to
release this to millions of people.
Well, I wouldn't go as far to say it's "ethically wrong", but Clippy is a major annoyance, and I refuse to use him, even though the rest of the office does.
If he annoys you, turn him off. If you couldn't disable him, now that would be ethically wrong!
Penicillin - 1920's technology
Iowa/Yamoto class battleships - 1920's technology
Apollo moonrockets - 1940's with a dash of 50's
Polio vaccine - 1880's with a dash of 1940's
Transistor - 1930's
Bulk transport system, rail - 1860's
Bulk transport system, car/truck - 1920's
Airplane - 1910's
Fast airplane - 1950's
Yup, makin progress fast.
sPh
Isn't providing the proper contexts for sarcasm vs. genuity (is that a word? it should be.).
> Nerd culture is counter-productive
.. very creative, with a propensity to desire to push boundries. Their influences may not be approrpiate for the masses, but they lay the frame work for those who compute and program (or write pop and rock) to achieve practical purposes. Practical people see no value in thinking outside the boundries of current methods, but are more than happy to stand on the shoulders of those that do (as well it should be.)
Nerds are the computer equivilent of the Enos, the Yoko Onos, the Peter Gabriels
Whats wrong with different people born for different goals? Even if you don't directly contribute the masses, most changes in fundemental social systems (and technical systems) starts with someone rejecting the norm. As well it should be. Leave them alone and let them nerd!
"Old man yells at systemd"
It really hits the nail on several points.
I like my metaphores stirred not mixed.
Sure, that's what we need, pandering politicians legislating software development, no thanks.
Fallacy 9: Programming is About Date Structures and Algorithms
I'll agree here, although I see it most in database design. With the advent of such super-fast DBs such as MySQL there has been a FLOOD of horribly written applications that utilizes them. For instance, you'll see every column defined as CHAR( 255 ), or every table prepended with AUTO_INCREMENT columns even when they are not necessary. Indexing is poor or non-existent, and tables are horribly in need of normalization.
Some finer points in design; I see some stuff like this a lot as well:
function bob( varlist ) { $var = $joe + 12345; return $var; }
You're wasting memory and such for the variable declaration and assignment, simply return $joe + 12345;.
Fallacy 12: We are Making Progress
- Progress in quality assurance has been remarkably slow
I used to work in QA for a software company and I wouldn't say that I was the worst programmer there, but I think the problem is that 90% of the QA staff WERE NOT PROGRAMMERS or didn't have access to the source. Basically, QA reports bugs, they go into the queue, and then a developer, if they have the time when compared to all their code development, meetings and such, may have a chance to get to the bug. It would be nice if the QA staff, who may have software programming skills, would be allowed to be developers as well (e.g. all the rights of a developer but QA is their main focus). They attend the same dev meetings and such which gives them the insight to the architecture to allow them to fix bugs which have been approved by management.
So in effect, have two programming teams.
Thanks,
--
Matt
but now is ok for ppl 2 put 42 typos in inrnet msg & hit submitt
Well, that is redundant. But even so, it make me think of the book, "Sex for dummies" which gave me a whole new perspective on RTFM.
Fight Spammers!
From the article:
"The best UI people on the planet are those working in the car industry.
We need to make it a criminal law to change certain API's. There are potentially
huge impacts. When we produce a new drug, we can't just release it to millions of
people without some sort of testing."
yeah, but how long should the testing cycle be? For example, we hear all the time about drugs being recalled because of illnesses caused by its use. Beta testing is a great way to do this, however, even then you can't know until your program is running on a lot of machines in different environments, with different variables.
So, what can you do? Well, you release the software after doing as much testing as possible, and wait to see the results...then patch, patch, patch..which is the way it's being done now. That's why early adopters know (or should know)what they are getting into, and why most of the companies I have dealt with, (running win2k) waited for SP2 to come out before upgrading.
Or, you could establish some sort of body, like the FDA does, that tests the heck out of software for a while before shipping. Problem with that though, is that by the time it is approved, its obsolete.
Other than that, this was a most excellent read.
Sent from your iPad.
If you found some of his earlier points interesting, you may want to read the 1995 book "The trouble with computers" by Tom
Landauer. I think its kind of controversial, but he points out that a lot of the promised and perceived productivity gains due to computers have never come about.
"The only point that didn't made sense in this summary was the one about "source code being useless"."
Source code *is* useless to about 99% of the people that use the program. My aunt Benita isn't going to track down a Microsoft Word bug and fix it even if she HAD the source. She wouldn't care - she'd just wait for the update. So in that context, the source code is useless.
Where the source code does become useful is in the hands of developers, but for users it's just another disk of stuff they get in the package that they'll never use.
----- rL
Forgetting all the myriad reasons source code is useful, the one best thing about getting source code for your product is: it's the ultimate documentation for the program.
I always look at the source code when trying to solve a problem. It's like a reference manual written in a terse language that doesn't slow me down.
It's like including schematics with a piece of test equipment. Why bother with the manual when you can just look and see EXACTLY what that button does and how.
Source code may not be useful to users of software, but to the coders and people doing the actual work, it is a tremendous productivity boost.
No, it didn't make much sense...not to someone simply sitting down and reading it. However, if you were to imagine someone standing on a stage, going through slides, making quips or whatnot... Then it makes perfect sense. It reads like a presentation.
As far as source code being useless... Let me ask you - how many times do you actually go through the code itself and change things? I would be willing to bet that most people here simply download, unzip, untar, make, make install and go on with their lives. If this is even 70% true, then actually *having* the source code IS useless. The only reason you have it is so that you can 'make install' to the path of your choosing. That, in and of itself, is not the reason the source code exists.
Having said that, I disagree with his blanket argument. He should have quantified it somewhat, because some people *do* look at the source code. Some people *do* make additions, and some people *do* feel more secure having it available in case something goes awry. I certainly feel more secure knowing that there is a body of peers overlooking every code change that goes into Our Favorite Operating System (tm). Do I use it? Not usually - most of the time I apt-get install [the binary]. But I like having the *option*.
GIR: I'm going to sing the Doom song now. Doom doom doom doom doom doom de-doom doom doom doom doom doom doom...
Wow, that only stings if you don't understand the sarcasm/cynicism he is using throughout the lecture.
ARE YOU PEOPLE BLIND OR JUST UNINTELLIGENT (this includes the people who have mod'ed these stupid comments up)...
A good word processer is NOT "all you need" and source code is NOT "useless"
I know Microsoft Excel certainly helped me show the CEO of Megacorp how to accurately predict sales of black dildos
The best UI people on the planet are those working in the car industry. "
So the people that brought us spoilers and racing stripes should be desinging my OS?
Oh, and the author transcribes 'M$ paperclip' - Did the presenter actually talk about 'Emm-dollar paperclip' No? Then don't write it like he did.
Some (occasional) interesting points, but really nothing that hasn't been mentioned many times before by anyone who's ever used a pc.
I rate this article C- Trite.
Nerd culture is counter productive??
Hello?... 'nerds' are the whole impetus behind the electronics industry. Without nerds wanting to show off with faster processors, cooler video boards or better OS's a few billion dollar industries wouldn't exist today.
Hell, Star Wars would have earned $1.50 at the theater without nerds creating the cult that propells it. Nerds created pong on a friggen mainframe just to goof off and sparked the video game industry, quickly gaining as the most widespread form of mass entertainment on the earth.
I am nerd, hear me calculate!
Even if what you assume is true is: sourcecode is still quite useful. The tarball still remains the most effective package management system with much more sophisticated dependency management than any binary packaging system.
This is why on even x86 Linux systems source tarballs are still used. They can be remarkably less trouble than binary packages for smaller applications.
A Pirate and a Puritan look the same on a balance sheet.
If we make innovation illegal, only Microsoft will innovate.
That's a really interesting summary of what looks like a talk I would have liked to have attended. Of course, a lot of the points were matters of opinion, and I disagree on some of them.
Fallacy 1 (Computing is Easy) I think is spot on. I shudder when I see some of the "For Dummies" titles out there now.
Fallacy 6 (Computers are Getting Faster), I would have to say I disagreed with him on. Sure, my desktop boots slower than my old 386 from 10 years ago. But my Handspring Visor has more memory and boots instantly. Web pages load faster with my DSL connection then they did over my modem (where could you get that 5 years ago?) Most of my compiles are shorter than they were 3 years ago. Sure, people tend to put bloat in, but Moore's law is still wining overall.
This ones really a quibble, but a subpoint of Fallacy 7 asks "How often do you need to do a Fourier transform?" I don't know if it's need per se, but I kind of like some of the music visualizations that use a whole bunch of frequency domain stuff.
One of the subpoints to Fallacy 13 (The Industry Knows where it's going) is
"There haven't been any new ideas in a decade"
My response
"There is no new thing under the sun"
--Ecclesiastes
That said, he certainly seemed to bring up a lot of food for thought. Do you think he'd be willing to do a Slashdot Interview?
Don't forget about the Nukes!
Kris Felscher
We've got enough youth, how about a fountain of "smart"?
Cynics unite! We have a new leader, and he's more grumpy and skeptical than all of us combined!
"This talk is an hour long bitching session for everything that has annoyed me in the last 20 years."
Rock on!
If you celebrate Xmas, befriend me (538
Fallacy 10: Open Source is the Answer
- Economic model is doubtful
- Source code is useless
- Motivation for Open Source is inappropriate for most software
- Nerd culture is counter-productive
We write software for peer recognition. We write fancy structures because
'it's cool', but not particularly useful.
If this were a Microsoft developer conference, would you expect a keynote speaker to stand up in front of thousands of Microsoft employees and users and claim that Microsoft is a monopoly, produces insecure and unusable software and only cares about money, not its users? One would expect a security team (think 2-metres tall and muscular, not securityfocus) up on that podium to carry the infiltrant off stage pretty quickly. More likely, it just wouldn't happen. I'm certain Microsoft puts millions just into screening the opinions that are expressed during its conferences, written on its website or posted on Usenet by its employees.
I think the Linux community's willingness to listen to criticism before (perhaps sometimes vehemently) counterarguing is one of its greatest strengths.
I don't agree with what Michi says towards the end of his keynote, but I doubt the organisers of GUADEC will cause too much of a fuss about it (perhaps they will ask him once or twice if he _really_ thinks Open Source is no good for production software).
I was under the impression that startup time has actually been made worse by hardware.
Specifically, if you run SCSI it takes ages to probe.
So don't blame software when all sorts of broken hardware runs around screwing up standards and taking forever to plug and pray.
To me the best word processor ISN'T Word, Wordpad maybe but not word. In my opinion the best software isn't the one that has the most features, but the one that does it's job the best. I don't use a web browser to make spread sheets, I don't use a spread sheet to write a document, and I don't use a word processor to browse the internet.
.txt and break out notepad. Notepad doesn't think it knows better than me, it just does it's job.
As soon as you try and integrate everything you end up with a horn button in the glove compartment and a gas gauge on the steering wheel. Look at the car stereo market, the aftermarket has alot of wonderfully complex stereos that will do everything, but what do 90% of cars have? The factory deck that is simple, well layed out, with easy to use controls. Can you think of anyone who hasn't programmed thier clock on thier VCR? I bet you can think of someone. Maybe that's why some VCRs now set thier own clocks.
If I could change one thing about MS software what would it be? To disable the f'ing autoformatting! They say you can do it, but it doesn't. Here I am rewriting a document for work and what is step number two? Save it as
When you consider how much paperwork is generated in an effort to yeild the paperless office you'll realize that it's possible to build a house with the amount of paper that is used by a medium office every year. Maybe paperless isn't the right way to go? Has anyone ever looked back?
Sometimes the past holds the future.
If you think education is expensive, you should try ignorance -- Derek Bok, president of Harvard
...would consider the incomplete notes someone took at a keynote address to be news.
sPh
Now, try to prove your point by naming some post 1946 advances. Be sure that your choices are just as significant and far reaching as the pre 1946 ones that you have listed.
I remember that before powerful Pentiums,
my code would take hours to compile on RISC
systems with all the optimizations turned
on. The same compiles now in about 1 minute
on a Pentium (and is way faster).
I perform Fourier analysis about once a month.
Once an hour at some point in my PhD.
I used chained lists, and graph theory,
which I learned about in school,
in a molecular dynamics
code.
but *AHEM* I am not the average person
either...
Google passes Turing test : see my journal
Wild guess, and if right I don't know why removing the link would fix it, but if fast save is on and you are doing a lot of revisions, deletions, etc., you can easily bump up a file's size because fast save never actually deletes any of the text you delete. Makes it easy to recover someone's first draft, which has been done.
No way it should have been over 2 megs though.
Cheers,
Ian
Fallacy 1: Computing is Easy
/etc/conf hacker, not someone working in an office relying on Word to get the memo done.
.NET. These are true advances in computing complexity and it is a continuing process.
well, actually it IS easy to learn syntax. This fallacy is just sniping at inexperience. No one teaches you how to write great code, even the greatest C hackers learned their loops one at a time. And, most of the rationale behind spaghetti code nowadays is due to extreme commercial pressure, not any lack of aesthetic sense.
- Teach Yourself C++ in 14 Easy Lessons
- Brain Surgery in 14 Easy Lessons
its completely arrogant to equate Brain surgery to C++. For one thing, lives are not at stake. This analogy is delusional with extreme grandeur.
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise
As a matter of fact, they DO empower us. With Word I can do mass mailings in an hour, instead of all day. A great word processor will do a lot of the annoying things like spellcheck and thesaurus and automatic formatting of headings and footnotes and equations - which used to be a severe drain of time. A great spreadsheet lets you analyse numbers with impressive ease - ask any accountant how much the spreadsheet has transformed their parctice. This power of analysis has allowed professionals to actually expand their business instead of being mired down in drudgery.
Fallacy 3: Computers Increase Productivity
yes, they do, if used with discipline. See above. The idiots who waste all day adding sound effects are the same ones who in eth 40's used to while the day way lobbing sharp pencils into the ceiling. Procrastination has evolved with technology but is essentially the same.
the point about typos in letters written in 1945 illustrates the opposite point.
quote: "Nowadays, we rewrite the letter many, many times, changing fonts, format etc.
We are no better off in terms of letters produced."
really? you call a letter produced with no typos, "no better off" ? and all of the ways we can edit documents today, can be done effortlessly. The default templates that come with Word do all of this already. Its only the "power users" who seem to obsess like that, when people who actually use computers daily for their profession simply get the work done.
Fallacy 4: Programs Help Their Users
true, software companies try to ensnare their users. Also true that DVD makers try to snsnare their consumers, that groceries and airlines and car salesmen all use deceptive marketing, schemes, and even planned obsolescence to suck your wallet drier. You shoudl blame capitalism, not computers.
Fallacy 5: If It's Graphical, It's Easy
the vast majority of GUIs make simple tasks much easier. If you think that arcane text codes and comands are easier than just clicking the Underline button, then you're a
with a gui, you dont NEED to be a "sysadmin, programmer, typesetter, etc." to get work DONE. You just get work done. In a CLI you have to be all these things and more.
also, the paperclip has NEVER interrupted me to tell me a joke. Document the allegation!
Fallacy 6: Computers are Getting Faster
yes, they are. NO software I can buy today can really tax my 2 GHZ Pc, not even the most bloated WINXP install. My Pentium DOES boot faster than my old 386, Word loads in a few seconds, my web page is limited by my dial in connection (which i am forced to use because of monopolies and lack of regulation in telecom, not because of any computer issue). Its obvious that a Pentium 4 compiles faster than a 486, and the programs of today have more functionality anyway. EVERYTHING took FAR LONGER 5, 10 years ago.
Hardware is SO FAR AHEAD of software that only Id Siftware can really claim to have tested the metal. And can YOU tell the difference between 100 and 200 fps ? NO! stick your head out of the benchmark app!
Fallacy 7: Programs are Getting Better
Yes they are. True many obscure functionalities are barely used but they are there - and they barely slow things down in todays 2 GHz age.
I dont buy the anecdote about a single hyperlink inflating a 800K document to 2.2 MB. I just tried it myself, but taking 800 K of raw text and pasting it into Word. Then i added a link. The file size difference is negligible, but dont take my word for it, TRY IT YOURSELF! And then stop propagating foolish incendiary lies.
Fallacy 8: Programmers are Getting Better
well, if they all bitch and moan like this, maybe this really is a fallacy. But, I doubt it. Most of teh programmers I know are able to switch between languages and adapt to different environments. Most old time programmers are surgically attached to the Language of Choice for them and will never change. Look at the quality of coding being done on the Linux Kernel, in Oracle's 8i, in Windows'
BTW, ANY student who majors in CS will know what a core dump is, dont be alarmist. Any student who isnt CS, has no reason to know. So what?
the jab about knowing how to write excel memos being a mark of qualification is just arrogant snobbery. And the average retention time is from the dotcom boom, it surely isnt true anymore. YOu have a problem with people cashing in on their skills while they could?
Fallacy 9: Programming is About Date Structures and Algorithms
this is an extremely provincial accusation - probably better to just nod and agree with you rather than set off a religious war.
Agreed that programmers are not taught to design. Well, who taught you? If experience sufficed for you to become a self-declared expert, then it will suffice for others also.
Fallacy 10: Open Source is the Answer
The Answer? The Answer to what? with apologies to DOuglas Adams, first off you better figure out just what the Question is!
Don't blame me - I voted for Howard Dean. http://dean2004.blogspot.com
He claims:
99% of all documents are written to be printed on paper.
Hell, no! 99% of documents (besides programs) I write are emails.
I'm not nitpicking, this is a major flaw in the argument.
Some finer points in design; I see some stuff like this a lot as well:
function bob( varlist ) { $var = $joe + 12345; return $var; }
You're wasting memory and such for the variable declaration and assignment, simply return $joe + 12345;.
Well, when you simply return $joe + 12345, the complier creates a variable of the same type as $joe, gives it the new value, and then returnes it, negating any hoped-for savings on memory.
PUBLIC SPLIT ON WHETHER BUSH IS A DIVIDER -CNN scrolling banner, 10/15/2004
It amazes me how quickly people that have anything to do with computers like to declare them obsolete.
It reminds me of the guy who had an old 68k Macintosh running Word 5.1. He knew how to use it and it did everything he wanted it to do.
One day the IT people at his company took his mac away and gave him a new PC because the mac was "too slow" Well, what happened?
First of all, he was not familiar with the PC or with the new features availible in Word. Second of all, many of these new features were more annoying than useful, especially when the newer version of Word autocorrected something that didn't need correction. Also. considering that this new, more complex software is both more demanding of hardware and more prone to bugs, He found that his new system was slower than his old one and more prone to crashing.
So, why again was that Mac obsolete?
The assumption here is that open source programmers don't write software because they need it. "because it's cool", my ass.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
But I've been lucky, everyone I've had to support in creating huge, complex documents has been using Quark or Framemaker so I haven't seen the ballooning effect of extensive formatting in Word.
Veteran, Bermuda Triangle Expeditionary Force, 1992-1951
"Computers Allow People to Do things They Could Not Do Otherwise"
How is this a fallacy??...He cites perhaps the handful of examples in which it may NOT be true, but leaves out the seemingly unending numbers of examples in which it is in fact very true.
- Telephone switching
- All the sophisticated computers running those F16s we see in Afganistan
- Power grid / sewage / water / gas control (in most areas)
- The entire Internet
- The level of visual effects in movies
- Computer and video games
- Thousands of different manufacturing processes that need to be computer controlled to get the level of accuracy needed
- Protein folding research
- and so on...
> Penicillin - 1920's technology
When was the last time you had _penicillin_ prescribed?
> Transistor - 1930's
Try wiring 200 million of those together.
> Bulk transport system, car/truck - 1920's
I dare you to drive a 1920's model car exclusively for a year.
> Yup, makin progress fast
Open your eyes! Your metric for measuring progress is somewhat unrealistic.
-- Adam
If you have anything to do with designing any sort of interface to any sort of product (be it a piece of hardware, a piece of software, a widget, whatever), you should read this book. It will open your eyes.
"The only point that didn't made sense in this summary was the one about "source code being useless"
It would have been better, perhaps, to say "for most users, source code is useless."
I remember when I was first getting started, and I head about Open Source. "Hey, cool, I can teach myself to write a word processor!" The truth, though, was that I couldn't. The code to any non-trivial program is going to be very hard to follow if you don't have someone walking you through it, or loads of time to work it through. And that's if you're a programmer. If you aren't, all the source code is good for is taking up space on your hard drive.
Thomas Galvin
It seems to me the general point of this speech is not to make precisely correct statements, but to challenge your assumptions. And the general usefulness of source code is an assumption that should be challenged.
I'm a huge fan of open source, and more importantly free software, but the fact that successful open source projects exist does not mean that releasing any pile of garbage code will produce positive results for that project. The obvious example is Mozilla - the original release of Mozilla was a festering pile of spaghetti code. The Gecko project looks much better (can you say "focus"? A sharp kitchen knife is much more useful than a dull Swiss Army knife)... but Netscape could have built Gecko as an open source project without opening up the crappy Netscape 4 code, harming their reputation, or stalling badly-needed bugfix releases of Navigator.
While I think many of his fallacies have some truth to them (and I find them amusing), I think that his arguments only apply to business, or more specifically, they DON'T apply to a lot of areas where computers have revolutionized the way people do things, for example, in music composition, graphic design, scientific research, etc. - not to mention communication.
Let's consider Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise. This is not a fallacy, it's true. As an amateur composer, I can compose and print a piece of music in a tenth of the time it would take me to do by hand. I am not taking advantage of any automatic composition or any silly A.I. technology. I'm just taking about using Finale 2000 to enter in the notes using my MIDI keyboard, edit them quickly with the mouse, and listen to the result through my speakers to make sure I didn't make any musical "typos".
How about scientific research? Scientists now have amazingly powerful tools at their disposal. I know plenty of people who do need to perform a Fourier analysis on a daily basis (see Fallacy 7) and for people like this who are leading experts in Physics but know little about computers, a book like "Learn Matlab in 21 days" is all they need. I agree that you can't become a good DB programmer or QA person by reading a quick book or studing at DeVry, but most people who use computers aren't programmers and don't need to be.
While we were taking about scientific researchers, clearly "Computers are Getting Faster" is NOT a fallacy for them!
Finally, what about the Internet? Yes, the dot-com bubble bursted, but note that all major companies still have websites. It's silly to even consider a company not having one. E-mail definitely allows you to do things that weren't possible (or at least weren't realistic) before, like collaborate on a book or article with someone who lives halfway around the world.
Also, statements like "Programmers are Getting Better" are hard to really analyze. One problem is that there are hundreds of times more programmers now than there were twenty years ago. As a natural consequence, the average level of expertise has gone down a lot. But the best programmers today are a lot better than the best programmers twenty years ago - because they're building off of the best ideas of the last twenty years. And there's no question that even below-average programmers are far more productive today than below-average programmers twenty years ago, simply because there are more high level tools available to them. People who write Visual Basic scripts for internal company programs may be very poor programmers, but if they can get the job done, who cares?
< / RANT >
Sorry. Computers have definitely made my life better, and have enabled me to do many things I never could have done without them, so I get upset when people try to argue that computers suck and that things are basically the same as they were before computers.
"Read the fucking manual"
Oh, you mean the Kama Sutra?
It doesn't mean much now, it's built for the future.
It's not counterproductive to have people pushing the envelope, it's counterproductive to have people outside of the mainstream dictating to those in it what their needs are.
Despite advances in UIs, computers are still designed as general-purpose hobby devices, rather than for the specific functions for which the majority of their sales are used. When users complain that it doesn't make sense to have to log in to a system or to "start" a word processor, or to "double-click" to "open" a file through a graphical icon, they're simply told that they don't understand the technology. Same when they have to figure out [to avoid being scammed] what kind of RAM they need with their new P4 processors.
The point is that for products to be useful and effective, they need to be designed with more consideration for the needs of the user; and much of the time, that which is "neat" to enthusiasts has held sway over design at the expense of what would be useful [see featurebloat].
BTW: impractical thinking is not necessarily visionary. It might just be impractical.
Larsal
There's probably a benefit to having source code publicly available, but most people only want, only need, and should only have to deal with code that executes.
Michi Henning has given his Computing Fallacies talk several times in various venues in the last few years.
Slides and video from one of these (given on April 18th, 2000) are available here.
He will probably continue to give his talk for many years to come, as it is unlikely things will change much in the short to medium term.
It's sort of like the fashion industry, what the models wear on the runways isn't what you're going to buy in Sears, but it does set the "trend".
While working at a software product company that was core technology supplier to many of the Fortune 500 firms, I had the ... ummm ... opportunity to interface with IONA support and development. Their product at the time was quality challenged. Unfortunately for us and our customers, it was a core technology in our own product. A couple key showstopper issues required me to engage in almost daily conference calls with their support and development organization. They would try to fix the problems, ship us a new binary, we would run overnight testing on several hundred boxes and report the failures back to them. The sad part is that my senior developers had a good idea of how to solve the main issues ... but couldn't because they didn't have access to IONA's source code. We spent weeks going round and round with them when I feel we could have solved the problem in days had we had the ability to look into their code.
While IONA is in this anecdote, it really could be applied to many commercial vendors of software. One of the largest value propositions for Open Source is trust! If you find a bug that prevents you from achieving what you need, you can always dive into the code and fix it. I can't think of any other model that builds that kind of trust on which to base your own products.
I'm sure IONA's products are much better now, but if Michi had had to depend on them for his paycheck back when I was using them, I'm sure he would've wanted the source code also.
I think that a lot of his message comes from the fact that so many of the programmers in the industry have very little of no formal training in computer science. I have only 3/4 of a degree in CS and NONE of my friends who work in the industry got as far as I did before heading to work.
The difference being that a computer scientist is a weird combination of a mathematician and an artist. The math because at the fundamential level a computer is a calculator and all programs are just big equations. The art because makeing a calculator do something interesting with your equation IS art. The level of design knowledge needed to create a usable application with a coherent and graceful structure full of good clean code is equal or greater than the design knowledge that goes into creating a building.
But the average Programmer doesn't have all of that. He just hammers out code as needed. it usually works, but often there was a better way to do it.....or it had already been done and was on page 42 of the textbook of the software engineering class he didn't take. I am one of these guys...I know what I'm doing, and I think I do it fairly well, but I know my flaws. I know my code has flaws I can't see.
The statements about how much progress has been made are really what gave me the idea. Sure, we may not have made a lot of progress in CS threory...but so what. We have made a ton of progress in other areas. The amount of quality software in the public domain or available at a low cost is mind numbing. For almost anything you wish to do there is a peice of software that will make it a little easier. Sure, the software doesn't do all the work....and it DOES REQUIRE YOU TO KNOW HOW TO USE IT! Many of the most serious problems with computers today do stem from fallacy number 1.
blah blah...I'm losing my point.
There are good points but I've got a problem with what looks like the unwritten assumptions that programs are all the same and are targetted at the same people. Let's see who uses:
-Word
-Matlab
-Apache
-Linux/Embedded
-AutoCAD
...
While you (should) want to make Word as simple as possible, you want to let Apache users configure everything, you want to let people modify the source to Linux(Embedded) to exactly fit their needs. AutoCAD needs lots of features, but not necessarly source code ('cuz there are less programmers in mec. eng. than ee)
So I'd add fallacy #11: Programs are all the same
-Software management should be done the same way, regardless of the software being produced
-All programs should focus on simplicity, not features
Opus: the Swiss army knife of audio codec
its the fast save feature, turn it off, and file sizes shrink. A fast save apparently appends to the end of the original file with routing for where this and that section needs to go, in addition to the edits, its apparently not real efficent but it beats waiting for 10-20 seconds for msword to finish saving so you can shut down your system in MS marketing's eyes, dig around in options and you'll find a check box for it
09f911029d74e35bd84156c5635688c0
This is excactly his point. At the level of Teach yourself C++ in 14 easy lessons, you can now pound a nail. What we expect of these junior programmers is the ability to write decent software which is more like bridge building or constructing a house. Sure, you know how to hammer, but that doesn't make you qualified to architect and build homes. Programming is a design process.
"If the people who designed and wrote the software can't find the bugs, what makes you think that throwing somebody at it in their spare cycles is going to help"
Everyone is looking for something different in a program. I may have to deal with a bug that most are not concerned about. If the source is available, I might be motivated to find out why, for example, three quotes in a row causes a stack overflow.
Am I the only one whose brain saw "phallacies" instead of "fallacies"? That does it, no more strangeland for me...
Mr. Ska
...if spoilers and racing stripes are part of your car's user interface, I'd say you need some driving lessons, or a different car.
Virg
For every complex problem there is a brilliant, simple solution which is just plain wrong.
I learned how to program by reading C source code. So what's useless about source code? Learning by example? You get to see how somebody screwed something up, so you can side step that. Isn't that the same reason history is forced upon us?
For idiots like me who can't get a university education, it's the only way to learn 'real' programming. To see what the high-brows do, and emulate some of it. (structure and security being all I can think of).
Put the f*cking code in the basket!
One time my wife received a job offer in an MS-Word format. She didn't have Word handy and used the strings command to look at the content, and she saw a job offer for much, much less than she was expecting. Upon further inspection, she noticed that it was for a different position being offered to someone else.
If the business was my own, I'd have a policy to never send Word documents outside the company. Who knows what kind of information you're leaking this way!?
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
If theoretically we could transport a 1960s radical to the current time and showed them a printer and a basic word processor they would be amazed.
It constantly amazes me how few radical and pseudoradical mags are available. Or maybe it is that we are constantly bombarded and these magazines have become cliched.
Anyone remember Phrack or MED's e-zines? Used to get loads on my BBS. Don't seem to get as many on the internet now, at leas none with the same quality. Either that or there are so many that I don't know where to start.
A million voices calling out at once!
Point been that all technology can become cliched, and we maybe haven't found the best way to use it yet!
- John
e4 e5
I wonder just how far we've come in automotive technology since the 1950s?
/help documentation.
I mean, the cars don't actually go any faster. The speed limits aren't much higher, and if anything, the increased traffic makes us drive slower. Environmental improvements from catalytic converters and the like are nullified by the increased number of cars producing pollution. We add rear-window wipers and CD players, and instead of buying (or building) a more efficient vehicle we demand (and get) SUVs from every last manufacturer on the planet.
So, are cars actually any better, when any technological improvements are effectively nullified by the people driving them?
Well, yes, they are. Cars are more popular every decade because they're easier to use, cheaper to own, and more comfortable for everyone inside. They may not be "better" from a numerical perspective, but anyone driving a 2002 model right after driving a 1962 model will immediately notice the difference.
Computers are the same way. The faster they get, the more we expect them to do. The more people that use them, the fewer things they are used for. Developers get sloppier about optimization and APIs get changed with every iteration of the OS. It takes longer to start up this year's computer as it did 1979's, and people still do the same basic things with them.
But look at how much they've changed: graphical UIs make it easier for anyone to use a computer, instead of having to know what to type in at a text prompt. WYSIWYG doesn't happen 100% of the time, but 98% is a fair sight better than 0%. I may not get anything more interesting using a cable modem than I could using a 14.4 and a BBS, but at least all the commands are on screen instead of hidden behind a hundred scrolling screens of
So people are using all this computing power for nothing more than playing video poker and typing papers. So what? 90% of the population never needed it to do anything more; at least in 2002, they can do it for a lot less money and with a lot less reading. Companies and users may throw away countless man-hours developing skins and pretty interfaces, but at least they're successful in making computers familiar, comfortable, and desirable to the common man.
And besides, look at all the things we can do with a PC today that we couldn't ten years ago: access millions of pages of esoteric information online. Take photos digitally and organize them on CD-R discs, taking up 1/100th of the space for about the same cost. Listen to a thousand songs from a single digital jukebox, no vinyl or tape required. IM your mom across the continent without spending a penny on long-distance. Order anything from the Sears catalog without having to own the catalog. Find a new job. Locate a special interest group. Print a map. Comparison shop.
Or, just write and print out your resume. But at least nowadays, as with Henry Ford's first cars, you're not stuck with "any color you want, as long as it's black."
It is not the case that computers are not useful or helpful to most people. Rather, the Web has brought about a revolutionary change in people's lives. We now have too much information as opposed to too little information. It is true that computers need improvement in how people interface with them, but the improvement is in letting people sift quickly and accurately through the abundance of information and do what they need to do. It is not fair to generalize all advancements in the last decade as worthless.
Social Contract? I don't remember signing any Social Contract!
Or if you ask me. This guy has a few interesting points and a bunch of useless or fundimentally flawed points.
The one "decent" point is that people spend too much time dicking around with fonts and colors. But that's a problem that doesn't sit on a hard drive - it sits in the chair in front of the computer.
Fallacy 1: Computing is Easy, he shows by pointing out that there are "Teach Yourself" and "for Dummies" books. These are merely titles. He then points out things like "Air Traffic Control for Morons" is silly. Yes, it is, if you're going to be a professional ATC. But then, if you're seeing if you're interested in the field, or possibly getting caught up on a new system, it makes sense. These are industry specific publications - grabbing a copy of New Riders "Essiental Python" won't teach you Python if you've never programmed, but it will get you going quickly if you've done C++, Perl, etc before.
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise This is not a fallacy. I don't have a typewriter, lightboard, razors, specialized photography equipment and a printing press. But I've used a multitude of layout programs and a printer, which is far cheaper and quicker to use. The fallacy he *is* showing is the concept of "Software automatically makes me an expert", which is not a common credo at all. In fact, most office workers will activly try to avoid learning new software because they don't understand that that field.
Fallacy 3: Computers Increase Productivity
Walk into an engineering firm or archetect firm and ask them if they want to go back to sketching blueprints. See if most small businesses have a CPA on hire anymore. He says: "It only took five hours to format this memo". If that's the case, the problem sits in the chair, not in the software. Your HR department should take care of that, not IT.
Fallacy 4: Programs Help Their Users Which he then says is a false because they are only focused on upgrades, money and crushing the competition. And yet, later he'll say why open source is useless. Um.
Fallacy 5: If It's Graphical, It's Easy CLI might be more "powerful" in the hands of a skilled user (I won't give mine up), but well done GUIs can be self explanatory (assuming you know the conventions of that UI). Again, he's phrasing this so it is self-fufilling. Of *course* there are lousy graphical interfaces out there. There are also quite a few easy ones. And I think the metaphor of windows is a very very good one in a computing environment when you are moving from task to task constantly (Letter, Email, Check the intranet for some numbers, back to the Email, task list, look up an phone number, make a call, pull up client records and make note, check email, write a letter). For very deticated tasks, it's less useful, but many real world users need to jump around in tasks. Even if it's a spreadsheet and solitare, as a receptionist listed as her "necessary applications".
Fallacy 6: Computers are Getting Faster Computers are getting faster, the experience is not. On my Apple ][, I could turn it on and in a matter of several seconds, be typing in a word processor. But then, it didn't have spell checking, fonts, and I couldn't make a spreadsheet larger than something like 32x64. Humans can only work so quickly, so as long as the computer can keep up, the coders will add new features. There is the issue of "snappiness", but that's a feel issue less than a task speed issue.
"We have come along and destroyed all the gains we have made in hardware" - no, we have leveraged them into more flexability.
Fallacy 7: Programs are Getting Better
He asks how often I make pie charts. Me? Very seldom. But for the guy down the hall who does financial pitches to clients, he really really needs that ability. How often do I embedd live info into a document? Not often - but the guy who manages the intranet does it all the time. How often do I perform a Fourier analysis? Pretty damn often - when I was in college. Had I gone into a different field, I would be stone dead if I couldn't.
His wife was trying to save a 2.2MB for a 2 page Word document on a floppy disk. Plain text, default font, left aligned. There was one email address, underlined. After 17 minutes of searching, he found a way to turn off this email address highlight off. The document was then saved at 800KB.
My comment: Then it wasn't plain text! We all *know* that Word's doc format sucks... so use something else (and yet open source has no advantages in creating sane standards).
Fallacy 9: Programming is About Date Structures and Algorithms
No... Program = Data Structure + Algorithms. Knowing how they work makes you a better programmer. Period. And Michi? I wrote a program using linked lists last week. Some of us do low level code for specific reasons.
Fallacy 10: Open Source is the Answer I agree with this one - again, because he phrased it carefully. Open Source is an answer, not "the" answer.
Fallacy 11: Standards all the Solution Right then, what is Corba?
Fallacy 12: We are Making Progress If you bought the shite at the beginning, I assume this makes sense.
Fallacy 13: The Industry Knows Where it is Goling Name an industry that does know what is in the future. Hell, name a *person* who is certain of the future and is not delusional.
This guy is a twonk, and almost dangerous: The best UI people on the planet are those working in the car industry. And yet people die all the time because the controls for AC and radio are off to the side and different in each car. I get into a new car, and I have to play for a minute to figure out the lights, shifting, etc... and I just forget about things like cruise control unless I'm on a road trip - and then I ask.
And finally, the biggest thing that shows what an idiot this guys is: We have to stop doing things just because they are fun. If you don't enjoy your activities and you aren't pursuing alternate activites, that's a pathalogical condition. You are mentally ill.
Me? I enjoy my profession, *and* do the best damn job I can do to make powerful, easy to use and useful solutions for my users.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
I think most folks here are missing the point of fallacy 10. His whole presentation is about how computers have failed to deliver on the promise of making things better.
#10 is simply saying that Open Source is not magically going to make this happen. I agree. Useability and productivity of computers in the hands of the *ordinary user* are not elements that are well-handled by Open source in it's current forms, because the model IS wrong. The vast majority of OS development is done by techies doing things because they want to. They're either making tools for themselves and folks like them, or exploring technology for it's own sake. Useability in the hands of Aunt Bess is simply not something that appears on the radar screen for OS developers. This is why source code is useless - sure, if I have the source to something I can 'fix' it, but it doesn't really help in changing the authors conception of the problem or the design of the solution, which is the real problem.
The real crux, IMHO, is that OS is about flexibility, freedom and choice. Unfortunately, these are elements that detract from useability and productivity. Give someone 1 clear way to solve a problem, and it'll get solved quickly. Give them 10, and they'll never get anywhere, because they'll spend all their time evaluating/deciding. Give 10 people 10 choices, and ask them to work together/be consistent - forget it. This, ultimately, is Michi's point, near as I can tell - we are all spending WAY too much time and effort sifting through all the choices/flexibility/options, and nowhere near enough time actually doing meaningfully productive work.
For what it's worth, I really don't think he's saying that OS is _bad_, or that proprietary/commercial dev is better, just that it's not a panacea. Maybe I'm just being too generous.
The microchip transistpr.. That was a very important advance, as normal transistors are too big.. Also it has only the name in common with older transistors. This one is etched.
Of important infrastructure is the net.
Social changes: the female liberation, the youth rebellion.
Sure society is not changing as fast as 1900-1950, but then 1900-1950 wasnt even changing as fast as 1800-1850.
Technologic impact has been slowing down. But technology has not.
Actually, the design of most automobiles (and the operator interface) is controlled as much by legislation and safety concerns as by intuitive use. And as another point, yes, I did need to RTFM to drive a car. It was my driver's manual, so I could get a license. The point is that most automobiles are driven the same way, but to learn any of them, you must first learn one of them, which takes practice. The similarity among automobiles makes it easy to move from one to another, but if you insist that driving a car is in and of itself intuitive, I ask that you consider how someone who had never seen a car before would fare behind the wheel. For example, even if you told Ben Franklin what a car did, would he be able to tell without experimenting how to get it started, in gear, and moving in a non-hazardous manner? Probably not.
Also, you aren't considering that many programs don't do the same things. To extend that to your car analogy, you'd have to say that the same controls that you use to drive a car should seamlessly translate to flying a plane or driving a submarine, as they are also vehicles. Again, once you learn one airplane, you can (at least marginally) operate most of them, but again, it's not intuitive or nobody would need a pilot's license. For humorous demonstration, imagine you're on a plane, and the pilot passes out. You get behind the controls, and when you raise the tower on the radio, they say, "Just land it! It's like falling off a log!" I think you can see my point.
Virg
I wonder where he is basing the facts that people were writing as many letters in 1945 as today and that 99% of *all* documents are printed on paper.
"We are not taught to design",/i>
This is very true in my experience. Throughout all of my education there has been little if any emphasis on proper coding habits and design. Everything has been more or less free-form, and I think CS students are much worse off for it.
This has all become painfully clear to me since I started designing real software and API's. I've realized that I know next to nothing about proper software design, and it has bitten me quite a few times.
As far as I can tell, good programming practices are mostly language independant, and would be very valuable to any CS student. Why they don't teach it is beyond me
Comments should be like skirts. Short enough to keep your attention, but long enough to cover the subject
That reminds me of Short Circuit 2 in which Benjamin Jahrvi (who gets his idioms mixed up, 'cause he's a foreigner, get it?) says, "Oh, you are hitting the nail right between the eyes."
N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
If you're going to tell me that a tarball beats an InstallShield, self-extracting exe that my grandmother can double-click to open and have automatically install pre-created binaries for her, you're sadly mistaken.
I think he means OSS source is hard to maintain. He may feel this way because many changing sets of people contribute to the project. I don't know if he has ever worked on OSS.
For me, the more interesting problem I see with the current OSS model is the conflict of interest. OSS is supposed to make money from support. Unfortunately, well designed, easy to use software may require less support. So there is no incentive to make plug and play, one click systems.
I love OSS. But the conventional wisdom OSS financial model needs work.
Lies about crimes
This is fascinating, and perhaps should be published more widely - who knows, maybe it'll be the kicker to get people to stop using Word! *gasp!*
Before I get flamed, let's remove the sarcasm from the bullet point (my stab at it, at least):
If enough skilled people have access to the source code and if they spend enough time to understand it, source code can be very useful. Just getting the source "out there" doesn't do anything (for a non-trivial piece of software).
The source code to mozilla was nice. 3+ years of work + the source code >> the source code.
Two words ... Embedded Fonts.
If you have that nice little feature on, you can easily balloon a small DOC into a large one.
Still doesn't explain the story about how a single line of "mailto:blah@blah.com" can change it that much ...
My mother always used to tell me: If you can't find anything nice to say, say something bad about Windows.
Penicillin - People still take drugs, but those drugs are magnitudes more powerful and complicated than penicillin
Iowa/Yamato class battleships - The battleship as a ship-of-the-line was rendered obsolete in the 1940's. Those that serve today carry helos and guided missiles.
Apollo moonrockets - They have not been utilized since 1974, with the Apollo-Soyuz test project. I will grant that NASA has lagged behind in space delivery systems.
Polio vaccine - If it isn't broke don't fix it. However, new vaccines are coming along all the time.
Transistor - Has been superceded by better technologies.
Bulk transport system, rail - The main difference here is that the engines of today are vastly more powerful than those in the 1860's. There is no comparison between a 4-4-0 American-C and a Dash D9. None at all.
Bulk transport system, car/truck - Same with above, plus the interstate system, created between the 1950's and the 1990's (yes, it was based on 1930's German tech, but it is better than the Autobahn).
Airplane - Once again, the concept is there, but a whole host of innovations have been ignored. The airplane of 1910 bears little resemblance to the airplane of 2002.
Fast airplane - Once again, vastly more advanced today. Try telling me that an F-86 Sabre has anything on an F-22 Raptor. Better avionics, superior engines, stealth....
Personally, I would say we're making plenty of progress on these fronts.
~chazzf
No statement is true, not even this one.
i take issue with some of the sentiments here: ...
... it could be argued that tcp/ip was a major reason the internet could explode (the other being http, which has also undergone many revisions, but that's the beauty about a _standard_, people can start talking about _the same thing_.)
---
Fallacy 3: Computers Increase Productivity
- The sound effects in this presentation will make all the difference
- It only took five hours to format this memo
- The shading on this pie chart is simply superb - The icons on my desktop are lined up perfectly [sound of car screeching to a halt for each bullet point]
---
well, people have a certain actions to choose from, and a certain amount of resources (time, etc.) to allocate. choosing not to work further on your presentation is one type of action to take. another is to gussy it up with wierd sound effects and alpha channels. clearly, what's going on is, there more value in continuing to gussying-up than to doing something else. so yes, computers have increased productivity, in the sense that the total value what the person can do in a day has gone up, BUT, people have very strange utility functions.
---
Fallacy 5: If It's Graphical, It's Easy
- Single click, double click?
- Where is the #$%^@!! menu??
- Which part of the UI does *not* do something?
- With a GUI, anyone can be a
- System administrator
- Programmer
- Typesetter
- Accountant
- Statistician
-
---
well, thanks to modern tools, very bad system administrators and programmers can be made into moderately bad administrators and programmers. this is a _huge economic boon_, since good system administrators and programmers are rare and expensive, and will only get better as the tools improve to the point where very bad is transformed into mediocre.
my whole job is to make statistics and informatics tools for biologists (non statisticians, non computer scientists). yes it works, and it's a huge boon.
---
Fallacy 6: Computers are Getting Faster
- How long does it take for your PC to boot?
- How long does it take to
- start your word processor?
- load a web page?
- compile a program?
- how long did it take
- five years ago?
- ten years ago?
---
this relates to the presentation point above, but basically, the utility of booting faster than X is very low for most people, so computers settle upon the minimum and then stop improving that piece (just like a computer or tv or cd player or car cheaper than $Y is of little utility, so the cheapest computers/tvs/cd players/cars are always about the same price but have better technology.)
---
Fallacy 10: Open Source is the Answer
- Economic model is doubtful
- Source code is useless
- Motivation for Open Source is inappropriate for most software
- Nerd culture is counter-productive
---
but nerd culture is _motivated_, just by a different metric than money. because of that motivation, nerds will and have eventually realized that boring things like ease of use and installation make the difference between adoption and non-adoption of their favorite technology, hence gnome, kde, etc.
it's an alternative economy, but it is productive, in some ways more productive than the mainstream economy.
---
Fallacy 11: Standards all the Solution
- Usable standards are created only years after the fact
- Standards are foul compromises
---
this is total crap. i'm sorry, but it is. standards need to be designed with extensibility and the next generation of standards in mind, but please. tcp/ip? a foul compromise? usable only years after the internet exploded? no
more problems with this, but i'll stop here.
-- p
Lets run down them quick:
I have no idea what the 'Progress' is at the end. Apparently it's quite different from Progress? I guess I had to be there.
I think the designers should focus on design and let everybody else do their job.
Very very true that we need realistic growth expectations. Especially for startups. I remember an anecdote were AOL had figured a certain growth rate not factoring any sort of slowdown as they reach critical mass. They intened to account for something like 15% of the nations GNP by 2010.
I read the internet for the articles.
Couple examples of cures developed in the last 50 years:
1. Hepatitis B vaccine; radically different from vaccinia (~1880) and polio (~1950).
2. HIV drugs, e.g. AZT, other antiviral drugs, like picovir (Viropharma Inc); there is a number of drugs designed to target a specific gene product. BTW, 'enabling' discovery - DNA structure - was done in 1953 (Crick and Watson)
Another example, in technology: satellites.
The point I would like to make is that it is hard to see grandious things from close distance. Wait 30-50 years to see what things as important as transistor were developed in late 20th century.
We're doing OK. Sure, some of these things aren't commonplace market realities yet, but I don't want to hear it: If the Apollo program (moon landing: 1969) is accepted as "1940s" technology, then a gap of a few decades is apparently OK.
Although it might be true that someone from 1950 could recognize more of life in 2002 than someone in 1900 could have of 1952, that's a temporary anomaly. In fifyy years, the world will look nothing like it does today. The past looks richer because you're far enough to see what turned out to be actually significant.
The Mongrel Dogs Who Teach
They may be more expensive than for other fields, but I feel it is worth reading e.g. one $60 book each month (plus magazines etc.) to expose you to new ideas and improve your insight. It's a damn sight cheaper than $1000 two ady courses that tell you nothing but marketing blurb! :-)
Of course this means every year or so I need to go to Ikea to buy a new bookshelf also...
Company I work for purchased a system in early 80's. Company was new. Who knew if it would last? This was pretty damned important software. So, the source went into an escrowed safety deposit box. They disappear or file bankruptcy, we get to open the box.
Never had to use it, never wanted to use it. But it was there, and allowed us to pick something other than IBM (way too expensive at the time. Not sure if they even offer a similar product anymore.)
Jesus was all right but his disciples were thick and ordinary. -John Lennon
Full marks for completely missing the point, and thus to a large degree proving it. It's pointless to attempt to reply item-by-item. The premise of the presentation is that computers have largely failed to deliver on the percieved promise of increasing productivity and making our lives easier/better. Your points, by and large, miss this, and are a defence of computers as computers. Sure, guis and advanced programs have shifted our perspective and changed our baseline expectations, but I think the assumption that this has paid off with *more* or *better* productivity is invalid. Sure, Betsy the admin can use excel to update sales forecasts, but that doesn't make them more accurate or better. Sure, we can use Word to quickly cut/copy/paste etc, but that doesn't necessarily make the cycle time for a full document any shorter. Sure we can 'analyse numbers with impressive ease', but this doesn't improve the knowledge or understanding of those numbers. By giving us superficially accessable functionality, they distract us from the underlying task/goal. In essence, the Sirius Cybernetics Corp made real - the superficial design flaws are obscuring the inherent design flaws. Maybe restating his point would help - we have let the practical issues of computers blind us from the larger motivations - computers have become a world and a justification unto themselves. We are 'spending' the efforts devoted to computers in the wrong places; rather than more complicated solutions which is what we're getting, we really need simpler ones that get the job done. This is as much a social point as a technical one, but it's a powerful one nonetheless. Faster compiles are all well and good, but *FEWER* compiles is really what we need.
The public benefit of open source and free software has nothing to do with economics. It has everything to do with learning and progress, and free access to source code is the key to advancing past the current stagnant backwater that computer science has become.
Let me explain.
Imagine that you're a young student who wants to become a writer. You ask your teacher, "What do I need to do in order to become a great writer."
Your teacher, if she has a bit of sense about her, will tell you to read all the works that you can, by the best writers, and learn from them. By recreationally reading and studying the works of great writers, as a young person, you will learn to recognize and understand, from experience, what differentiates good writing from bad writing. This is the educational process that, if you are both diligent and lucky, will turn you into a talented writer.
Contrast this advice with the world of computer programming. In the world of software, programs are distributed as object code -- meaning that you can't learn from them by reading them. Plus, they contain "licenses" that proport to deny you the right to study them to learn from them. Any programmer who obtains surreptitious access to some major program's source code is running a serious risk of being unemployable -- as a legal liability.
It is as if our original hypothetical budding author were told:
"If you want to be come a author, you must be sure to never, ever read anyone else's books, especially popular books by great authors. The way to become an author is to wait until you are of college age, then enroll in a two year "writing school", where you will learn grammar and spelling, sentence structure, and then write a series of short essays. For your final project, you will write a single chapter of a book co-authored by the entire class. Once you are completed with this two year course, you will have your degree, and, having only studied textbooks, will be fully qualified and ready to join the workforce as a writer, uncontaminated by exposure to real-world writing experience.
If this were the way we taught writing, then our novels would show the same lack of quality -- and lack of progress as our software does right now!
So how do we fix this problem?
I believe that the answer is to reform copyright law. The current system of closed source, proprietary programming technology -- and the lack of any noticable progress in the craft of programming -- reflects the complete failure of copyright law brought on by the extension of copyright protection to proprietary software.
Patent and Copyright law are supposed to promote progress by placing the best examples of science and technology into the public domain, where they can be studied and learned from. If I want to learn about any physical science or engineering discipline -- if I want to catch up to the current state of the art, all I need do is go to the patent databases and -- right there, are thousands of examples of the latest, real-world scientific technology, written by actual scientists working in actual companies on actual products -- all there for me to study and learn from, and, 17-20 years after disclosure, to freely draw upon and use.
This is the public benefit of the patent system -- the dissemenation of practical engineering and scientific knowledge. This is supposed to be the public benefit of the copyright system. Copyright is supposed to be a tradeoff. Copyright is supposed to provide monopoly benefits in exchange for publication -- public disclosure. This works just fine in the case of natural language writings, because the source code is the product, but not for object code, where the product can only, for all practical purposes, be used -- not studied and learned from.
Copyright law could and should be used to leverage a similar public benefit, however, in the case of software, our legislators have completely missed the point of having copyright in the first place. The purpose of copyright is not to protect authors. The purpose of copyright is to create the next generation of authors -- to "promote progress" -- by encouraging the publication of works.
Imagine an alternate universe in which copyright protection were only afforded to software that was distributed in conjunction with full, buildable source code. Companies would have to choose between copyright protection, and DRM protection, instead of the current dysfunctional system, where they are able to effectively obtain copyrights on works that are at the same time, in effect, trade secrets.
In such an alternate universe, young programmers would start out as computer users. However, if they became curious about how their software worked, they would find the source code to their programs waiting for them.
Like the young, would-be writer with a library full of books, they would have the entire world of software to read, study, analyze, and learn from.
One objection to the source code requirement for copyright protection that I have heard is that it would encourage code theft. If companies distributed the source code to their products, I have heard it said, other companies will steal their work and incorporate it into their own code.
The answer to this objection is that, under such a system, they would not be able to do that because it would be trivially easy to detect such theft. If I were to steal a portion of the Windows source code and add it to my program, then went to market my program, in order to obtain copyright protection, I would be forced to distribute my source code -- with the stolen Windows source code imbedded. Microsoft would discover it and shut me down.
In this way, mandatory disclosure of source code would severely limit, or effectively end the practice of code theft. Who's to say who is stealing code today? It's nearly impossible to tell, when only object code is published.
Fortunately, free software, and to a lesser extent open source software is bridging this gap. Yesterday's young budding software writers had little to work from. The new generation of young software writers -- and I am talking about high-school age students -- have the entire GNU/Linux/Gnome/KDE system to study and learn from. Free software is the only software that earns its copyright. It's the only software that "promotes progress", because it's the only software that can be freely studied by the general public. It's a functional replacement for the public domain that has been lost/destroyed by misguided, failed copyright law.
In other words, just as having access to a library of great books is everything to a young, budding writer, having access to quality, real-world source code is everything to a young, budding programmer.
In a certain sense, it's probably the only thing that really matters.
Unfortunately, I feel that I must disagree with your take on the programmer mentality. I'd say that about 10% of programmers are the "pushing the envelope type", but the rest are the people that can't see the forest through the trees .
I'm talking about the programmer who implements a super-fast piece of code for parsing a section of text for possible email addresses, but ignores the fact that my mother can't figure out how to turn off that "goddamn automatic underlining" feature in outlook/word/works.
The truth is many, many programmers lack the vision to evaluate the end result of their work, or how their work interfaces with the end user. We are so focused on new features and new versions that we have wound up with software and hardware that ends up being a Swiss Army Knife From Hell, instead of being faster, more refined, less buggy, and easier to use. Microsoft Word is probably the worst offender of this -- its feature list is gigantic, it can do a billion things.. but it can't do *one* of those things very well.
No, creativity and talent can't be taught, but we at least need to let these CS students know that they aren't writing code in a vacuum. How about, instead of the traditional "implement this data sructure" programming project, students actually make a usable program that involves these structures.
Name ANY technology as far reaching as taming fire or the printing press.
Name ANY cultural advance as far reaching as money, the alphabet, language.
All advances build on previous advances. No advance is as simple and elegant as what it is built upon. That's how progress works.
The steam engine was a remarkably simple advance, but Hero from the Greek/Roman era built the first prototype. The advances made from the early 1800s until the end in the mid 1900s were evolutionary, not revolutionary.
Chemical rockets are amazingly simple in concept, and they build on the Chinese concept from 1000 years before. All advances since then are merely refinements.
You can pick any period in history and say that following inventions were not as far reaching. Then compare that period to prior periods, and see if the prior inventions don't make later ones look like mere refinements.
Infuriate left and right
Does the subject of a post give you insight into a comment? It's useless, too bad I can't turn them off.
My website's on linux, but god knows I would never maintain the box itself or telnet in or run it on my own machine.
I don't put up with perl since I have PHP & ASP.
I don't use MySQL but (true story!) I got modded down for telling people that I like mSQL.
And whoa, get this, Slashdot is about more things than Linux & Open Source! Whodathunkit?
[o]_O
It's funny, reading this piece really made me think about some things.
1.) People on slashdot are not average users. Too many people here keep rambling on about "well, I don't do it that way! " Enough people, how large a percentage of web users is made up of slashdot posters? 5% tops? if that! Your mom and that idiot down in accounting would probably disagree if they knew enough to do so.
2.) When did the computer industry forget the old acronym K.I.S.S. ? Why not adopt a plug-in model where the base program is simple and closed source with a ublished plug in API, so people can add features they want without forcing them on other people. Smaller itghter programs run faster are easier to use and are less buggy/crash prone than large ones. When was the last time you had Ping or VI crash your system? MS-Word?
Just my $.02
1958 - TheThe integrated circuit
:) (and don't say "how useless is that?", because my toaster makes some pretty good toast exactly how I like it every time). Most of your modern conveniences owe their existence to this fantastic idea. One thing you're failing to mention are advances on those pre-1946 concepts (IC is an extrapolation on the transistor).
I bet even your toaster has an IC in it
1983 - PCR
It's rather difficult to study genetics without large quantities of DNA. Along with this tech there is gel electrophoresis that you use to analyze your strands.
1984 - RouterNeed I say more? Would we be on the 'Net right now without it?
There is just too much to list, but these were some of my favorites. You get the picture. There are some others, like the Operating System, where would you be without that? Or the C Programming Language as another, or high level languages in general.
I think an important point here is that the presentation talked about advances in areas where there's not much room for advancement. Trying to make any major improvements in "word processor technology" is pretty futile.
Mike
Intel transfer the difficult from Hadware to software, for get more power, programmer need more technology. -- chinaitn
The only thing that it would cause is people demanding that MS make Word more secure. Word is like Herpes or fruit flies, it'll never go away.
A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
A great word processor will do a lot of the annoying things like spellcheck and thesaurus and automatic formatting
Exactly -- and those are not necessary. People used to tolerate typos because they read the message (the forest) and ignored the missing leaves (the trees). Now people fret about perfection in every little useless detail and forget to get the message itself as clear as possible. *That's* his point -- people take just as long to write a letter nowadays, and the letters aren't any clearer, in fact they are worse for all the formatting and useless decoration -- so where's the advance?
Infuriate left and right
Bulk transport system, car/truck - 1920's
The Roman roads would have sufficed, actually, so you're late by about two millenia.
Fallacy 1: Computing is Easy
Computer Science isn't easy, but overall computers have become much easier to use. Compare any modern PC with a PDP-11.
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise
The World Wide Web, expert systems, natural language translation, mathematics, many forms of automation. All of these technologies have a long way to go, but are still useful. Cheap PC hardware lets me solve many mathematics problems without perceptible delay. It's possible to do video editing on a PC that would have required an SGI just a couple years ago. The typewriter has none of these capabilities. Computers cannot help those who are unable or unwilling to think, but intelligent people have benefited greatly.
Fallacy 3: Computers Increase Productivity
Of course they do, ever try managing a snailmail mailing list w/o mail merge? Consider all of the benefits of automation over the past 30 years. Thanks to Moore's Law, many applications no longer need to be written in C or assembly.
Fallacy 4: Programs Help Their Users
I would make the argument that many tools have gotten sufficiently powerful that programmers are no longer needed. Much of the tedium of early computer use has been automated away.
Fallacy 5: If It's Graphical, It's Easy
Please don't repeat the tired old saw about how CLIs are easy to use. A well-designed GUI is easier to use and has a shallower learning curve. Most of the flaws you are referring to are in Windows, classic MacOS was quite easy to use.
Fallacy 6: Computers are Getting Faster
Computers are getting faster and making a crack at Microsoft doesn't change this. How many current applications are now IO-bound instead of CPU-bound? How many desktop PCs have cycles to spare for RC5 or SETI@Home? Look at how many programs are written in interpreted or safe languages and compare to 10 years ago. Compilers are faster and generate better code. Even Microsoft OSes are reaching acceptable levels of stability.
Fallacy 7: Programs are Getting Better
I would argue that most desktop applications are close to feature complete. Those which aren't do improve with each release - Adobe Photoshop is an excellent example.
Fallacy 8: Programmers are Getting Better
Computer Science is still in it's infancy, but it's becoming more scientific every day. Even at the mediocre school I'm attending, writing a Unix kernel is required to graduate. I predict software engineering will become "real" in 50 to 100 years.
Fallacy 9: Programming is About Date Structures and Algorithms
What else would it be about? ADTs and object-oriented programming make complex tasks easier to deal with. Big O notation provides a means of evaluating performance of algorithms and shows you why you shouldn't use a bubble sort for a 1000 element array.
Fallacy 10: Open Source is the Answer
For some problems, it's a reasonable solution. For others, it's foolish. If an inhouse application costs development money, it may be advantageous to open source it. Source code is also useful when a program is EOLed by its developers.
Fallacy 11: Standards all the Solution
Standards may be foul compromises but they make cross platform development possible. Look at all of the different web servers, POSIX OSes, and C compilers out there and say that again with a straight face.
Fallacy 12: We are Making Progress
Yes we are. 30+ years after their invention, garbage collection, object-oriented programming, safe languages, and type checking are all generally considered good ideas. Functional programming shows a great deal of promise, and formal proofs are feasible for real world applications, e.g. Praxis' Spark95. Telelogic has an SDL to C translator that will produce C source code from a specification.
Fallacy 13: The Industry Knows Where it is Going
Does any industry? We've seen the second tech boom come and go, but overall software and hardware quality has been improving.
Life is a psychology experiment gone awry.
Aside from the fact that I absolutely *loath* InstallShield, a binary no-brainer type installation is only better if it always works. If it doesn't, you're often out of luck.
I just recently had to use Windows for the first time in about three years and I was amazed at how difficult it was to load up with software. Half the software packages I tried to install had problems. I called the vendor of the network card to tell them that their install failed. "Did you try un-installing then re-installing it?" I said that I did. "How many times?" they asked. In the two days it took me to get everything installed I think I spent 3/4 of the time waiting for the system to reboot. My vision of the painless life of a Windows user quickly vanished.
It seems that a lot of people are missing the point. These criticisms and suggestions seem to be directed towards the Extremely Computer Literateare and the lack of innovation in providing easy to use interfaces and significant improvements over traditional alternatives.
A word processor today vs a word processor from X years ago.......? A spreadsheet is still a spreadsheet.
I know I am going to get flamed for this and people will no doubt spout of examples of enlightened girlfriends & colleagues who were brought into the Linux fold and are quite comfortable in it.
For me to have to compile something (in Linux) to install a program is utter and complete non-sense.
I know many people who just manage to send e-mail and barely browse the web in Windows.
The Source Code is irrelevant point refers to people like them, and me for that matter I think its cool that If i really wanted to i could see how everything came together but I really don't care, and neither does Joe Blow or Mary Smith.
Linux Users & Computer guru's etc are in the extreme minority of computer users. Computers are designed by Computer people for computer people NOT for the Average human being. I think some people would be better off with Geos or some other restrictive GUI simply because all their choices are right there infront of them.
I know many people who are better off with a Windows 3.x or DOS based system. Even if it is text commands there is a clear progression from point A -> B instead of having to sort through various menu's and procedures in a GUI.
My 2 cents
Just a reminder, you're reading someone elses notes, not the actual speech.
Most sigs are dumb. This is one of them.
In theory, the notion of a non-programmer 'who is good at finding bugs' is great, but they rarely exist. For pure end-user apps, they might make up a portion of the QA team, but that's all.
There are two major problems in practice. First is that the type of insight and analytic skills you need to do good QA work are pretty much the same as those needed to be a good designer/developer. You need to understand the 'task' at multiple levels, know how it relates to other aspects of the program, and understand the underlying technology etc. Generally, I can break the code 'finished' by junior programmers almost instantly - why? Because the combination of technical knowledge of how they probably attacked the solution along with domain knowledge of relationships/edge conditions etc is a powerful combination.
Second is that respect for non-programmers by programmers is terrible. How many dev projects have you been involved in where the programmers ignore the stupid/wrong/annoying etc QA guys? Happens all the time. Moreover, when you do get a really good QA guy, what happens? - He gets lured into development because it's 'more important' and/or pays better. Thus, I really believe that Development and QA are really phases of a project that need the same basic skills, and should be addressed accordingly. In a perfect world where everybody did formal analysis, pre/post condition testing, automated edge condition unit testing etc some of this might change, but that'll never happen in my lifetime.
If all this should have a reason, we would be the last to know.
If I coded in CORBA 18 hours a day I would go crazy too...
String_var s(CORBA::strdup("Please kill me!"));
Killing people is not enjoyable (for non-sociopaths) but our army is good at it. They see a greater good in wholesale slaughter. Sometimes there is, sometimes there isn't.
Other than the above statement ruling out 90% of the video games out there, you're point still doesn't mesh with reality, or, at least, the justifications for *much* of our "reality".
For example, the reason government exists, according to Hobbes, is to protect us from the war of all against all, from the violent nature of ourselves. This implies that government's purpose is to "civlize" our native desire to slaughter each other. Nietzche's (sic) ubermensch is "civilized" man's ultimate form, a form that transcends this bestial nature to become something actually worth existing. I'm sure there are other philosphers who've weighed in on this, but the point is we *do* like killing people and other species, and have from the get-go. (It's up to you to determine if this design is flawed or not.)
In the context of the current discussion, "efficiency" in programming could easily be compared to "efficiency" in civilization: the myth of progress--or, more accurately, the myth of progress of value is the ruling paradigm that holds this species back, and the programming world in check.
"The more corrupt the state, the more numerous the laws."--Tacitus, The Histories
quote:
Fallacy 10: Open Source is the Answer
- Economic model is doubtful
- Source code is useless
- Motivation for Open Source is inappropriate for most software
- Nerd culture is counter-productive We write software for peer recognition. We write fancy structures because 'it's cool', but not particularly useful.
This guy isn't just bashing open source, but nerd culture itself.
If we could moderate articles, this one would get a -1, Flaimbait.
___
The way to see by faith is to shut the eye of reason. --Ben Franklin
When is the last time you thought it necessary to analyze (algorithmically) code that you are writing?
Its far more important to be very good in the programming language you have chosen and its libraries. Knowing how to write quicksort in your latest language is a dead skill - its already been done better by someone else, and added into the SDK.
PHP is open source. I guess you're going to have to stop using it. I do perl, myself, but only socially.
The subject of a post can be useful if it's accurate. Event a subject like "Re: zerg" can tell you whether or not the post will interest you.
You can get modded down around here for pointing out that water is wet. I don't use either MySQL or mSQL. I prefer databases.
Slashdot used to have a lot of non-Free Software stuff on it. That seems to have gone down in the last few years. Unless you're saying that you post on Slashdot because you like Jon Katz?
--
E_NOSIG
"We have come along and destroyed all the gains we have made in hardware" - no, we have leveraged them into more flexability.
Make a list of everything you actually use the office suite for (if you use it) and then ask, does this merit a whole CD set to install?
What I'd like to know is, where does all that space go? It can't be code...
I have seen people cut across three lanes traffic to get off the road because they experienced one of Florida's famous cloudburst in a rental car and couldn't find the windshield wiper in time.
We have recognized that computers allow us to do things that we cannot do unaided. We've been steadily progressing along, creating more powerful computers, more powerful interfaces, and trying to basically put it all together so that it becomes intuitive. Yes, we still have a long way to go, but it's getting better all the time. Some day we'll arrive at the point where computers augment our abilities without hampering us or tying us down. Such wonderful things are never created overnight. So yes, he points out a lot of problems with computer usage today, but that's to be expected. What we have today isn't the goal. We're working towards something much better.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
Michi Henning hit the nail on the head but can he drive the lesson home?
/. on a daily basis after taking 2 yrs off from the net. When last here with a different nick I was so impressed by the calibre of the people and the posts that I undertook to install Linux and began to distance myself from Windows. Having been back on the net the past 6 mos. and having returned to /. with the intent of joining the community and furthering the OS, FSF organizations I have over the past few days done a complete about face. /. posters to be redneck bigots who have so politicized the OS/FSF movement as to be more akin to a Stalin like centralized politburror threatening any who would dare use a product other than that which the movement endorses . There is a constant stream of political bullshit and personality cult drama with little content. Endless reams of quips bury any concrete content. By way of example the endless reams of crap that goes on discussing security online with Linux versus Windows. The solution by JoeUser. Run an old box with adequate ram and a couple of harddrives leave one drive unconnected. Someone hacks your drive disconnect the hacked drive connect the backup go back online. The internet isn't ready for anything else. The business model a la closed source is imperfect but gradually by constantly improving transperency in government and reporting the legitimate rights of users, users will be protected. I would rather trust my purchasing power to MicroSoft products subject to the scrutiny of progressive governments of democracies than to an undefined mob of righteous hackers.
/. without leaving with a distinct dislike of 'geeks' or 'nerds'. I suggest when possible you watch a rerun of the Monty Python skit of philosophers playing soccer- it's you. I have undertaken to learn programming (C/C++) and thought to give my time to OS/FSF I will instead return to the Windows platform which I've been on since 1983.
I recently returned to
I earnestly find the most part of
BTW we JoeUser losers you all seem to find ignorant, hapless and a hindrence to the perfection of your craft drive the industry with our purchases and underwrite your paychecks. I can't imagine many users come to
Demographic: 40's
University: 5 years, Com/Econ.
IQ: 160 (I don't need to hear how smart you are)
Work background: Real Estate Portfolios (10 to 60 million in assets)
heuristic algorithm seeks stochastic relationship
Nice thought, but let's keep our perspective. As a percantage, how many brain surgeries involve life-or-death risks? It's very nearly all of them. How many programs can claim the same? It's rather closer to zero. Comparing the two is silly on the same level as comparing putting a Band-Aid on a ten year old's finger to brain surgery.
Virg
The lines:
has been true since the earliest days of the PC. It's only gotten worse since everything's WYSIWYG. I recall reading a study -- got to be ten years ago -- that secretaries (it was OK to call them that back then) were spending a lot more time on each memo that they produced than they did when they were cranking them out with typewriters.
It certainly hasn't freed people up to do more important work, either. So many folks are hung up on the eye-candy that word processors can generate that they lose sight of why the paper's being written in the first place. I always thought it about conveying imformation. But, now, it's pretty much a contest to see who can cram the most features into a single document. (Don't even get me started on emails with animated Powerpoint attachments announcing the monthly employee meeting -- complete with sliding and rotating titles. Ugh!)
Heck back in the mid/late '80s I used to get in arguments with people over the format of reports (and theses) that people were submitting. Policy stated that computer generated output was acceptable. Even line printed output was acceptable (though not common). What was used to burn some people (myself included) was that some reviewers would give a nicely formatted, pretty font-filled report with, basically, fluff as content a higher mark than one that had excellent content but not as ``pretty'' a format. Form over content even back then. The Web is lousy with that nowadays but the problem has its roots from nearly twenty years ago.
CUR ALLOC 20195.....5804M
I personally have never had any issues with InstallShield. And for someone who apparently "hasn't been on Windows in 3 years", how can you form an accurate opinion on it. That's like me commenting on Apache, which I last used 3 years ago, as "slow".
Further, I submit to you that any user without a CS degree is going to have a far easier time double-clicking a self-extracting installer, walking through a few dialog boxes, and (in a worst case scenario) dealing with an error message that says need to install the original program before upgrading; than working with a command-line interface, figuring out how to solve dependancies for source files (when, in reality, the designer should have just provided binaries for his popular Linux distro to begin with).
You've obviously had little to no experience in the user-friendly world.
This reminded me of Clifford Stoll's second book, Silicon Snake Oil. Just one long one-sided gripe about how computers are bad, using straw man arguments to back up very questionable conclusions.
From a modern journalist's standpoint, this might count as "having an angle on the story" or some such crap, but it really only makes the argument presented shallow and, since it is not based on facts, futile.
Jon Acheson
All opinions expressed herein are my own, and not those of my employers, who are appalled.
For one thing, live often are at stake in software design. Bad programming has killed people before. At least 6 patients have died after being given a huge radiation dose by a radiation therapy machine called Therac-25
http://www.cs.nsu.edu/others/seminar/notes/therac_ 1.html
http://sunnyday.mit.edu/therac-25.html
The code was sloppy, and two distinct deadly errors existed, which should have been avoided. This is not the only situation where people's lives are a stake. Trains are driven by computer. Some planes are fly-by-wire. Medical machines monitor patients and in some cases administer treatments. Computer systems are used to dispatch ambulances and assist air trafic controlers. Bad programming can and does cost lives.
Depends - first off, MS's apps tend to have quite a bit of code with is just patches/more functional versions of system files. Quite a bit is also media files - clip art, yes, but also program icons, grammar rules, dictionaries, etc. Excel supports hundreds and hundreds of obscure functions, and Word has WordBasic.
"But I don't use that", you might say. Well, you probably don't, but if you take everyone in a medium sized office (say, 600 people), then you'll find many many people consider the stuff you don't use to be absoluely essential for their work. Then expand it out to all offices in your field, and you hit some more of that stuff. As soon as you shift fields, you start grabbing big chunks of really obscure features.
An insurance company used WordBasic to autogenerate explaination folders showing insurance providers what some questionable injuries were in a stadardized format. Jerry Pournelle, a professional author who types page upon page of straight text every day, asked Microsoft to add the "White text on blue, unformmatted" mode that is buried deep in the configuration panels of Word. Each feature has a user somewhere.
And that, ladies and gentlemen, is why plugin archetectures and code reuse keeps popping up as a Good Thing. I've heard many times, although I have yet to verify it for myself, that Word (say, around 97 or so, at any rate) had all of Excel inside it, and when you embedded a spreadsheet, it didn't actually call Excel to edit it, but rather used its own internal code. Certainly that would add quite a bit of bulk to it.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
I support almost all what MH says. I think that you should make an "effort" to understand what he is trying to say, not an "effort" to try to "destroy" his opinions. Just a matter of attitude.
Fallacy 1: Computing is easy. Book sellers try to sell books by any means. And one of them is to offer imposible things. "Teach Yourself C++ in 14 Easy Lessons", is a lie. Maybe "Small Introduction to C++ in 14 Easy Lessons". They say computing is easy, and it's not. But the books sell.
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise. I think MH tries to say that software "sometimes" seems to promise that you will be able to write a good text without writing skills throu the use of Word X. They try hard (spell correction, style "advisors", etc) but the fact is that you "need" writing skills (not owning a press, you always can take your manuscript to a professional one).
Fallacy 3: Computers Increase Productivity. Sometimes increase "flashiness" more than productivity. Compare a notebook/blackboard presentation to a PPT one, which takes more time to prepare...?
Fallacy 4: Programs Help Their Users. Sometimes are more a hassle than a help...
Fallacy 5: If It's Graphical, It's Easy. You named it. A "well done" GUI is easy. He only tries to destroy the myth "Any GUI == EASY".
Fallacy 6: Computers are Getting Faster. Sure the experience is not getting faster. Flashy animated menus and things like that keeps demanding more computing power. You know what, many software vendors (M$, for example) know that it is easier to sell you a new program if you also buy a new computer, so...
Well, I won't continue because I have better things to do. Just hope you get my idea. I don't think that MH is and "idiot", and would NEVER dare to call that to a so respected person, with so much experience and a large track record.
Let's hope that we won't discover any Einstein writing against OS (just in case it was possible in time). Many people here would surely flame against "relativity theory".
Best Regards
Daniel
PS: Please let's think about all this.
In the 20's and 30's the most popular novelists were Faulkner, Steinbeck, and Hemingway.
Today its Anne Rice, John Grisham, and Stephen King.
Not exactly a quantum leap in novel writing.
No, Thursday's out. How about never - is never good for you?
I had my experience with the "user friendly" world just last weekend when I had to suffer through installing software on NT. Admittedly, some installations were problem free and easy. The ones that weren't were nightmares, and I spent hours on hold for tech support only to talk to morons.
That wasn't my only experience with "user friendly" either. I also had the "user friendly" experience of "upgrading" a Windows machine and finding that I needed a new "user friendly" driver for some hardware. Only problem, the new "user friendly" driver wasn't free, it cost almost 1/2 the price of the hardware that it controlled. How "user friendly" can you get?
I didn't say that easy installs are necessarily worse (as you seem to suggest) just that when easy installs don't work, then they are worse. In fact, they may be impossible because the user has little to no control over what's going on.
User friendly is subjective. I found myself longing for what I consider the user friendly UNIX environment when I was using NT. I wouldn't reccomend UNIX to my parents, but then my parents don't pack their bags and fly to my house for the weekend to configure my new computers for me.
Also, as a developer who's written InstallShield scripts for work, I can tell you that it is one nightmare piece of software. Not that that has any effect on the user experience. Don't tell me I don't have experience with "user friendly", I've been using computers since before you were born, kid.
I agree that Cooper's book is worth a read, but I have to stop a little short of "fabulous" because of his problems with perspective. Understandably, he considers the user interface to be supreme, but he fails to see when usability isn't the most important consideration. The specific example he used was related to using an ATM. He states that the design of the interface is poor because he needs to enter all of the information necessary for a transaction, but if any of it is incorrect, the machine unceremoniously dumps him out and he needs to start again, rather than allowing him to correct what's wrong. Now it would seem he's right, but he doesn't consider that there's any good reason for this behavior, and in fact, it's done on purpose. The purpose is to maximize the inconvenience for someone who's trying to get money from the machine illegally, thereby either getting that person to give up the attempt, or to spend more time trying while the camera takes picture after picture of the criminal. However, because Mr. Cooper never considered why the machine does what it does, or can't imagine anyone using the machine differently than he does, he assumes that it's simply bad design. Many of his comments are on the mark, but while reading I suggest the reader look deeper into his experiences to see if there's more to the story than Alan notices.
Virg
The best UI people on the planet are those working in the car industry.
OK, the "driving" part of the UI is OK, but most everything else is crap. 1985 Mustang: preset radio station by tuning radio, pulling out lever, and pushing it back in. The fact that I can still remember that is a strong indicator that this is a great UI.
1986 Buick: This car had an electronic radio, so the pull-n-push idea would no longer work. Solution? Tune radio, press "set" button, push button. Not as satisfying as the old mechanical pull-n-push, but intuitive enough.
1997 Buick: I have no idea. Honestly. I sat there in the care for half an hour yesterday and couldn't figure it out. There is an automated thing that will do it for you, which is supposed to be "easy". Just one problem: unless the radio can lock in on the station you want, it won't preset the station. Most of the stations I want (e.g., Anapolis based WHFS) have weaker signals and don't lock in. As a result, I have a dial full of crappy Top-40 presets. As far as I can tell there is no way to manually preset the stations. THIS SUCKS.
This is just one little gripe. Don't get me started on "idiot lights". God forbid anyone should actually know what their water temperature is. They might actually take the car in for service before it overheats and scours the cylinder bores.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Naturally he assumes just because someone likes simplicity he's a "kid". Good call.
Lets see...
- Economic model is doubtful It sure is. Of course there are exceptions, but that's why they're called exceptions. Personally, I think it's because the open source model is new, not because it's unworkable.
- Source code is useless Well, source code is useless when you don't need it, but when you do need it, it's a lifesaver. It's also the best way to learn new techniques and styles. Books are a good way to get started, but to really call yourself a proficient programmer, you need to be able to simply read and understand source.
- Motivation for Open Source is inappropriate for most software I quite agree. Most people write OSS to scratch an itch. However, most software is custom software. Telemarketing software. Inventory applications. CAT Scan software. No developer writes these things for themselves, a business hires developers to build it for them. These kind of applications have to be custom built, because the problem domain is extremely limited. Therefore, even if they were open source, who'd need it? I see more competent programmers coming to OSS every day. It is gaining in credibility. If you can get your client to GPL an application you write for them, good. I'd personally like to see some of the image construction code for a MRI scanner. However, most of it you wouldn't even want. It's better than the infrastructure is OSS, let the apps fall where they may.
- Nerd culture is counter-productive How can he say that? I learn really super-valuable stuff reading /. all day at work!
When a preacher says he'll move a mountain, no one believes him. When a scientist says so, noone doubts him.
Mozilla is at least as fast as IE6 now. It does still have some bugs, but they've been noted and will be fixed. How long did it take Microsoft to create IE6? Mozilla will be better than that, and in less than half the time. There's no 1.0 release yet, but there have been some milestone releases. Hell, IE has always had plenty of bugs and security problems too. Your argument is lame.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
I don't think Evan was going out of his way to try to discredit what MH was saying. The fact is, whether or not MH had good points, he obscured them by being simplistic and not thinking through all the possibilities. Whether or not I agree with "the essence" of some of what Michi was saying, I think Evan's rebuttal gave a fuller understanding of the real issues without having to resort to that kind of knee-jerk reaction.
And the fact is, Evan is right when he calls Michi dangerous - he is especially dangerous precisely because he is a "so respected person, with so much experience and a large track record." That means when he says stupid shit, more people will listen and take his stupid shit seriously. Like yourself, apparently...
"Oh what, open source is crap? Everyone needs to go back to the command line? News today: German Parliament decides upon MS-DOS as the chosen Operating System over Linux w/Gnome..." Okay, ridiculous exaggeration, but you get my point...
Just as you assumed I had no experience with user friendly. You set the antagonistic tone, deal with it.
Also, it's interesting how your posts get moderated to "2" just as soon as you post, especially a post like the above wich really is off topic.
If you're going to tell me that a tarball beats an InstallShield, self-extracting exe that my grandmother can double-click to open and have automatically install pre-created binaries for her, you're sadly mistaken.
If you mean "beats" as in "is easier to use" then, well yeah. But in pretty much any other category then, well, no.
I find it sad that the only thing a lot of people seem to care about anymore is user-friendliness. Especially people who don't need user friendliness themselves.
The enemies of Democracy are
I did. You're wrong too. The key here is the biggest problem lies not with the computer at all.
Fallacy 1: Computing is easy. Book sellers try to sell books by any means. And one of them is to offer imposible things. "Teach Yourself C++ in 14 Easy Lessons", is a lie. Maybe "Small Introduction to C++ in 14 Easy Lessons". They say computing is easy, and it's not. But the books sell.
Then the problem is with the publishers and the purchacers. It exists in all aspects of life - there are plenty of books that offer to fix your relationship (something that can't really be done with *any* book), lose weight or quit smoking, be happy, learn to sell music, learn to direct movies, and when you jump to textbooks, how to become a doctor or lawyer. Where is the computer related problem? Books are books.
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise. I think MH tries to say that software "sometimes" seems to promise that you will be able to write a good text without writing skills throu the use of Word X.
I don't know of anybody who has ever said: "You know, I could write a novel, but my software sucks". Those few (very few) who do do not make the software at fault. The problem lies with their own expectations, not in some sinister "promise" of software. Very few people say that a microwave makes them a gourmet cook, just that it allows them to cook easily.
Fallacy 3: Computers Increase Productivity. Sometimes increase "flashiness" more than productivity. Compare a notebook/blackboard presentation to a PPT one, which takes more time to prepare...?
Depends on if you're giving the speech over and over again - plus, if you're typing it up for handouts anyway, it's easy to make the presentation an automated one. As an ex-teacher (one year), writing on a blackboard is a serious skill that needs to be developed. That's why many teachers use overhead projectors.
Fallacy 4: Programs Help Their Users. Sometimes are more a hassle than a help...
How? If you're gonna state that, back it up. And not with single, specific examples - general examples that apply to many aspects of computer use. I'm sure I could come up with many examples where computers have been misapplied in offices, but the general fact is that they allow for complicated, personalized tasks to be rediced to standardized, simple tasks that the next employee can pick up.
Fallacy 5: If It's Graphical, It's Easy. You named it. A "well done" GUI is easy. He only tries to destroy the myth "Any GUI == EASY".
Modern GUIs, in general, are easy. The point is moot, anyway... qwerty might not be perfect, but non-disabled people have no problems with it. GUIs might not be perfect, but non-disabled people have no problems with them. If Easy = everybody can use them, then they are easy. Look at a McDonald's keyboard for an example of how easy and pervasive icons are.
Fallacy 6: Computers are Getting Faster. Sure the experience is not getting faster. Flashy animated menus and things like that keeps demanding more computing power. You know what, many software vendors (M$, for example) know that it is easier to sell you a new program if you also buy a new computer, so...
Again, computers *are* getting faster - we're just loading more stuff on them. Maybe it should be rephrased - they are getting more powerful. Just like in the 1950s, when airplanes could carry 30 people, but stewardesses would punch holes in the floor with their heels, versus a few generations later, when they still carried 30 people, but were more sturdily built - the engines were more powerful, but the plane was beefed up with the use of those power, and the flights carried meals and snacks
[I] would NEVER dare to call [him an idiot] to a so respected person, with so much experience and a large track record.
You have never been to a university, have you? :) Throughout history, there are plenty of people with respect and volumes of published material who were just plain wrong. Via a bad case of tunnel vision, being surrounded by yes men, or simply just picking the incorrect answer.
The statements that showed serious lack of connection to reality and human nature were the ones you didn't address - his last ones about "the Computer industry doesn't know where it's going". Well, *nobody* knows where *any* industry is going, and that uncerntity is proportinal to the number of technological breakthoughs that occur in that field. And breakthoughs in just about any field were made by people having "fun", figuring out a puzzle, or solving something that annoyed them.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
Heh. I can imagine what that book looks like.
"Teach Yourself C++ in 10 Minutes"
Chapter 1: Minute 1:
First, realize that if you really thought you could learn a programming language in 10 minutes, you're too stupid to be a programmer.
Spend the remaining 9 minutes 40 seconds letting that sink in.
Sucker.
The enemies of Democracy are
So, basically what Michi is saying is that Computer Science isn't having the day-to-day impact that it once did. Advances in data structures and algorithms aren't impacting the development of products like it once did.
Computer Science now gets to join Chemistry, Physics, and Biology as science disciplines that can no longer handle their own engineering. Physicists don't design boilers any more, Chemists don't design refineries, and biologists don't build waste treatment plants. And computer scientists don't build operating systems well.
Enter Software Engineers and Computer Engineers, who get to learn their stuff from the CS boys, but who focus on production, on tradeoff, on integration, on management. Its the engineers that push for legislation, that make sure that you have the education and experience to practice, and build systems that we are willing to call 'infrastructure'.
What people need to clue into is that we have an industry that has hit the point where it needs to split and to recognize those that advance the theory and those that pave the roads.
Playing such scenarios has its value, but in realistic terms, the situation described happens only extremely rarely.
Virg
The idea I think is rather than nit-pick each point he makes to find reasons why their not true, take each one and understand in whhat way it is true.
For example, of course its true that computers allow some people to do things they couldnt do with computers. But really think about the large chunk of people who dont get real benefit from their computer skills; spending too much time writing memos with fancy fonts and spell checking, typing in their checkbooks to balance, things that people spent less time on in the past. I know many people who do things with their computers they couldnt do before, but these are things they dont NEED to be doing now. In the end, for a huge group of people, computers waste more time than they save.
... you know, like Agilent, or Lucent, or Funzo.
I'm torn.
I'm typing this on a fairly current Athlon that dual-boots Windows and Linux with a DVD player and many cool doodads available to hang off the USB ports, but...
but...
for some strange reason when I was cleaning the basement I came across an old laptop and booted it up to see what was on it. Nearly ten years old: a 386SX with only a meg of RAM, a doublespaced 20 MB hard drive and DOS 5 with WordPerfect 5.1, Lotus 1-2-3, SmartTerm 5, Wolfenstein and Windows 3.1/Quicken 3.
Know what? The little sucker was fast. Booted fast, apps came up quickly, responded quickly. In terms of speed it beat the Athlon running in Windows mode, although not in Linux mode.
I don't necessarily want to go back to the days of 2400 baud modems and BBS's, but that little laptop brought home some of the lecture points in a way I would not have thought possible.
When the car manufacturers wanted to differentiate their vehicles in the U.S. when I was a toddler, they added chrome and fins. Didn't make them run any better, just an attempt to make 'em look snazzier.
So yeah, I like all the cool stuff I've got hanging off my Athlon/DVD computer but if I can actually get my document typed faster using WordPerfect 5.1 instead of Microsoft Office 2000 doesn't that mean that when I boot the Athlon into Windows I'm running something with fins?
Cheesus. I wouldn't be able to make a less intelligent analogy if so my life depended on it.
"If you think education is expensive, try ignorance" - Derek Bok
A few of my own objections:
Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise
Woah, I can't even begin to scratch the surface of the ways that computers have enabled myself and society at large. My perspective is that writing letters or adding up a couple numbers isn't what computers are for, and the fact that they can even help with this trivial stuff even argues their case further! I'm in experimental particle physics, which like many other branches of science has virtually exploded with the advent of computers. The experiment I'm collaborating on was basically designed in '94, and collected data in '96-'97. The latest computer technology (well, latest affordable tech anyway) in '94 was not capable of handling the rate of data aquisition necessary for the experiment to run, but it was designed with a little foresight and when it did run, it did spectacularly well. We collected about 30 TB of data. We performed the first round of processing (mostly reconstructing particle tracks) a year later, which required almost a full year to complete running on an average of 50 workstations around the clock.
Now, was this possible without computers? Not even remotely, in anyone's worst nightmares! The calculations alone, done with sliderulers, would probably take roughly 5 quadrillion man-hours. That's between 1 and 2 trillion man-years of stupefying labor!
Okay, most people don't do that much number-crunching on computers that they are aware of, but even just the advances of more mundane activities are worthwhile. Henning talks about letters on computer versus typed. Consider submitting a paper to a journal. In the bad old days one would carefully type up a draft, and hire a draftsman to draw the figures. This would take a week or so, mostly waiting for the drafting work. Then you would mail the paper to a journal, who would select reviewers and mail them copies. If modifications are required, well, you can see where I'm going with this! And you still run the risk of additional typos when the paper is typeset for the journal. My boss told me the story of years ago when he was submitting a paper with computer-printed plots for the first time. The journal refused to accept the figures, asking for the "originals". He tried several times to explain that anything more original than that was just a bunch of ones and zeroes, but they wouldn't accept that answer. So he eventually realized that the printer would print on draftsman's vellum. He printed the plots on that and sent them in. "I'm sorry, I was kidding before. These are the originals you wanted." "Thanks."
Okay this is too long already so I'll wrap up. Computers are much easier to use today compared to the 70's, programs do a lot more, GUIs vastly reduce the learning curve (when done well), computers are much faster and that's a Good Thing, programming techniques are rapidly developing (but at a realistic rate -- just be patient -- think of how much better Perl is than COBOL and it's been less than half a century), standards and openness are all good things, etc.
Or should I say "religi0n"?
Infuriate left and right
Of course. Programmers don't work ankle- and elbow-deep in excrement on a daily basis. Programmers ($50/hr ones, anyway) don't respond immediately. Nor do they resolve situations that drive to the heart of our instinctive aversion to uncleanness.
Fallacy 10: Open Source is the Answer
- Economic model is doubtful
Getting tired of hearing this. a bunch of people start companies using "open sourse" products, have no real business plan, then surprise surprise, they fail and some how open source is the fault. There are companies making money in the open sourse arena. Most companies fail, in any arena.
- Source code is useless
I'd like to see him say that after a vendor goes out of business and he has software that must be fixed, or he goes out of business.
Or the vendor changeed its focus, and since you are tied to them, your company must change the way it does business.
Say a lot of companies get surprised when MS finally discovered the internet, and they change there focus.
- Motivation for Open Source is inappropriate for most software
not sure what he means here. My motivation is 2 fold, improve my programming knowledge, make better code. I fail to see how that inappropriate.
- Nerd culture is counter-productive
yes, we nerds never ever produce anything, or start big companies *coughapplecough*.
Pretty much every large computer company was started because by a nerd.
As a matter of fact a can't think of any.
Xerox was founded by a nerd, Apple, Microsft, IBM, Sun, etc. etc.
The Kruger Dunning explains most post on
Hello,
I can imagine what a shock it must have been to leave for two years and then come back to slashdot. Somewhere along the way, slashdot became *big time* (well, sorta anyhow) and a flood of new people came in. Not that the people were overall dumber or smarter, but they did seem overall ruder and less mature. And, also, somewhere along the way, alot of the stories just became a lot less interesting. I remember a time when it killed me to miss a day of slashdot because EVERY article was interesting. Nowadays, if I don't read slashdot for a week, that's alright because there are only about 3 stories each day which actually interest me.
However, I would like to say this: those people who were involved in the Free Software movement in 1998, who you thought were so cool, are still in the Free Software movement(for the most part). They might not bother to read and post on slashdot anymore. The point is, it is rather precipitous to decide " I will instead return to the Windows platform which I've been on since 1983" based upon the postings on slashdot. There may (or may not) be excellent reasons to program on a particular platform, but slashdot posters don't really make for a good reason.
Personally, my goal is to make most of the stuff I write to be as portable and platform agnostic as possible, while still being full featured (perhaps a pipe-dream).
And lastly, I also agree with a lot of the stuff that Michi Henning has to say. It has been tremendously disappointing to me to see, that in the years since 1998, Linux has become more complex and difficult, in a lot of ways, than it was. The whole Gnome/KDE thing has been nothing but a pain in the butt. (I could go on a long rant about Gnome/KDE but I won't). And, slowly, but surely, all the Linux Distros are becoming a little bit less like each other all the time (which set of commands do I use on Distro X to configure a network interface?).
Of course, the stuff Michi says is really fairly universal, not just Linux related, but Linux falls victim to a lot of the same myths.
So, in summary, do what you want to do. Don't worry about slashdot. Feel free to ignore OS/FSF politics (I've taken to not worrying about what Richard Stallman, or Bruce Perens, or Eric Raymond, or CmdrTaco say anymore, lol) And, maybe, just perhaps, you can be part of the solution and not the problem =)
... not an essay. I don't know if there's a complete transcript from the speech, but I don't have access to it. As Glynn says in the mail "...I guess the notes [that I've included below] don't really do this talk justice...". So we don't have to look for completeness here. Just pick up the idea, that's what I tried to do.
And yes, I've been at a university (CompSci) and seen a lot of morons teaching there. But few had some "international recognition". They were mostly known around the campus for that, being morons.
And as an end I'll address the "Computer industry doesn't know where it's going" thing. I see as obvious that any industry knows nothing, but IT industry is always selling us "visions" and "evangelizing" us with the future. Anyone who has been at a Java Developers Meeting (just to name one) can say that. Sun, MS, Oracle, IBM will swear they know where they're going.
Best Regards
Daniel
PS: Sorry for my bad english, but obviously it's not my mother language.
I noticed you didn't touch that one. Perhaps you agree with Mr. Henning on this one point? He seemed to think great programmers have more short term memory slots. (of course, I have to guess his actual speech was much more responsible than these notes by themselves...)
Speaking as someone who has more short term memory slots than anyone (except perhaps one person) I've ever met, I'd like to point out being a good programmer takes a lot more than just that. (Yes, I write assembly at the keyboard without any visible preperation, but that's beside the point) As for a "great" programmer, I don't think I've ever met one, and if I did, I'm not sure exactly how I'd know I had.
Of course "eyeballs=shallow" is a fallacy, actually, I'm not even sure it means anything. What's shallow? But it's no more messed up than working around the same bugs for 3 years because no one with the proper abilities is in a position to fix them. (A certain problem in SQL server 6.5 installation sticks in my mind.)
All else being equal, More opportunity = more bugs fixed. That's an equation that's a lot tougher to refute. I think it's great when companies have to explain exactly why closing their source is supposed to help their customers instead of just fattening their wallets...
One of the most remarkable things about the space program is that when JFK announced that we were committing to "land a man on the moon and return him safely to the Earth", computers were far too bulky and unreliable for the job.
It was only the development of integrated circuit technology during the 60's that made the guidance computer small (and reliable!) enough to go to the moon possible.
If you think the Apollo program was cobbled together out of parts we already had in the 40's and 50's, you need to do some closer investigation.
150 Opening BINARY mode data connection for slashdot.sig (129323052 bytes).
He asked for cures and you didn't list one.
There is no cure for HIV and there is no cure for Hepatitis B.
Woah, commented on 2 of your thread without realizing it was the same poster!
Mainstream software is perhaps getting worse, but if you know where to look, you can get software that works better, faster, and does more than anything previously available. Maybe Glynn is just buying the wrong software and hanging out with the wrong crowd. Or maybe he is just one of those glass-half-empty types.
This guy isn't talking about technology. He's talking about a sales mentality. It's not like the computer profession is any more immune to talking up big projects than any other profession. The physicists have their superconducting supercoliders. Engineers have their dams and scrapers (not necessarily a great idea after all).
Every industry sells sizzle. This guy managed to fall for it. He started to think the sizzle was the steak and now he's disenchanted when he discovers that sizzle has no nutrients.
This is one of those guys who wants to turn life into an appliance. These people say "you're not supposed to understand how a car works, it's just supposed to get you there". Would any other person nominate automotive dashboards as the pinnacle of UI design?
Here's a new idea. Where is the idiot light that comes on when you exit a highway at full speed onto a wet cloverleaf, dial in a tight turn, and then ride the brakes because you misjudged your speed?
Surprise, there's no little light on the dashboard that tells the customer how badly they drive. Why design a feedback mechanism that modifies behaviour when we can build airbags instead? Nice UI pal.
It's not computer science that sucks, it's people that suck. It always comes back to people getting what they really want, and what people really want, for the most part, is to look as good as possible while behaving like idiots.
J.S. Bach didn't have to run a marketing campaign and tour 48 countries to launch his weekly cantata either.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
Oh, I'll bet you do a Fourier transform more than several times a day. JPEG image compression and MPEG video compression are both based on the discrete cosine transform, which is really a discrete Fourier transform in sheep's clothing.
Remember how terribly slow JPEG decompression used to be back in the days of yore? That's a large part of the reason.
I thought that's what OLE^H^H^HCOM or whatever was supposed to avoid. Or am I smoking crack?
So what happens if I try to embed a Word document in an Excel spreadsheet cell?
--JoeProgram Intellivision!
"Agriculture allowed humans to spend less time..." In "Guns, Germs and Steel"* Jared Diamond argues that agriculture does not save any time over hunting/gathering. (Work hours get longer, and nutrition gets worse). What it does allow is more people to live in a smaller area, and for some people to control others access to food. *workplace proxy prevents me finding the ob. amazon.com link
That's exactly why it was noteworthy.
So what happens if I try to embed a Word document in an Excel spreadsheet cell?
It loads Word... it was only Excel in Word that was stated to exist - probably due to problems with Excel not operating properly when embedded in Word.
I'd love to see authoritative confirmation or denial of this old tale - remember, it only applies to Office 95 or 97 or so, and I can confirm that you can uninstall Excel and still edit embedded spreadsheets in Word... but that might be due to Excel DLLs left behind or something.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
Well, let's see:
a search for "cure" at www.dictionary.com gives, among other meanings, these:
- An agent, such as a drug, that restores health; a remedy.
- Something that corrects or relieves a harmful or disturbing situation.
my example with AZT is an example of a drug, that restores health of HIV patients. You are right in the sense that it does not cure HIV completely, one has to take the drug all the time. But there are some people who live for 20 years with HIV! (BTW, AZT is only a first generation HIV drug, now it is HAART).
Another example, with vaccine, illustrates the second meaning of the word "cure". Vaccines do correct a harmfull situation of unprotected organism susceptible for infection.
So, I think I did give examples of cures.
Some finer points in design; I see some stuff like this a lot as well:
function bob( varlist ) { $var = $joe + 12345; return $var; }
You're wasting memory and such for the variable declaration and assignment, simply return $joe + 12345;
Well, compiling a 'C' equivalent in CodeWarrior for 68K, both versions come out something like this:
As always, with your language and compiler, YMMV. But don't sweat the details until they really matter!
"Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
I'm not your typical user, but the source code was indispensible for a problem I had last month. I had a badly corrupted FFS filesystem with important data. fsck_ffs crashed repeatedly on a segmentation fault because of an unchecked null pointer. If that had been a Windows problem, I would have been out of luck. But since I had the source, I recompiled fsck_ffs with debugging information, chased down the offending line in gdb, fixed it and submitted a bug report back to the OpenBSD project.
Lots of bugs are discovered by end-users because they subject the product to a whole lot of punishment under real-world conditions not forseen in the development testbed. It isn't often the case that the bugs are so obscure or elusive, that they cannot possibly be solved by anyone but rare experts. Localizing the problem through access to source code and debugging tools drastically enhances the chances of solving the problem, particularly when the problem is repeatable.
Conversely, in the land of Microsoft and closed source, most bugs go uncorrected to the endless chagrin of users. Lacking source code, you have almost no chance of understanding or fixing problems. And it's an extreme rarity to find a software company that will work with you immediately to track down and solve these problems, particularly at 3 AM on Sunday, unless you're paying some hefty fees for a gilt-edged support contract.
It's interesting to read the responses to the "source code is useless" comment... mostly concerning OSS/bug-fixing and so on.
Actually, I didn't hear the talk but my interpretation of this comment was a more commercial one. Source code is obviously very important, but often (especially in the last few years after open/proprietary software has become technology-flavour-of-the-month with investors) given too much weight, especially in disputes.
Let me give an example project that I was involved in.
I was team leader of a group of programmers delivering a transactional internet application on a very complex software base including WinNT, Solaris, Java, Corba, J++, XML (let's not talk about why there were so many redundant technologies involved, it will just make me angry...) when a "dispute" arose concerning payment of large amounts of money from the client to ourselves. As often happened in those halcyon days, the client was backed by investors with big pockets and little brains. The dispute got to the point where we refused to develop any more code without payment of current arrears and some payment in advance, and they refused to pay without the source code that we had produced so far - *although* the contract stated clearly that source code would be handed over only on completion of the entire contract.
It was pretty obvious what these guys were planning - break the contract, take the code, and finish it on the cheap with the remaining $ that they hadn't blown already. The concern from our management was that they would be able to get their hands on our IP which might be worth more than what we had managed to collect from them so far.
I knew these guys pretty well, having worked with them for months together in the same office. I knew roughly what their time and money budget to completion was, and that it would cost way more to finish. More importantly, I *knew* how ugly some of that code was, because we had just finished a functionality push and needed to bullet-proof some of the underlying architecture or the thing would fall over. And... I strongly suspected that our client already had a few defectors in his pocket, and quite possibly already *had* the source code but was looking to legimate it.
So... I suggested to management that they don't worry too much about it. Even with that source code, there was no way they could find a new team to understand the project and the code base and get it to completion in time.
In the end... they cut and run, they never paid, they somehow got a copy of the source, and... they ran out of money before the new guys could finish it.
So, the source code which was the focus of the legal threats flying here and there turned out to be useless, in this case.
Anyone had a similar experience?
I'm pretty sure "Underrated" has been around at least as long as I have (mid-1999?; can't even remember). I don't know how slashcode decides which of multiple moderations gets displayed (if something is modded as both funny and insightful, which do we see?), but this is the first time I've seen underrated get chosen, so it doesn't surprise me that you haven't noticed it before. I think its most common use is for meta-moderation, though regular moderators can use it if they choose. There's also an "Overrated" rating. I pretty much have to assume you've seen all the others, since most of them appear attached to this article (especially if you choose to read at -- *shudder* -- -1).
Hope this is helpful.
>> His wife was trying to save a 2.2MB for a 2
>> page Word document on a floppy disk.
> Then it wasn't plain text!
Sounds like the old fast-save/save-as issue...
That's because it is. You're looking mostly at the contents of Michi's slides (with a few notes from Glynn for good measure). Michi spends several minutes talking during each slide, filling in a lot of details which were missed here.
> Having said that, I disagree with his blanket argument.
It only looks like a blanket argument because you're seeing everything in point form. Michi points out that most users don't know or care about source code... and he's right. Sure, you and I care about source code, but we aren't the controlling influences in the market. But even though I read and modify source code I had to confess that I've never done a security audit of any network server I rely on. Michi was trying to point out that we say Open Source is a wonderful thing, yet not many people take advantage of any of the benefits we all talk about.
I'm really pleased that these notes are up, but they really don't do the talk justice. It was bl**dy funny. :-)
Seeing that I set off such a storm, I thought it would be best to clarify what I said (and meant) when I said "Source code is useless."
:-)
First up: the entire talk is meant to be provocative and entertaining, and to get people to think about things that normally tend to get swept under the carpet. So, when I put up something like "Source code is useless", at least I know I got their attention
So, here is why I said this:
One of the often recited arguments in favor of Open Source is that having the source code is insurance against things such as the vendor going out of business or deciding to no longer maintain a product: because I have the source, I'm no longer subject to vendor lock-in.
For the vast majority of commercial software development situations, I think this argument is severely flawed. Consider the following scenario (substitute any other large and complex piece of software for an ORB, if you wish):
My company builds stock broking software that allows stock brokers to trade on-line, monitor portfolios, etc. The application runs on many machines, including handhelds. Because there is a lot of distributed computing going on there, I've decided to use a CORBA ORB from vendor X as my RPC platform. A year later, after deploying my application on thousands of machines at dozens of customer sites, vendor X goes out of business. No problem: vendor X gave me the source code, so I can just continue to use the ORB and maintain it myself...
Wrongo: I'm into building stock broking applications, not ORBs. Moreover, I do not have the in-house programming skills that are required to maintain a networking product such as an ORB -- my programmers are good at writing financial models and don't know much about sockets, IIOP, threading models, and the like. Besides, there's well over 100,000 lines of C++ code in the ORB; it takes months to get a feel for how that code base hangs together and to even begin to understand it.
But let's assume for the moment that I do have skilled programmers who do understand sockets programming and threading, and that I am even willing to pay them to work on the ORB instead of my application. Will that help me? Not likely. For the ORB to remain useful to me in the future, I will not only need the occasional bug fix, but I will also need to port it to new hardware, OS, and compilers. (It's depressing how often the code needs changing just because a new compiler version appears.) So, apart from the skills required to fix the odd bug, my programmers will require deep understanding of the code (and all the subtle hacks that have crept into the code over the years to work around various bugs in compilers and libraries); without such deep understanding of the code, my programmers won't be able to port it. But let's assume my programmers are so clever that they can do that, and that I am rich enough to afford paying them for it. Will that mean that I'm going to keep using the ORB from vendor X? Not likely. Here is why:
For the ORB to remain useful (and for my application to remain competitive), the ORB must track the OMG specifications and support new features as they are being standardized. Adding new features to an ORB is technically non-trivial. (For example, the OMG recently standardized asynchronous messaging; adding that functionality to an ORB requires large and intrusive architechtural changes and thousands of lines of code.) But let's assume that my programmers are so good that they can do all that, and that I'm still rich enough to afford it.
Will I keep the ORB? Not likely:
The CORBA spec runs to thousands of pages, much of it containing highly complex (and sometimes highly obscure) material. To effectively maintain an ORB, I need to know most of the spec pretty much by heart. It takes many months (years?) to become conversant enough with all of CORBA's nooks and crannies to correctly reflect those semantics in code. But let's assume my programmers are so clever that they can do all this, and that I'm still rich enough to afford it. Will I keep the ORB? Not likely:
To effectively implement the specification, I not only need the specification, I need to contribute to writing it and, once it is written, I need to contribute to maintaining it (yes, specifications have bugs and require maintenance just like code). To do this effectively, I have to participate in the OMG process. This not only means becoming an OMG member (which isn't cheap), it also means attending meetings all over the world, devoting large amounts of time to participate in task forces and to respond to RFPs, and to engage in long drawn-out discussions and lobbying with other members to make sure that some proposed new feature doesn't make a mess of my ORB architecture.
The above illustrates why I said what I did: pragmatically, the source code is useless to me. Remember, I originally was in the business of building and selling a stock-broking application. By keeping the ORB, I'm committing myself to paying three or four full-time staff members to look after the ORB, at a cost of several hundred thousand dollars a year. (And that is assuming that I have staff members who are sufficiently competent in CORBA technology, which is unlikely to be the case.)
When vendor X goes out of business, the realistic course of action for me is to shrug my shoulders and to find another ORB from a vendor who I think won't go out of business. That's far more cost-effective than hacking around in a large code base that I don't understand and that isn't directly relevant to my core business.
Whether we are talking about a CORBA ORB or some other piece of code here, such as a compiler, container library, database, or whatever, the reality is that all these bits of technology are far to complex and specialized for me (as an application developer, that is, a user of the technology) to be able to do anything useful with the source code.
Of course, none of this means that Open Source is bad, or useless. Far from it. But it does mean that, for the vast majority of Open Source customers, the source provides little (if any) insurance. Open Source projects do shut down occasionally, just as vendors occasionally go out of business. When that happens, I'm hosed, source code or not.
Cheers,
Michi.
Hmmm... I think a big problem here is that my comments were taken somewhat out of context. This wasn't about blasting Open Source at all, but to simply illustrate that Open Source can't satisfy all of the world's software needs. A lot of code we need, such as aircon controllers, engine management systems, etc. is too specialized and not sexy enough to attract Open Source developers. So, such source will continue to be written for monetary compensation. Open Source is great -- without it, I wouldn't be able to run my business. But I thought it would be worthwhile pointing out that (like any other model), the Open Source model isn't without problems and that its proponents (just like its opponents) sometimes use arguments that don't stand up under closer examination.
Cheers,
Michi.
I'm in the process of building a new house. When I started looking for architects and builders, I always asked them whether they used a CAD system for the plans, and whether they could do things like provide virtual walkthroughs for a design.
I talked to dozens of different companies and found only a single one that would use CAD for their building projects. (I didn't chose that company for other reasons.) All the other companies, guess what they do? They employ draftspersons who create and modify plans exactly as they did twenty years ago, with pencil, paper, and whiteout.
I was quite surprised by this and asked for the reasons. The common answers were:
- The learning curve is too steep. It takes more than a year for someone to get proficient enough with a CAD system to be effective.
- The cost of the software and hardware is too high.
- We tried it and the software was too stupid. It knows nothing about building regulations, will let you do impossible things, such as putting a twenty meter span for a ceiling without the appropriate supports, it cannot cope with things that we need to do routinely, such as curved stairs, etc, etc.
- The software is buggy. We had endless reliability problems and gave up in the end.
- It's too slow. A good draftsperson is faster with pencil and paper than with a CAD system.
- The overhead isn't worth it. For a small building, I can do the wiring plan in a few minutes on paper. If I use a CAD system, I spend hours having to enter all sorts of detail first, and then, most likely, I get a suboptimal wiring plan.
So, at least in the Australian housing industry, CAD systems are essentially non-existent with both builders and architects.
Fallacy 4: Programs Help Their Users Which he then says is a false because they are only focused on upgrades, money and crushing the competition. And yet, later he'll say why open source is useless. Um.
That's quoting me out of context. I stated that source is useless as insurance against a vendor going belly-up because I'm not in the business of maintaining whatever software I got from that vendor, and because I'm unlikely to have the skills to look after that source.
Fallacy 5: If It's Graphical, It's Easy CLI might be more "powerful" in the hands of a skilled user (I won't give mine up), but well done GUIs can be self explanatory
You said it. Well-done GUIs can be a joy to use. Unfortunately, the majority of GUIs I come across are not well-done. The text widget into which I'm typing this right now on this web page is a prime example. It's about 50 characters wide, and 10 lines tall. That's too little context to be useful -- I can't refer back or forward more than a few sentences. When I resize my web browser to make it larger, everything resizes but that window, which stays exactly the same size. So I'm doomed to type into this abomination with minimal context, and I don't get even the most basic functionality for text editing, such as searching or spell checking. So, quite often, I write a reply using my favourite text editor and then paste it into the widget for posting. I shouldn't have to do this.
But back to the point: the fallacy is that people are told that, just because something is graphical, it's easy. That's simply untrue. Even with a GUI, I still have to understand what I'm doing. The more complex that task I want to perform, the more I need to know, and the more complex and clutter the GUI gets. Take the average application package and try to use it. Here are a few unusability examples:
- In older versions of Word, when I did a search, the highlighted target sometimes ended up underneath the dialog box for searching. That's quite jarring, because I just pressed the "Find" button and now I'm looking at a page that doesn't have a highlight anywhere. I'm confused until I realize that the search target is probably underneath the dialog box and move the dialog box out of the way.
- In later versions of Word, the problem was "solved": when I do a search and the search target happens to be underneath the dialog box, the dialog box repositions itself such that the target is visible. What a hopelessly useless way to deal with the problem! It means that, on a document where I'm searching for a frequently-used phrase, the search dialog keeps jumping around madly without rhyme or reason.
Why not scroll the document and leave the box in place instead? For that matter, why does a search require a dialog box at all? Couldn't I just type the search string once and then have the dialog box go away? Couldn't we do away with the dialog box altogether? For example, when I pull down Edit->Search, why can't a text widget appear right there underneath my mouse pointer and automatically go away as soon as I hit Enter?
- Try Adobe Acrobat Reader and use its search function. Once you have typed a string into the dialog box and hit enter, the dialog box disappears and the search target is highlighted. Nice. To search again, I can simply hit ^G to go to the next target. Nice. Except that there is a bug in the code somewhere: if you do other things after searching, such as scrolling around or following a hyperlink, the next time you hit ^G, the dialog box reappears and you have to hit Enter as well to initiate the next search. Thereafter, every time you hit ^G, the dialog box pops back up. Really annoying, and simply a bug. But that bug has been there for years...
- I use Microsoft Outlook occasionally to connect to a mail server with SSL. The server doesn't have a properly signed certificate, so Outlook pops up a warning dialog and asks whether I want to continue. Fine. But more than half the time, the dialog box ends up underneath the main Outlook window where I can't see it! Yet, the box is modal, so Outlook itself appears to be hung. Moreover, the dialog box doesn't have a button on the toolbar, so I can't bring it to the front by clicking on its button. If I minimize Outlook, I also minimize the dialog box. Only way to get at the dialog box is to move the main Outlook window out of the way to expose it. This is atrocious design!
- I typically use several programs at once on my Windows desktop. Frequently, I initiate something, such as an FTP transfer or a compilation and then go back to doing something else, like writing email. I'm a touch typist, and I type fast. In the middle of me typing into my xterm, a dialog box pops up from nowhere to ask me something. That dialog box grabs the focus and, before I know it, several of my keystrokes have been sent to that dialog box, which obediently closes and does God knows what. This is unspeakably poor design, yet I have to put up with it on a daily basis.
There are thousands of examples along the same lines -- sometimes the desktop metaphor is used incorrectly, sometimes there is a bug, and sometimes the designer of the GUI was unbelievably incompetent. Why is it that these problems have not been addressed, even though we've had GUIs for more than 15 years?
Fallacy 6: Computers are Getting Faster Computers are getting faster, the experience is not. On my Apple ][, I could turn it on and in a matter of several seconds, be typing in a word processor. But then, it didn't have spell checking, fonts, and I couldn't make a spreadsheet larger than something like 32x64.
The computer you are using today is likely several hundred times faster than your Apple ][. Are you really suggesting that adding features such as spell checking and fonts justifies slowing the program down, even though the hardware is several hundred times faster? Are you really suggesting that it would be technically impossible to make a current-day word processor load just as quickly as the one you used back then? All that in the face of hardware that is hundreds, if not thousands of times faster, and in the face of all the progress we are supposed to have made in computing in the past 15 years? If we put our minds to it, we *can* have word processors that load in a split second, and we *can* have GUIs that are easy to use and don't spring surprises on us. But, for some reason, we don't seem to consider it worth the bother...
Cheers,
Michi.
First, realize that if you really thought you could learn a programming language in 10 minutes, you're too stupid to be a programmer.
Spend the remaining 9 minutes 40 seconds letting that sink in.
I appreciate the point
Cheers,
Michi.
The whole self-help book industry is insane.
:)
Anyway, I still can't imagine those books sell. if their claim was true, 10 minutes is short enough that you could read the book while still in the bookstore.
The enemies of Democracy are