Slashdot Mirror


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"."

14 of 559 comments (clear)

  1. Good points! by MattRog · · Score: 5, Interesting

    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
    1. Re:Good points! by MattRog · · Score: 3, Interesting

      Kris,

      I agree with you as well -- if I came across as 'QA should only be programmers' then I apologize; that was not my intent.

      QA is more than just 'poking' at the program and seeing if it breaks. It's authoring test procedures, finding new and interesting ways to break the program, interacting with other developers and management, and a whole lot more. As a programmer I know I hated to write test procedures -- it is very very boring and as the complexity of what you are testing increases linearly the complexity of your test procedure increases exponentially. :D However, there were guys there who, although they didn't know much about programming, wrote EXCELLENT and in-depth test procedures and saved my butt many a time. :)

      However, we'd write up bugs such as "Inserting 32 characters in field XYZ on form 123 causes program to crash" which, in the grand scheme of things, could be viewed as either a "Show Stopper" (highest priority) or a "Do We Care/When We Have Time" sort of a bug. Considering adding range checking to a form is trivial giving QA clearance to fix that would result in a much better program (again provided the QA developers are qualified) and give the regular developers more time (since we'd find 30 or so of these things on a single form) to fixing the hard-core bugs or developing new features.

      --

      Thanks,
      --
      Matt
  2. Re:Of course. by nosferatu-man · · Score: 5, Interesting

    "Given enough eyeballs, all bugs are shallow."

    An absurd fallacy. Perhaps for fetchmail or hello, world! or other,
    similarly sized projects, but nowhere else. Debugging require not
    merely a pair of eyeballs, nor even crackerjack programming skills,
    but mostly an understanding of the problems and compromises that went
    into the creation of the software system in the first place.

    To produce better software, we need better programmers, and better
    tools, not meaningless platitudes about the business justification of
    Open Source licensing.

    Peace,
    (jfb)

    --
    To spur "enterprise Linux," Big Bang, the distributed two-phase commit.
  3. Re:Of course. by gmack · · Score: 5, Interesting

    Complete BS.. I've yet to see any testing that manages to find 100% of the bugs.

    Through my time as a sysadmin I've come accross bugs in both open and closed source software and have definatly come to appreciate being able to fix the bugs on my own.

    Example: Last weeks helpdesk software installation. The software was incompatable with qmail. Fix: 5 minutes. Any guesses how long it would have taken to get the closed source equivelant fixed?

  4. Interesting if debatable by Cato+the+Elder · · Score: 3, Interesting

    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?

  5. Re:I love Fallacy 10 by JohnDenver · · Score: 5, Interesting

    I have to agree somewhat with Fallacy 10


    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


    It seems like he's trying to make the point that many open source developer's motivation is in the wrong place (making technically interesting, but not useful software), but he does a pretty horrible job conveying that with these bullets.

    While there are *some* (I'm not going to make up statistics) who do a pretty horrible job at making useful softwarebecause of poor motivation, there are also plenty of Open Source developers who's contributions to core technologies are VERY underappreciated because they were able to make the technology transparent.

    Unfortunately, he begins to make some good points about these issues.

    1. He right insofar as source code isn't everything and won't solve everything, but that hardly makes it useless.
    2. Yes the economic model is pretty doubtful at this point. Some have made it worked, others haven't. Some do it for profit, others as philanthropists, and others do it to set standards that will benefit a consortium.

    Personally, I think he's just beginning to hit the iceberg by pointing out these fallicies that many of us need to address, but he doesn't follow through with supporting arguments. Instead, it's as if he expects us to just "get it" because he "gets it".

    Maybe we can expand on his work and fill in some of the holes.

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  6. Re:Of course. by Jeremi · · Score: 3, Interesting
    "Given enough eyeballs, all bugs are shallow." An absurd fallacy.


    Care to back this up, say with some examples of projects where large numbers of people swarmed over the code and still couldn't fix the bugs?

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  7. Re:I love Fallacy 10 by Pinball+Wizard · · Score: 4, Interesting

    If people who sell software for money want to continue to do so they have exactly one choice: pay the people who are willing to write software for free.

    The Harvard model(turning away qualified applicants because you have more applicants than slots to fill) ain't gonna cut it in the world of software. If the software industry expects to sell its wares, it damn well better hire all the qualified applicants.

    Elitism will not work. Because if people have the ability and the time, but no job, they will sit around making high quality software and giving it away for free. And that poses quite a little problem if you have a similar product and want to charge for it, now doesn't it?

    The current downturn in the computer industry is by far the worst I have ever seen. Ever since I can remember(back to the early 80's when PC's first arrived) the computer industry had always expanded and provided more jobs. Now its experiencing its first real downturn and you have a lot of skilled people without jobs. If those skilled people continue to produce software, but they give it away for free, that spells disaster for software companies who expect to sell their product for money.

    Open source software will indeed "catch up" to its commercial equivalents. I give KDE less than five years before it is equivalent or superior in every way to Windows. Same thing with the Open Offices, the databases, the programming languages, etc. The software industry has one choice - start paying open-source programmers or die.

    I'm not sure if our current economic model can deal with the situation of high quality products being given away en masse for free. I certainly don't see how the software industry can grow like it did in years past. Since the computer industry has led the economy for the last 20 years prior to the current recession, we may never see a recovery. Unless we revamp our current economic system to deal with the fact that what had previously been leading the economy into prosperity(software) is now being given away for free. Also, on a global scale we have to compete with entire economies of scale(China) that don't pay for software.

    --

    No, Thursday's out. How about never - is never good for you?

  8. I have to disagree by jandrese · · Score: 3, Interesting
    A lot of these "fallacies" are the types of things I see in joke emails. The problem is they're simply not true.

    Lets run down them quick:
    1. True, computing is not easy, especially if you are a programmer. However, for user applications it's frequently easy enough. How long did it take your mother to lean how to type a letter in Word? I bet it was less than a few minutes. More complex things may be beyond her, but for what she wants to do it's easy enough.
    2. False, but he's in the wrong context. Ask a meterologist if he'd like to run those weather simulations without a computer. As another poster noted, we are about twice as productive now as we were back in the 1940s.
    3. Vague. I'm not sure exactly what he's getting at here. I think he's talking about how software companies are unfriendly to their consumers by requiring them to buy upgrade products by not making their software forward compatable (IE you can't open a Word2000 document in Word 3). The software industry is somewhat unique in this field , so the comparision is not completely fair.
    4. True. GUI's do not make everything easier automatically, however a well designed gui will tend to be more intuitive than a well designed text interface, because we can pack more precise contextual information (make the widget buttons look like real life buttons for instance) into the graphical representation of the concepts we are trying to convay. They make ergonomic pointing devices.
    5. False. Even when you upgrade your software, it's generally faster than it was 10 years ago. People look through the past with rose colored glasses and forget that you had to wait half a second for the stupid menu to draw. Booting time is largely a function of how long you need to probe all that new hardware you didn't have 10 years ago, and to load a real operating system instead of DOS (which is no doubt what the speaker is referring to). The webpage example is particularly bad, as 10 years ago there was no such thing, and 5 years ago pretty much the entire web was slow (and your slow computer took forever to render even the simplist page). Compiling is definatly faster than it used to be too, but I havn't changed my compiler much over the years (still gcc).
    6. False, you may not need to animate fonts (what dose that even mean?), but my productivity is much better when I'm using vim instead of ed. Sure we don't have to create a pie chart, but it sure helps make the meeting go faster when you don't have to run through the major numbers and have something to point at. Where does that 99% statistic come from anyway? I havn't printed a document for work in ages. Nobody wants to get a paper copy of anything short anymore, they want it emailed to them the instant it's ready. Nobody reads long documents unless they really really have to, so there is little need to print out your documents. Caveat: I'm an engineer and write fairly techincal documents ment mostly for other engineers, I don't spend a lot of time "prettying up" my documents because it's useless.
    7. Kinda True, but the programmers don't have to be as "good" anymore. There are a lot of tasks out there that are execllent for mediocre programmers and their elite VB skills. Because our development environments (and laguages to a certain extent) have gotten so much better, we don't have to worry so much about hiring the rocket scientest types to design the "save as" dialog or the disk IO routines. This isn't to say there aren't a lot of really talented programmers out there, but there are more "fillers" as well. I'd say the average programmer talent is higher than it was a few years ago, simply because more people ARE taking formal education on programming. A few years ago it seemed like every other developer I met graduated with some weird degree like animal husbandry and then got a job programming. Also, experiance is the best teacher, and many of the beforementioned people are the master programmers of today.
    8. True. Data structures havn't changed much, because they do their job. People aren't really interested in fixing the array because it isn't broken. Also, some algorithms are about as good as they are going to get (and have been proven so), such as sorting, searching, etc... Was the speaker expecting someone to come up with a better Traveling Salesman by now? I think most great programmers have written assembly at some point because the great programmers are the old ones with lots of experiance. The old ones wrote assembly because that's all they had back then (or they come from a time where structured languages were still in their infantcy).
    9. False, I'd say most modern programmers can say Yes to the first one because they did it in school, but once they graduated they immediatly started using the toolkit like any normal person. I'd say yes to the second only if they're programming in C++ (not a safe assumption speaker!). What does HCI have to do with data structures and algorithms? Wouldn't the interface programmers be more interested in that? We were tought when to return bools and ints in school, thank you very much. Granted, C programmers have it easy (or hard depending on how you look at it) since they have no native bool type.
    10. False, Without open source practically none of my projects would have gotten anywhere (since I tend to work on nonstandard routing protocols and testing them in embedded enviornments). The Economic Model is doubtful in many ways (if you are going to try to make money off of open source at least), but you don't write open source software to make money. Having the source code has saved my butt a couple of times when tracking down very obscure bugs only brought forth by running nonstandard protocols (although they SHOULD work, sometimes they don't). The Nerd culture comment is too vague for me to say anything about.
    11. False, without standards we are left with the connector conspiracy everywhere. For many things, (networking, communication, HCI!) standards are they key to making the whole thing work. The last part is just a random insult.
    12. False, Progress in many areas is fast, other areas slow. You can't single out a few examples and say that everything is slow. PC OSes have become much much better in the past few years (especially on the Windows side). PC hardware is much easier to work with than it used to be (remember when you had to configure IO and IRQs manually and when you could accidentally fry the Motherboard by plugging in the power connectors backwards?). Remember when MacOS had no memory management to speak of? Remember when it was hard to network computers with TCP/IP? Remember when everyone was using their own standard for everything and nothing ever worked right if it wasn't plugged into the same brand of machine? Remeber when programmers had to write in assembly or even toggle the bootloader in on the front of the machine? Do you remember when the weatherman wasn't able to accuratly predict more than a few hours into the future? Remember carbourators? Don't you like your Tivo? Just because we don't write newer and better sort routines every year doesn't mean there isn't progress.
    13. True. The computing industry is very hard to predict. A lot of people were broadsided by the Web for instance.

    14. 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.
  9. Insurance by gmhowell · · Score: 4, Interesting

    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
  10. Re:wrong on all (most) counts by Bruce+Perens · · Score: 5, Interesting
    Remember, this is one of the people behind CORBA. He would say source is useless. He wants a software world of black boxes connected together. Most people have accepted that this particular promise of OO programming was hype. He hasn't.

    Bruce

  11. Programming is NOT about DS & A by Ars-Fartsica · · Score: 3, Interesting
    Come on now, when is the last time you wrote a data structure to store the primitive types of your language in a way that hasn't been done before?

    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.

  12. Re:Of course. by Tony-A · · Score: 3, Interesting

    Building plans are worthless to most people. Most of the time. Still better if they exist.
    Two latent bugs. With the source, it's almost as good as if the bugs didn't exist. The overall effect is getting 5-nines reliability at a cost of 3-nines reliability. Also if you are facing a scissors/rock/paper scenario, any assumption you make will be wrong is some cases.
    For most people, most things, most of the time, source code is useless. For most people, 5-nines reliability is useless expense.

  13. Computer Science is not Engineering by JohnsonWax · · Score: 3, Interesting

    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.