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!
"The only point that didn't made sense in this summary was the one about "source code being useless"
The whole thing didn't make much sence if you ask me...
Cruise TT
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...
Hello, your webpage is in violation. Please remove all content at once.
"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!
. . . the author comparing apples to oranges, over-simplifying, and being otherwise wrong about everything.
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"
Fallacy 10: Open Source is the Answer
- Economic model is doubtful
There's no doubt - there is no economic model.
- Source code is useless
It is. It is of dubious quality, often unknown authorship and frequently abandoned.
- Motivation for Open Source is inappropriate for most software
Right. The motivation more often than not is "because it's not Microsoft".
- Nerd culture is counter-productive
Especially the last point. Slashdot denizens often say they want Open Source to triumph. Do they work toward this? Nope... they espouse a culture that is so self-satisfied and unbearably superior that it alienates the very people who would have to embrace that culture for the aim to be satisfied.
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!
1 reply below your current threshold. I bet it's cmdertaco and his page widening. Good thing i've got +1 long posts, -1 foes, cmdertaco=foe, reading threshold=0.
ahh yes, page widening is gone, and i still get -1 troll goodness..
security through obscurity = modding down anti-linux posts so maybe noone will see them
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?
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!
You can make a living designing open source software.
Microsoft will lose the desktop to Linux.
Gnome is useful.
vi is the best text editor.
You don't need a degree to be successful in IT.
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.
I agree with this post.
Klerck's PLPs are fine though, so you'll not he is not filtered.
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?
It's about time somebody admitted the correlation between a good programmer and knowledge of assembly language.
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
If there weren't some kindof global networking systems, my job would be tens of magnitudes harder. First, it would be a bitch to get a lot of technical information(ala RFC's). Second, snail-mailing customers code or patches is highly efficient. Computers with networks have made _huge_ productivity gains. Many of the idiots that think it didn't happen are still living in the 80's.
...would consider the incomplete notes someone took at a keynote address to be news.
Obviously, source code isn't useless. However, it's not a minor undertaking to start sifting through someone else's poorly documented (or undocumented) source code trying to fix a problem. You have to discover the design by reading the code, figure out what it was supposed to do, and then fix it.
Fixing defects is hard enough when you designed and commented the code!
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
I'm sorry that we can't hear about Doug Henning's views on Computing Fallacies.
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
I wasnt bothered by klerck's PLP's, but he specifically asked to be marked as a foe in one of his posts, so I obliged. so now I dont see klerck PLP's, or cmdertaco PWP's. Sorry klerck, buddy, but you asked.
security through obscurity = modding down anti-linux posts so maybe noone will see them
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.
Fallacy #14: Making up fallacies to stretch the list to an "unlucky" 13 items strengthens your point.
Fallacy #15: This item is a fallacy.
;)
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
This does not inspire me with confidence.
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...
"Fallacy 1: Computing is Easy
- Teach Yourself C++ in 14 Easy Lessons
- CORBA for Dummies
- Complete Idiot's Guide to Win32
- Java for Morons
- Windows 98 Unleashed
[now examining different areas - non books]
- Brain Surgery in 14 Easy Lessons
- Bridge Design for Dummies
- Complete Idiot's Guide to Contract Law
- Air Traffic Control for Morons
- Ballistic Missiles Unleashed"
Please! Computing is relatively VERY simple compared to most of these things. Programming is a tool, knowing how to program doesn't make you an expert in anything. All it means is that you can use a hammer. What we have on Slashdot are thousands of people who think they're the shit because they can pound a nail. Build me a house I say, and they don't know where to start. If this is what he means by "computing isn't easy" then I totally agree with him.
"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
In that respect, it's perfect for a keynote speech.
The idea that programmers need to think more about design and usability has been around for years, unfortuantely the solutions to those problems (OOP, etc.) have been partially resposible for his "Fallacy 6" (We have come along and destroyed all the gains we have made in hardware.).
If he actually had some ideas about how to make programming more efficient without sacrificing performance, then the speech might be noteworthy, but for a keynote, all he has to do is sound somewhat intelligent and reap the applause.
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.
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.
frankenfoods from Monsanto (1960s+1990s)
video games (1980s-1990s)
cash machines (1960s)
The Pill (?)
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
"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.
- Windows 98 Unleashed
- Ballistic Missiles Unleashed
Haha, very funny! He really drives the point home with that comparison. Everyone knows that the Air Force requires at least a GED to be a nuclear missle operator. Or proof that you're willing to take the GED.
Name one cure for any disease that has been discovered in the last 50 years. Name one completely new method of mass transportation invented in the last 50 years as far reaching and important as the car or airplane (please don't insult us all and say "the segway"). Name one micro technology as important as the transistor? I think you get the point. Technology may be getting smaller every day, but there have not been any really new ideas for a very long time. The Internet came close, but at this point is little more than another kind of Television.
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 imagine the talk was much more interesting...
This looks like someone went to a talk and copied down all the punchlines to a bunch of jokes without understanding how they were meant to be funny.
Any response to this article is going to be stupid because it's an attempt to try explain someones jokes.
Obviously no one could visit an American grocery store and suggest that it would be more efficient to run without a computer. (That's explain the effiecency joke for those of you who are stupid).
BTW. Don't buy _The Inmates are Running the Assylum_. Alan Cooper is a moron with a tremendously exagerated sense of self worth. It's incredibly aggravating to try read his stupid book on UI when all he wants to talk about is how he was beat up as a kid for being a geek but how cool he is now. The way he tells it, all the cool kids won't give him wedgies any more because he is sooo sooo very cool.
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!
>> Penicillin - 1920's technology
>When was the last time you had _penicillin_ prescribed?
Last year when I had infected gums after surgery. It's still used quite alot and it's cheap. It still works too (just makes your piss smell, but lots of antibiotics do that).
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!
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.
amen to that
tarballs rocks. I have my home linux remade using tarballs. shame I dont have a big enough partition to build mozilla, tough. that thing is huge
"Contrary to popular belief, UNIX is user friendly. It just happens to be selective on who it makes friendship with"
You need to know them *before* you learn about high-level stuff, otherwise you are just a pointy haired designer. Not necessarily the details of red-black trees, but at least their basic ideas, and linked lists are fairly fundamental.
Database design (normalisation, etc.) is very important for those using databases; it is strange if someone does that without learning how! Since I'm not writing a persistant online world, I do not currently need to know SQL but if I did I would surely read up about it.
Since my answers to the questions (linked lists, STL, HCI) are lots, lots, several, I can't really see his point...
Your peep-hole optimisation of the return statement is no way a design issue - any decent compiler would get rid of that, and if you're using an interpreted language you're asking for sloth and run-time errors. (You can tell I like typed languages).
True, in many fields QA qualifications could be improved, but in my current field (games) they are not programmers at all, they are kids dragged off the street. So you can get 3-5 of them for the price of a programmer, and they do black-box testing only. (The programmers do their own white-box testing).
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
He makes some valid points about productivity etc. But clearly he isn't a real programmer..
Why on earth would one want to use linked lists in this day and age? Or assembly language for that matter? Does he want us all to write the OS?
I think he overheard some old Turbo Pascal programmer on a train once...
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
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.
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.
And what exactly is wrong with my VW?
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
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
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.
Nerd culture is counter productive. I love that one.
I've done it. Sometimes it takes someone
else looking at, thinking about it, and figuring
out something that other's have overlooked. I once
figured out a bug in Vxworks TCP/IP stack. It didn't work with multiple ethercards. I sniffed
the data, saw an error code, looked it up, looked in the code for it, and there it was: hardwired for
one connection. Re-jiggered the code and fixed it.
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
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.
AYYY - MEN! Bruddah! If you disagree then you're part of the problem so please go work for McDonalds or shoot yourself. Thank you.
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
While there may not be a Complete Idiots Guide To Contract Law, there is Business Contracts Kit for Dummies
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.
And how he uses the computer. He really doesn't care about linux or windows. All he wants to do is turn on the computer, have it boot up, click on the happy icon and use it.
M$ has built a culture on exploiting that desire of the average person for profit. Right or wrong, they've been pretty successful at it.
Linux has not. My dad really doesn't want to download Debian, burn it on CDs, answer yes or no to 10,000 different packages, have it boot up, find out the network driver needs to be configured, reload the driver about 100 times, find out that XFree86 needs to be configured, restart X about 100 times, find out that window manager needs to be configured, find out that sound support for said window manager needs to be configured, find out where to get StarOffice, discover that the window manager he's picked isn't really compatible with StarOffice, reconfigure X to use a different window manager, configure new window manager to put StarOffice in the launch menu, click on the happy icon and use it. Good luck find a single place you can get all the docs for doing all of this. Good luck if you don't have to get onto the net to get some of the docs you need.
Ok, maybe he doesn't need sound support. But it comes configured and integrated with Windows out of the box, why can't it be the same with linux? Nah, then there wouldn't be any opportunity to tweak!
The culture of unix will never allow it. Unix is built on a culture of tweaking, tweaking, tweaking. Which is fine if you like to get tweaked, but some of us actually want to get some work done.
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.
Having spent longer than I'd like to admit working tech support, I can confidently say that most users have a solid grip on single and double clicking, but have no concept of what that other button on the mouse does or how to use it.
... 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?
You probably pay your plumber twice that. Ha-ha!
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 =)
Here is some more funny stuff.
... 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.
...form over content...
Sounds like a lot of the windowmanager/theme work I've seen. (OK, so this is bleedover from another topic)...
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!
sPh
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.
As they say, you get what you pay for.
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.
Is it my imagination or are the MS whores showing up in greater numbers than usual? Whenever a chance arises to blast Open source, Linux, Linus, or anything not pro-Microsoft they pop out of the woodwork like cockroaches, leaving their infantile rantings scattered about the forum like insect shit. And having about as much value, I might add.
I suggest that we modify the account creation process to identify these pathetic losers so we can filter them, much as (to my incredible joy) we can filter ACs. Questions would include things like:
- do you dream of being Bill Gates?
- do you desperately want to meet Bill Gates?
- is one of your top ten goals to give Bill Gates a blow job?
Anyone who answered 'yes' to any one of these would be identified as a Microsoft junkie, subject to filtering. Then we could read slashdot without having to deal with yet another semi-literate rant on why Open Source or Linux is the spawn of the Devil and Bill Gates is the Second Coming (or whatever, so long as they get a taste of the Big Nerd's load).
Max
My god carries a hammer. Your god died nailed to a tree. Any questions?
"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
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.
I use a lot of source code written by other people, most of it for purposes that, while legal for my personal use, would be illegal for me to retransmit. Example: I have a very pretty young lady (okay, she's also scantily clad) on my desktop that informs me that I have new e-mail. I based the "buffy" (biffy?) on two other people's code and captured and "adapted" various graphics from the Internet. I would be sued into oblivion if I made the graphics available to others. BUT, having the source code and knowing just a little coding, my life is that much more enjoyable.
Geez! Ham radio is useless, we should do away with it. I can hear all I need on the FM dial.
- tlk
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.
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.