Slashdot Mirror


Why Software Still Sucks

atlantageek writes "The man who brought you (or somebody else) virtual reality speaks to upside about the sorry state of Software." "The Guy" is Jaron Lanier, and the article covers a fair amount of stuff. This isn't a super smart technical article, but its got a lot of interesting comments on subjects ranging from software, Linux, open source, Unix, DeCSS, and more.

379 comments

  1. Allow me to disagree. by S1mon_Jester · · Score: 1
    Quote: I believe software sucks because it's not designed properly.

    Engineering software assume that designing/building/testing code is difficult. Sorta like building a bridge.

    Frankly, proportionally speaking, it's not difficult. What is EXTREMELY difficult is determining end-user requirements. Our problem isn't that we don't know HOW to build the bridge (and make it safe) but rather attempting to figure out that the user wants a bridge in the first place. (As opposed to a ferry, as opposed to a cargo plane, etc.)

    Our requirements come to us not as "I want a bridge that'll support a 10 ton truck." Rather, they come to us and I'd like to get from there to there. And it should have wings. And float. And it'll need to support a 10 ton truck.

    Until this problem is fixed, software engineering won't be able to 'solve' anything, because the requires are always changing.

    1. Re:Allow me to disagree. by H310iSe · · Score: 1

      Coming from a support background it seems to me end user's requirements are largely based around making the software work like a toaster. One push button, only goes one way, makes toast. Only it should also load the toast, from the refrigerator, where it put it after it bought the bread, with the money it earned selling newspaper subscriptions to the infirm encephalitic marketing execs who caught their disease by prostituting their companies to end users who want a toaster. You know? I mean to say that user's don't need to be "computer scientists" but people need to understand computers to a certain extent. We can do better in meeting them half-way but that's as far as we (computer people) can go.

      --
      closed minded is as closed minded does
    2. Re:Allow me to disagree. by bowb · · Score: 1
      Speaking of kitchen appliances, we have an old microwave oven at work that has several modes of operation (that is modal modes that lock out other functions), and about 20 buttons, many of which are covered with arcane symbols (concentric circles with wiggly lines and the like). It's a true marvel. Even though we are all experienced programmers and we have read (skimmed) the manual, none of us can work out how to use it. More precisely we couldn't be bothered to work it out. Unfortunately, this means that we've ended up using the thing in a somewhat suboptimal way: press "Quick Set" and type in a number in minutes to heat stuff at full power. The people who designed it probably thought it was really cool.

      In contrast, I have a new microwave oven at home that has precisely two controls: one dial for the power setting, and one dial for the time. It's really quite beatiful.

      (I think the old oven was designed when microwave ovens were still new, and people foolishly thought that they might be useful for actual cooking, rather than just heating stuff up or thawing stuff out.)

      It seems that I've just reiterated what you've already said, that both the developers and users have stuff to learn. Good point :)

    3. Re:Allow me to disagree. by tom's+a-cold · · Score: 1

      I couldn't agree more.

      It's certainly not hard to do crap design or ignorant implementation: plenty of that around. But even when you do those things right, you live or die by how well you meet end-user needs.

      It seems that a lot of coders enjoy commenting on how ignorant the users are, but complex systems that are developed without user involvement just fail. And it's possible to produce technically sophisticated (and even logically provable) solutions that don't actually solve the user's problems. Effective requirements gathering and user validation are critical to software success. I know it's a "soft skill" that we look down on, but it still needs to be done right.

      One of the reasons I like RAD (and Extreme) is that it makes it easier to give the users a look into the system early in the proceedings, and to respond to user-mandated changes. I'm still unconvinced about how well the RAD methodologies scale up, though, and how effectively you can control "scope creep" when doing iterative development.

      For the whole "provably correct" approach to give you meaningful assurance of product quality, the whole system must be proven to be correct: right down to the bare metal. Not to mention comm interfaces, peripherals, etc. Otherwise the best you can do is to have some "islands" that are algoritmically proven, within a system that must still be assumed to be inconsistent. That might be good to know, but it's far from sufficient. And, again, it tells you nothing about whether you've correctly identified the requirements in the first place.

      That leaves us with the sad conclusion that massive testing (and I mean end-to-end system testing, not just unit test and out the door), and a flexible system architecture, are as important as good code in making useful software.

      Back to the topic: I don't know if Jaron is a flake or the journalist is an ignoramus. I'd guess the latter. But the article conveyed little worthwhile information. Or maybe Jaron's so used to BS-ing pothead musicians with Carl Sagainsms that he's lost his techie rigor?

      --
      Get your teeth into a small slice: the cake of liberty
    4. Re:Allow me to disagree. by UberLame · · Score: 1

      Personally, I think that end user requirements aren't that hard to determine. Like Allen Cooper focuses on in his book, The Inmates are Running the Asylum, the key is to focus not just on what the user has to accomplish with your software, but to also think about what they want out of life. Specifically, to be happy, and to not have in-animate objects make them look stupid.

      So, if for some reason I can't make my software bug-free, fast, or keep it from asking stupid questions, I can at least make it take the blame and be ammusing about it. The greatly helps the clerk that has to use it because now they aren't being force to feel stupid when my software does dumb things. Now, making the software pretty in this way doesn't help totally make up for bugs, etc, but it does make the inevitable bugs easier to swallow.

      --
      I'm a loser baby, so why don't you kill me.
    5. Re:Allow me to disagree. by Tower · · Score: 2

      Exactly right.

      Proper definition of the problem with solid requirements is an essential part of the design process. If the problem is understood, and the target is clear, everything else can go much more smoothly, and (barring changes from fiscal problems or owners of certain football teams) once solid requirements are delivered, they tend not to be changed nearly as often as soft ones... "Well, we think we'd like this, so why don't you get going on that, and we'll let you know the week before we ship that we decided to change the interface."

      PPPPPP! is a very true phrase, especially for software systems.
      --

      --
      "It's tough to be bilingual when you get hit in the head."
  2. it's because we can by msouth · · Score: 2

    The thing about software is that you, dear reader, can create it. We should _expect_ that fact, the fact that anyone can do it, to cause exactly the chaos and prevalence of mediocrity and plain badness that is being complained about here.

    Consider the huge difference between software "products" and other machine/tool-like things. Suppose you want to make something--say, a can opener. Most of us understand, in principle, how a can opener works. I think most of us can look at any given can opener (they're pretty much open source, after all) and understand its design. But what would it take to create one ourselves? Lots of money, basically. Not-commonly-available tools, parts or the tools to make them, space to put all of that stuff. Who's going to do that in their garage? Maybe some person with a vision of the perfect can opener and dreams of changing the way everyone opens cans? But, of all the people that dream of changing the way everyone opens cans (already a tiny number of people, I would guess), how many of them could even afford it, or could convince someone to fund it?

    It's just not likely to happen. So can openers, by and large, are going to be designed only by companies with access to the materials and tools _and_ a bottom line to worry about--meaning that they're not going to do it half-assed.

    Now switch your brain to the world of software tools, and instead of a can opener, think of a recipe database. Heck, I wrote one one day, and I thought the other day about web enabling it so my family could share recipes over the web. It doesn't, as has often been observed, mean that I _should_--but I can, I know that I can, and all it's going to take is a little time (but "little" is, of course, _very_ deceptive). The tools are right in front of me--except for the hardware, that you could probably get for almost free, everything is free. All it takes is time. And I have (at least some) time. So I can. So I might. And so, many people do.

    Okay, that explains a lot of the crap that's out there, but what about the commercial stuff that's also crap?

    A similar thing happens at software companies--although the perception is not correct, they _think_ they can. That same "we have the tools, we just need to write the code" mentality is alive and well at software companies. It's relatively easy for an engineer to say "okay, metal gears of this size and spec will cost this much, but it will be this much if you want plastic. if we eliminate this button we save X dollars and get rid of some possible breakage issues which we rate as an X% probability in normal use". Quick, how much does a javascript function to validate input on a form cost? There's no easy way to answer that, no book to look up the numbers in. Because "all" it takes is for someone to sit down and write those lines out, and because, once those lines are written, producing the next copy of them costs nothing, designers are led down a very deceptive path to a hugely complicated structure that quickly becomes hard to understand, hard to coordinate the interactions of the different parts of, hard to test thoroughly, and hard to deliver on time.

    Once you get into that situation, you have to cut corners, slap stuff together, do the absolutely necessary stuff, and suddenly you're plagued with a poor user interface (because that takes time, understanding, and developer buy-in to get right), ugly bugs (because you didn't have time to develop, much less run through, an exhaustive set of test cases), etc, etc. And then is when you come up against the wall, and you find out that, while all this time you were thinking out oculd, because the tools were right there, you actually _can't_, because you _don't_ have enough time.

    Basically, the feature sirens are always calling us to the rocks, and the song is so beautiful ("We could make it compatible with ...") that we find it hard to resist. And all this time it just all seems so _possible_. In a theoretical sense, it is--but the razorlike reefs are right there under the waves. Even when we are going down we often don't see why we failed.


    --

    --
    Liberty uber alles.
    1. Re:it's because we can by re-geeked · · Score: 2

      I'd have modded you up, but hey, welcome to Slashdot...

      Although you take your time getting there, your central point explains most of the reliability problems with real software: there are no boundaries imposed on what you can do, other than your own discipline to make it leaner, meaner, and more elegant.

      In fact, the "Great Shame" that software languishes while hardware improves is no surprise at all. The only thing that better hardware does for software is remove the limits to what we might try to get away with.

      --
      "You can't get something for nothing." - my grandfather, on the stock market and Reaganomics.
  3. Re:Dammit, the command line is natural by Richy_T · · Score: 2
    Which might be easier, saying "move the mauve sofa 3 feet from the south wall and 2 feet from the east wall. Place the couch facing north, with a 30 degree angle from the east wall," or "Put that {point} there {point} and aim it towards there {point}. So, the command line is not the most natural way to interact with a computer for all cases.

    Of course, you really want to be saying to a computer "put that file somewhere around my home directory" or "Format that hard drive, make it about a third of the drive" or "Cad program, make that sewer pipe about this long" (holds hands apart).

    Computers are an exact thing, they need to be handled in an exact way. The command line provides that exact way. The number of times I've been using Corel Draw and wished I could just type in "box, 2in x 1in" rather than have to click and fiddle with the mouse, having it jump 0.1" bigger when I release the mouse button. Angles in circles are even worse.

    Rich

  4. Re:My feeling by si1k · · Score: 1
    There's no doubt that hardware is being better engineered than software. Most failures in electronic systems are in the software, and the rigorous testing they do on hardware still isn't done on software.

    There are some other reasons why software sucks, tho. Check out this article... talks about how where people go wrong when they try to make software "easy."

    Part of the problem lies in the complexity of mapping the software paradigms to the implementation. It's all those exceptions to the rule that give coders a headache, and it isn't any better for the users.

    So far software engineering itself is full of guesswork, too. Most software houses don't use SE, and using SE doesn't necessarily always help. I think this is because SE is simply still in its infancy.

  5. Re:What exactly did he say? by Eccles · · Score: 1

    And his comments about "humanity" not knowing how to make software, or even what software is, were just plain over-dramatic, hippified philosobabble.

    No, I think he has a point.

    In 1920, humanity did not know how to make jet engines, whether they would work well, etc. Then
    Frank Whittle invented them, and now "humanity" knows how to make them.

    The same may be true for software. Over the years, we've developed ideas of abstraction, encapsulation, structured programming, object-oriented programming, BNF, program proving, and so forth. At one time these concepts didn't exist; now they're well-known and fairly well understood. There are no doubt concepts still undiscovered and unexplored that will improve our software development in future.

    --
    Ooh, a sarcasm detector. Oh, that's a real useful invention.
  6. Re:JavaScript != Java !! by AFCArchvile · · Score: 1

    Thanks. Now I can rank on Netscape in the same way that I did Sun.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  7. Re:The answer is simple... by Geeky+Frignit · · Score: 1

    These decisions are often made primarily by the Sales & Marketing types who have little knowledge of computers and only fuzzy concepts of what the software is supposed to do or what the users want.

    It is so easy to place the blame on the sales & marketing types, but have you ever considered the blame may be on the programmer. If a programmer does not stop a moment and form an argument for a better way of doing something, then he is not doing anything to deal with the issue. I don't know, maybe I am blessed with a very understanding marketing department, but whenever I have come across a problem with how they want things done, all I have had to do was come up with a group of different solutions, explain why it wouldn't work the way they want it, and ask them to choose one of my solutions. If it is the case that I have a decent marketing department working with me, then I feel sorry for you guys, but if the case is that programmers don't bother to offer better solutions to these people, then I'm sorry, you deserve all that you get.

    --
    Tired of sitting at that karma cap? Start a flame war today! See just how low you can go!
  8. Unix UIs, open source, sucky software by Sloppy · · Score: 4

    You can't just slap any arbitrary user interface onto Unix, because Unix dictates its inner self onto all layers that ride atop it.

    Ever seen OS/2? OS/2 is butt-ugly. It's config.sys makes DOS/Windows look elegant by comparison. But you would never guess this from the UI, which puts all other UIs to shame. How did they do it? They put a powerful layer in between: SOM.

    The same sort of thing can be done with Unix, it's just that no one has. Oh wait, someone has: Apple has done it with Aqua. A very different approach than OS/2, but still, the UI is completely divorced from the inner workings. I haven't used Aqua yet, but I know that when I try it, my reaction is not going to be, "This is Unix. I know this."

    The open source movement hasn't done anything like this yet, because they are too busy trying to compete with Windows. As long they keep looking to the worst UIs for inspiration (e.g. MS Windows Explorer) and try to infiltrate the corporate world by blending in (e.g. Miguel's mailer that looks just like MS Outlook), that's just how it's going to be. But it doesn't have to be like that. The GNOME/KDE guys have set their sights very low.

    "I think you could have open source movements that, through a peer review system, adhere to the strictest, most anal-retentive quality control program as well as open source projects that function in a perpetual state of redesign. Both are entirely doable."

    Could have? That sounds like present-day OpenBSD and Linux, respectively.

    As for my explanation as to why software sucks, I think it's pretty simple: the economy has judged that software that sucks but is cheap, is preferable to software that doesn't suck but is expensive. Quality takes time, and time is money. I write software-that-sucks for a living, and whenever I give a customer a choice between something that sucks for 8 hours or something that sucks less for 16 hours, they almost always take the cheaper choice.


    ---
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  9. Re: Yeah, why is the Linux kernel compressed? by boltar · · Score: 1

    As far as I'm aware kernel compression is required because the BIOS can only boot files up to a certain size. Someone correct me on this if I'm wrong.

  10. Re:Dammit, the command line is natural by ekidder · · Score: 1

    The ambiguity is part of it. A design I had was to have pronouns default to the most recent named direct object, which would make things a lot easier.
    And yes, it is a lot different from my plain-english equivalent. Prepositions, lists, adjectives, adverbs, and other parts of speech are what - almost impossible to move over?
    How about this:
    temporarily delete file_1.txt
    quickly execute file_2.exe (upgraded priority!)
    print all files older than 1 day
    delete any file containing the word "you"
    change ownership of any file containing 'kidder' to me
    either execute file_3.exe or mail me

    Simple aliasing is not going to handle these sort of things. Piping, of course, and judicious use of 'find' will, but I don't want either of those. I want a system that can understand context and ambiguity. I want an NLP shell.

    I'm probably being old(new?)-fashioned and definitely inflexible, but no moreso than those who think that the command-line is what God uses.

  11. less is more... by Anonymous Coward · · Score: 1

    There is an old saying from classic art: A work of art is not completed when nothing can be added. It is completed when nothing can be taken away. A lot of software would be improved if that thought were taken to heart.

  12. Oh but wait! by TobyWong · · Score: 1

    Don't forget these wise words came from "a small cafe just off West Broadway in New York's Tribeca neighborhood" so they must be important!

    --
    - Toby
  13. Re:Dammit, the command line is natural by Petrophile · · Score: 1

    Your example comes off as an argument against your case.

    The fact that your computer can't understand "irregular and ambigous" commands and instead forces the user to bang his head against the considerable syntax of 'find' pretty much seals the case that it is not the "most natural" way to communicate. Not that pointing and dragging at things is either.

  14. Re:Dammit, the command line is natural by boltar · · Score: 1

    Thats a really lame putdown. Try a bit harder next time.

  15. Re: Yeah, why is the Linux kernel compressed? by sparks · · Score: 2
    > Also, I wish that Linux could have a much smaller text editor

    -rwxr-xr-x 1 root root 158740 May 1 1999 /usr/bin/pico
    -rwxr-xr-x 1 root root 180484 May 1 1999 /usr/bin/joe
    -rwxr-xr-x 1 root root 256972 May 1 1999 /usr/bin/jed
    -rwxr-xr-x 1 root root 503832 May 1 1999 /usr/bin/vim

    Any of those small enough? How about

    -rwxr-xr-x 1 root root 47656 Apr 30 1999 /usr/bin/ed

  16. Software "sucking" by narratorDan · · Score: 1

    Look at the vast amount of written word published in the last year and ask "How much is quality?"
    Look at the really vast amount of written word published in the last 50 years and ask "How much is quality?"
    All someone needs in order to write a novel is an understanding of their language and a dictionary to sound educated.
    Programming software is the same, the only real difference is that we learned how to program after we learned our native language. Add to that the huge amount of words and logic structure that we need to know in order to make a simple word processor run in any GUI. If we want to make it as small as possible we need to know the right .lib (.dll, etc) to pull from and the correct functions to pull from that .lib. Writting the same thing for a CLI is much easier but who would use it other than ourselves?

    The guy has a point. Software for the most part does suck, but look at all the books out there that suck.

    Forgive me if this post is a bit scattered, I've been awake for 48 for no good reason. :-)

    --
    "If you're not confused by quantum mechanics, you really don't understand it." - Niels Bohr
  17. Re:Yes Virginia, unix sucks by Stonehand · · Score: 1

    Windows can be very finicky when it comes to hardware.

    I've seen plain-Jane machines that deterministically crashed when NT4 did its peripheral scanning during installation, baffling the local tech support. This, as it happens, was while working at a certain large software company in Redmond, WA.

    --
    Only the dead have seen the end of war.
  18. Re:crappy coding (sp corrected dumbfuck) by photozz · · Score: 2

    The problem here is the fact that a weird OS like Linux is effectively bringing the Unix-world back like a plague that won't be exterminated.

    *giggle* 'snort' heheI... BAAAAAAAAhahahahahahah 'snof' hehhe.. What, um.. makes you think it ever disapeared?

    --


    Dirty Pirate Hooker
  19. Re:My feeling by Martin+Spamer · · Score: 1

    Generally I agree with you comments, but I have to pick up up on a couple of pieces.

    I have this sneaking suspicion that any abstraction of code -- UML, flowcharts, proofs -- is only that: an abstraction. And that correctness (or, more likely, bugginess) lives in the code, and in the code alone, so that's where you have to weed it out.

    The Design and the Code are both abstractions from the problem domain. Therefore they could both (or neither) be faulty. The problem could be design or coding fault.

    It is the design 'process' that is useful, it forces the Software Engineer to understand the problem, before they've invested too much time. It improves flexibility and reliability, both of which reduce the mainternace burden (a VGT). In my experience, using Analysis & Design tools such as UML makes a considerable impovement in the 'quality' of the system. They are also a better that code to communicate ideas to fellow Engineers.

    I personally think Extreme Programming holds a high amount of promise...

    Extreme Programming, is just the latest buzz word for what was RAD, and before that what was simply good practice/procedures, i.e. review, Review, REVIEW! test, Test, TEST!

  20. Read the Risks Forum by goingware · · Score: 2
    This gives me yet another opportunity to hop up on my soapbox and recommend you read The Forum on Risks to the Public in Computers and Related Systems, also available on the Usenet News as comp.risks

    While it's probably the case that software today is too complex to get all the bugs out, the situation could be vastly better than it currently is. There is a lot of discussion of current software problems and what to do about them in Risks.

    It is frequented by many esteemed experts in software architecture, reliability, security as well as just plain folks. The bug anecdotes reported there are often pretty funny but sometimes frightening and sobering too.

    I think anyone who works with computers in any substantial way should read Risks.


    Michael D. Crawford
    GoingWare Inc

    --
    -- Could you use my software consulting serv
  21. Most Software Sucks by Spit_Fire1 · · Score: 1

    Most software sucks because they can make one or two hotfixes and add a new function or three and sell it for the same price that they sold the first one, or and upgrade for a little cheaper. Its BS they shouldn't sell you anything unless it's a new product or greatly improves the original. That would be like Norton selling the product and then six months later sell you the same product again for the same price so that you can get the virus database update.

    --

    "The secret of success is to know something nobody else knows." -Aristotle Onassis
    1. Re:Most Software Sucks by pianoman113 · · Score: 1

      Actually, I remember having one virus scanner that would only scan. The fixing utilites had to be bought separately. Upgrades also had to be purchased separately. The only reason we had that piece was because it came packaged with the machine. I never hear much about that package any more, not sure I even remember what its called.

      --

      Free as in speech, free as in beer, or free as in lunch?
  22. Re:Why my code sucks by bowb · · Score: 1
    Early color scientists thought that red, yellow, and blue were the primary subtractive colors. Those colors aren't so far away from cyan, magenta, and yellow:

    red --- magenta
    blue --- cyan
    yellow --- yellow

  23. Re:analogy by tewwetruggur · · Score: 1
    If you are really bothered that much by our comments, which are either meant to be humorous, off-the-beaten-path, or giving some outside insight to the world of patents - then stop reading them. We're not forcing you to read anything we write. Yet, you seem to have taken it uon yourself to "rid the world of our evil"... except it seems that its only the trolls who are complaining. Seems that a lot of other people either are intelligent enough to ignore us, or they read what we have to offer and take it as they please.

    Really, just grow up. If you don't like our humor, stop reading our posts. If you don't like my comments on patents (only one of us has extensive patent knowledge), then stop reading them. We either try to "lighten the load" or give some insight. You, however seem to do nothing but bitch, complain, and post useless babble.

    This will be our last reaction to anything you ever post - we don't care what you have to say - and I doubt anyone else does either.

    --
    Hi! This is the Sig, blatantly attached to the end of this comment.
  24. Re:Object Oriented Magic Bullets??? ;-) by boltar · · Score: 1

    What does it matter? Since when has assembly code been object oriented? OO is was invented to make life easy for people who couldn't really get to grips with procedural programming. IMO anyway.

  25. Re:Dammit, the command line is natural by Tower · · Score: 2

    Heck, I was born here in the USA, and I've been trying to speak English for ~23 years now (some would say that Americans can never learn proper English, but that ain't right ;-) So, it took me (let's say) 10-12 years to master English, but I can "Learn Perl in 21 Days" and "Learn C in 7 Days"... or, if you want to be picky, a good semester course in Models of Computation could have one fairly fluent in C, Lex, Yacc, and a few others in a fairly short time. Programming / scripting lanuages are more direct and precise, since computers aren't very adept at guessing what we really mean if we are ambiguous...

    I think I had a point, but I must have forgotten it by now... shoot, it probably just boils down to a "Me Too!" post by now.
    --

    --
    "It's tough to be bilingual when you get hit in the head."
  26. Re:The answer is simple... by shippo · · Score: 2
    I once worked on a project run by the biggest fool I've ever worked for. Testing ran to a schedule as follows:

    Meeting at the beginning of the week to determine which new features/bug fixes would get implemented that week.

    Three days of programming, followed by a cut to CD-ROM at the end of the third day. This cut could be at any time, once it occurred after midnight.

    On Friday test everything to make sure it worked, including 100% components that had not even been touched in the previous month. Ship to customer no matter what was found, but report bugs at the following Monday meeting.

    No wonder the software never worked properly. Problems were being introduced due to tired developers. Not enough time was spent squashing some really evil bugs. And one developer was so utterly hopeless he should have been fired.

  27. Re:The answer is simple... by AstroJetson · · Score: 1

    There's truth to your sig, but at least part of the problem is that the designers are not the (only) ones making the decisions about what features should or should not go into a product. These decisions are often made primarily by the Sales & Marketing types who have little knowledge of computers and only fuzzy concepts of what the software is supposed to do or what the users want. Add to that the one-upmanship that goes on in this industry (XYZ Co. has 128 widgets in their thingamagiggy....we better support 256. Never mind that no user has ever needed more than 10.) and you have a recipe for feature-bloat and scope-creep. Then the product isn't very well tested because the requirements are poorly understood in the first place. And the huge parameter space of most programs coupled with the wide variety of hardware they must run on (and myriad of device drivers, etc.) just further complicates the testing process. And don't even get me started about release dates. I think this reason may be the worst of all: companies have decided that it's better economically to release buggy products sooner rather than better products later. The consumers for some reason tolerate this situation because they don't realize that it doesn't have to be this way. They just accept buggy software as a fact of life. If consumers demanded better software, they'd get better software. Add it all up and it's like elephants fucking: it's not pretty or elegant, but it's a miracle that it works at all.

    --
    Admit nothing, deny everything and make counter-accusations.
  28. Re:If only project management was an honourable ar by voncheesebiscuit · · Score: 1

    IMO, the biggest reason for sucky software (and a reason that I haven't seen mentioned yet), is the *lack* of market pressure for quality software. Lets face it, users are at a point of almost expecting their apps to crash. Thanks to the lack of robustness of widespead OSes like Win95, the average user has had to deal with enough crashes/inconsistencies and general oddities, that they don't expect much, so thats what alot of companies deliver.

    I realize this is a bit of a Catch22, but if users were exposed to more quality (which I think we're starting to see with the stability of Linux being spread to the desktop), then their expectations will rise, and they will begin to demand better software, at which point the software industy will be forced to provide it.

  29. Re:Dammit, the command line is natural by Dan+Hayes · · Score: 1

    Try Ctrl-Shift-Escape to obtain the Task Manager. It's worked in every version of Windows I've used. I've found that Windows has a keyboard shortcut for pretty much everything in its GUI, and unlike under Linux GUIs, using a mouse isn't 100% essential.

  30. Re:Software's not that different by sjames · · Score: 2

    I don't understand that one. I never want to sit in front of my computer and hope it works this time.

    Understandable. Perhaps it's more easily understood another way: How much time, effort, and money are you willing to put into the reliability of this app? Is 99% enough (quick and dirty hack), 99.9 (some actual engineering), 99.99999 (detailed regression analysis of every posable input and verification that the output is correct, multiple redundant everything, years of work and still not 100%).

    The answer depends on what the software does. If it maintains your life support it MIGHT be in the many nines category or you might decide it's better to go for 99.9 and provide manual controls (the Mir approach). It might be software to fly a negative stability jet that cannot be controled manually at all. In that case, the 99.9 solution won't work.

    If it's just a 1 time need to process some text file, 99% is overkill. Just bang it out in awk, sed, or perl and call it good.

    I don't want my browser to ever mis-format anything or crash, but I'm not willing to pay $1000 for that.

  31. UML? by scobiej · · Score: 1

    I'm surprised to see so few references to UML. What is mostly missing in any software systems these days is good design and the approach that just because you can do it, doesn't mean you have to. So many products these days are busting full of useless features that only undermine the underlying reliability of them.
    In these days of 'internet time', people say they don't have time to design their systems properly - and look what happens!!

  32. Re:Of course we can do both... by Skuggan · · Score: 1

    It's like if a carpenter only could use the screwdriver.

    A programmer can never be a real programmer if he doesn't have the experience from at least one other language.

    I really believe that good experience in multiple tools make a better programmer.

    --
    http://www.millnet.se/ GO/U d- s+:+ a C++ UL++++ P- L+++ E W+++ N+ w++ M-- PE+ t+ X++
  33. Joan Baez? by rsidd · · Score: 1

    I think that should be John Baez.

  34. Re:Why Software Sucks by drummer_1 · · Score: 1

    Exactly. I saw this guy on ZDTV's show "Big Thinkers". He talked almost completely in glittering genaralities about how virtual reality was going to change the world. And the statement that "software sucks" is anything but new. In 1975, a guy named Fred Brooks described a "Software Crisis", and there were many people declaring the same thing before that. In the 90's author Steve McConnell sold millions of books that declared "software sucks". Everything old is new again. Does Jaron Lanier really consider himself a visionary?

  35. Re:Dammit, the command line is natural by Azog · · Score: 2

    What I found most interesting about this article (and I have read the original Edge paper, too) is that Jason Lanier believes that Unix's "Command Line" somehow pervades the whole operating system, forcing a structure and perhaps attitude onto all higher layers of the the operating system. Needless to say, he doesn't like that structure much (although he probably understands the Unix CLI much better than most people here.)

    But nonetheless, I think he's wrong. I can give two counterexamples that show that the Unix command line structure does NOT force a "Unix-y" structure in a GUI:
    1. OS-X (Macintosh Aqua on BSD).
    2. Quake III (Easy to use UI that looks and works the same on Windows, Linux, and Macintosh.)

    I think the real straitjacket that UI designers on Linux constantly have to fight against is X Windows, which is my favorite candidate for "What's Worst About Unix". I don't want to rant about that right now. I have a different rant.

    I would like to see Linux innovate more, and I agree with Jason Lanier that some real user interface capabilities do depend on the lower level properties of the system. For example, both Windows and Linux both essentially understand the "type" of a file by looking at the last few letters of the file name: ".exe" or ".tar.gz". At least Linux has a separate attribute for "executable", but still, this is a pretty pathetic way to identify files. A step in the right direction would be to store a little extra information in the file system, like the mime-type of the file, and the name of the program that created it. User interfaces could put that information to really good use.

    Given a directory full of pictures, some with the extension ".jpg", and some with ".png", at least the user interface can guess that they are all graphics. But what if you put a new file in the directory and mistype the name, calling it "pgn". Well then, it won't show up in dialog boxes that are looking for graphics files, and when you double-click on it in a file manager, who knows what will happen? Mime-types in the file system would fix this.

    Another example: Suppose I have one collection of really huge .png files, raw 600-dpi scans that are 100MB each. And then I have another directory of .png files that are all 256 x 256 textures for a 3-D game.

    Right now, if I double-click on these in a file manager the same program will be used to open both of them. But I might want to use different programs to view and edit these files. Having to open the program first and then hit the File,Open,Browse, view another list, select the file, etc. when I was just looking at it in the file manager is stupid.

    So that's one example of how Linux could innovate. Of course Macintosh fans are snickering right now. I suppose "Resource Forks" can do this sort of thing. I wonder how those are implemented on the OS-X file system?

    So how about we put mime-types and other useful data into one of the new filesystems - ReiserFS, Ext3... Journaling is not the only improvement to file systems worth doing.


    Torrey Hoffman (Azog)

    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  36. Re:My feeling by LordNimon · · Score: 2
    A clearly defined and documented interface provides the integral part of any software project. With out them all the diagrams and quality control will not help when it comes to maintenance and new development.

    Ironically, Linux gets an "F" in this regard, or at best a "D", and Windows gets an "A". The API documentation in Linux is effectively absent. I know I'd be a whole lot more productive if I had as good documentation as what Windows programmers take for granted.
    --

    --
    And the men who hold high places must be the ones who start
    To mold a new reality... closer to the heart
  37. Re:old-school AOL trick by AFCArchvile · · Score: 1
    You used to be able to flip the bird in an AOL chatroom. It was alt-0139, shift-6, alt-0155.

    ^

    In the font that AOL 3 used, it worked out perfectly. However, in AOL 4, they bumped up the font size. Oh well, those were the good old days.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  38. Re:My feeling by Mignon · · Score: 2
    hardware is designed ... tested, built upon, etc.

    I'm not so sure the hardware realm is as pure as it seems. I'm far from a hardware designer, but I've perused some of the Linux kernel source and have seen many comments about broken hardware designs. Of course, the obvious examples are probably the various Pentium bugs (FDIV, FOOF, etc.) but I was initially thinking of my (t)rusty Intel etherexpress board.

    Maybe it doesn't matter to anyone other than driver writers, since performance is improving.

    In other words, bad design or implementation impacts users of the interface that an object provides. So a crappy piece of hardware gives headaches to driver writers, but a buggy word processor gives headaches to end users (and their IT support staff...)

  39. Re:Yes Virginia, unix sucks by JCMay · · Score: 2
    That's really odd. When I installed Red Hat 6.2 on my system at home, it did all that for me. I did have to tell it what make and model monitor I had, but it figured out the rest and came up with X the first time.

  40. Generalists by Kriticism · · Score: 1
    "I think it should be inconceivable that the kind of person who writes one kind of software also writes another kind," Lanier says. "Basically, if you heard your brain surgeon also had a tattoo parlor, you'd probably demur. Right now we think of them as the same thing. We think it's perfectly all right for people to go back and forth. I don't think it is."

    This isn't exactly an apt analogy when applied to the IT field. We're probably always going to need brain surgeons. Tattooing is thousands of years old and shows no signs of slowing down anytime soon. On the other hand, how many applications, programming languages, and other concepts have fallen by the wayside - Some over the course of a month or two? Programmers MUST be generalists, or they're likely to wind up flipping burgers or answering telephones all day long after having the system they've based their careers on become obsolete overnight.

    --

    -PARANOIA is fun. D20 is not fun. The Computer says so.

    -The Computer

  41. Re:Yes Virginia, unix sucks by Elbows · · Score: 1

    UNIX is not for everyone. UNIX is apparently not for you.

    But as for the ease of installation, I too have installed windows many times, and redhat a couple times. Redhat is easier! (I'm talking about the graphical install here).

    It autodetects the things it should (including video card settings), then I pick the packages and it installs. Unlike windows where I have to come check on the install and see if it needs to be rebooted yet again.

    UNIX may offer you nothing... but to those of us who have studied computer science, it is a really good fit. Windows is dumbed-down so that you don't need to know anything to use it, and that holds you back. With Unix, once you get over the learning curve (and there is a learning curve, even for geeks), the OS actually lets you do what you need to do.

    Unix is not an OS for the mainstream, and quite likely never will be, despite redhat, KDE, gnome, etc. But for some people Unix beats any other OS out there hands down.

  42. Vague... by oconnorcjo · · Score: 1

    Lanier say software sucks but does not explain how or why it sucks and never gives any sugestions on how to fix the situation. Instead, he avoids justifying his opinion, by making a new observation that "Maybe we have a language problem," which starts his premise that "software" is too vague a description of what programmers do [I would argue that all doctors practice "medicine" and why is that different from the vagueness of "software"? But I digress]. I must admit this is an interesting premise but he provides no sugestions for improvement. This article has a lot of talk but little substance. It reminds me of talk/complaints around the water cooler/coffee-maker where people get together and talk about how the world should be "fixed" but give little insight to real solutions.

    --
    I miss the Karma Whores.
  43. yo, karma whore. by mosch · · Score: 1

    next time don't double-paste your stolen commentary. quite annoying for those of us who actually want to read intelligent conversation.

    --
    "Don't trolls get tired?"

    1. Re:yo, karma whore. by infodragon · · Score: 1

      First of all what do you mean by "double-paste"? This is an origional comment by my self, but I guess from your point of view anybody who says somthing that is comprehensive and informative got it from some commentary and is trying to "karma whore." If you would have taken the time you would have seen that this is the first comment that I have posted in a long time, quite the oppsite from a karma whore. I only post to threads that I have some intrest in and somthing to say, as an expert in the programming field I have both, on this thread.

      Sorry if my "stolen commentary" offends you but it is origional and until you open your mind a little and decide to act instead of reacting you'll never make it 2 steps forward in the real world.

      --
      If at first you don't succeed, skydiving is not for you.
    2. Re:yo, karma whore. by mosch · · Score: 2

      Well then you should just learn to fucking write, or stop bullshitting.

      Paragraph 7: "Another method I use is factories. I have objects that construct related objects and return a handle to just the interface. This way other code that I write is never directly accessing the implementation of the object."

      Paragraph 13: "Another method I use is factories. I have objects that construct related objects and return a handle to just the interface. This way other code that I write is never directly accessing the implementation of the object."

      Ditto, as we go down.

      Now you could have either a) cut and paste this from somewhere else, b) written as an original comment the exact same thing two times or c) are so incompetant that not only did you accidentally cut and paste your entire comment into the textarea, then posted without previewing, then decided to act without thinking with your response, so you couldn't even tell why I used the term "double-paste".

      Sorry if my criticism offends you, but until you stop stealing your comments and denying it, you'll never make it in the real world.

      The real world is treating me just fine.

      --
      "Don't trolls get tired?"

    3. Re:yo, karma whore. by infodragon · · Score: 2

      heh, yea I saw that, I typed it in a different window because this little box just sucks big time, I double-pasted my own comment. I didn't see it and I "over reacted" about the double-paste. But the comment is my own, and if you would like to have a technical discussion about it I hang out in irc.openprojects.net. I hang out in #c, #c++ and #linux, my handle is the same as slashdot "infodragon". I try to help out when time permits. So if you ever would like to chat then please join. I'd be glad to have a discussion about my technical merrits. See you there.

      --
      If at first you don't succeed, skydiving is not for you.
  44. Re:Real headline: Unix sux. by kill+-9+$$ · · Score: 1
    Yeah, I was a little disturbed by his remarks on Linux as being a sub-par throwback to the 70's.

    UNIX is not for everyone. Its not an operating system I would give to my mother. The user interface is a bit harsh to non-computer types. At the same time, I am a software developer. I like UNIX not because it makes me feel cool or for bragging rights. I use it because the OS fits like a glove, for what I do.

    There are tons of things UNIX and the various technologies surrounding the UNIX platform do for me in my daily life that make me 150% more productive than if I were on another platform. For those who never experienced it, I like VMS for similar reasons. (and I'm not the guy who's been doing it for the last 20 years, I've only been in the industry for 3 years in my mid-20's)

    The problem is that no other modern OS I've used has provided me the tools I need out of the box that I get with Linux or any other variety of UNIX. Then again, I'm on slashdot, so I guess many of you already realize this this...

    Oh yeah, one last thought. We had some hardware fail a week or so back resulting in some harsh data corruption. It took a day to bring the stuff back because of the tools and services available in the OS. If this had been a different operating system, we would have probably been dead for a week. And while you can get a lot of UNIX power-tools for your Windows desktop, in a panic situation, you don't want to have to find the software and hope it works.

    Gimme a better OS Mr. Lanier if you'd like, but know that mine works fine... I do find it amazing that its still the best thing to come around in 30 years, but then again that speaks to the if its not broken don't fix it philosophy or the fact that it is a very good operating system for some.

    --

    -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
  45. Re: Yeah, why is the Linux kernel compressed? by dissy · · Score: 1

    Two points
    you dont Have to compress the kernel..
    its just a make option when compiling.
    and there are two levels to compress kernels (zImage and bzImage)

    The reason this is done us because intel hardware has to load the boot strap code into a very small chunk of memory from a usually small chunk of HD space. (Unfortunatly i dont know the HD limit off the top of my head)

    If it doesnt fit, it gets cut.

    It would be More work and much slower to have two parts of the kernel, one a kerel to boot and be small, Yet still know how to read a disk, operate on all known disk io cards, be able to talk to all types of harddrives, and speak a few filesystem formats, just so that it can read a silly 1mb kernel off of the disk someplace whos job its suppost to be to do all of that anyway.

    As for the text editor
    dont use emacs if its too bloat for you.
    Unstripped bins are:
    -rwxr-xr-x 1 root root 521016 Mar 4 2000 /usr/local/bin/pico
    -rwxr-xr-x 1 root bin 294116 Apr 14 1999 /usr/bin/elvis
    (elvis being a vi clone)

    hardly the multi-meg binarys you claim.. and after stripping the symbols im sure they would be smaller yet.
    As for complaints on vi's UI, use pico. its more featured than notepad.exe on windows.

    vi was designed back when hardware was Very limited, and it did its job overly well. Its only around to day because alot of people that grew up with unix had to learn it, and its just still there.
    However id recomend learning vi as much as i would learning mke2fs commandline switches.
    (Read: Only if you want or need to know)

  46. Re:Dammit, the command line is natural by clare-ents · · Score: 1

    [snip - stuff about using point and click instead of command line]

    So you tell your roommate: "Get rid of all the old fruit and all the purple fruit."

    Surely you've just provided a counter example to your own argument?

    to use SQL as a language since it seems most appropriate

    DELETE FROM fruit WHERE how_old > 7 and color = 'purple';

    To do this with a GUI would be

    Select the fruit you wish to delete
    Delete the selected fruits.

    A more human example, the CLI is you telling your roommate to remove the old purple fruit, the GUI is you telling your roommate to sort the fruit into age order, then pointing out which ones he needs to throw out.

    Which is more effcient to you?

    [By the way, I think that some things are best done with a GUI, drawing programs for example, it's just you picked one of the worst examples you could to use].

    --
    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. (Einstein)
  47. Re:It may suck.... by BigumD · · Score: 2

    And if it's running windows, you get an extra "Blue-Screened Monitor Paperweight" at no additional charge!

    --
    --The space between my ears was intentionally left blank--
  48. Re:Dammit, the command line is natural by ekidder · · Score: 1

    Yup! Zork was my inspiration for everything, although any NLP shell should allow for the addition of new predicates, otherwise it's not real advantage, since you're still stuck using a limited form of communication. :)

  49. Re: One question... by AFCArchvile · · Score: 1

    ...why are all those files dated May Day 1999?

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  50. Software Sucks - because most developers do by cs668 · · Score: 1

    I was in a position where I was hiring C developers about 3 years ago. As a part of the interview I would ask them to write the library function strcpy(). Out of 10 People claiming to have 5 years of C coding experience about 3 could do this simple problem. I usually asked those 3 people to then do the same using pointer notation. That left about 2 out of 10 C developers who could write strcpy().

    With that level of skill out there you have to be lucky to put together a good team.

    The other thing that I think is a problem is that some of the slick new development environments allow developers to build things that are way beyond their skill level. So at first things look very good, but then in the end the the cracks start to show in the veneer.

  51. Re:Dammit, the command line is natural by ekidder · · Score: 1

    Humans are NOT exact things - computer/human interfaces should be designed to interact with humans, not humans having to be trained to become explicit and precise.
    Dear GOD, this is the most insightful and true thing I've ever seen on this topic. And I'm not being sarcastic; I agree completely.

  52. Re:Yes Virginia, unix sucks by Hast · · Score: 1

    One of the most frequent things I've noticed is that Windows has a thing about not installing networkcards right.

    I have on several occations had the standard install put networkcards on IRQ 3, which is supposed to be reserved for COM2. This can cause no end of problems if you attempt to use the card and modem at the same time.

    And the worst part is that Windows doesn't recognice it as an error. Even if you study the System menu it claims that "all is just fine". You have to go and edit the actual values by hand to make it work.

  53. Re:Dammit, the command line is natural by battjt · · Score: 1

    Given a directory full of pictures, some with the extension ".jpg", and some with ".png", at least the user interface can guess that they are all graphics. But what if you put a new file in the directory and mistype the name, calling it "pgn". Well then, it won't show up in dialog boxes that are looking for graphics files, and when you double-click on it in a file manager, who knows what will happen? Mime-types in the file system would fix this.


    What if you give the file the wrong mime type of image/pgn? huh? Garbage in, garbage out; it doesn't matter if I store the info in the meta data or in the filename.

    What meta information should be stored? I don't think we'll come to agreement, so why not store as little as possible and make up for it else where, like the filemanager.

    Your difficulty opening files sounds like a filemanager problem, not a filesystem problem. Would the "Open With..." functionality of Win95 explorer satisfy your need to open the same file types in multiple tools? (Notice, that's not a filesystem feature, it's a filemanager feature.)

    Joe

    --
    Joe Batt Solid Design
  54. Re:Dammit, the command line is natural by Stonehand · · Score: 1

    So use a Tcl/Tk script that simply execs CLI programs.

    You can put a GUI on top of many CLIs; you'll probably lose pipes unless you've got a darn GOOD GUI system, but it'll work. Take user adding/removing, for instance; on many Linux distros, you can use control-panel-type utilities to do this -- but you can still use a text editor or Perl script, because the GUI's merely a front-end.

    You generally can't trivally make a CLI out of a GUI if the GUI author didn't give you one.

    --
    Only the dead have seen the end of war.
  55. Re:My feeling [Turn-around time/upgrade treadmill] by drenehtsral · · Score: 2

    I think that you are right about the design issue. When we are taught computer science, that is stressed very heavily, and you spend most of your time designing software, and working out logic, flow of information, data structures, etc...
    But that is not how the software that _people use_ is built. Many companies have discovered that by having a flashy new feature or a higher version number out on the market _faster_ they will attract users like flies to sh*t. The problem is that designing software takes time, and users are antsy and want it now, so they put up with shoddy software (and even hardware) just so they can get the latest feature. I tend to prefer designed programs that i don't have to upgrade every 5 minutes, but then as a programmer i have a skewed view. If i were a normal consumer sort of person, i'd be going ape about the fact that i'm still running a browser that's a version old, and i'm still using a UNIX variant that's built on "30 year old technology". UNIX was designed, people sat down and thought it out before writing it, and that is the only reason it's held up so well; It still solves the problems it was designed to solve. Most people who are constantly cusring UNIX are just not aware that they are asking it to solve problems that would be better solved by some other OS that fits their needs.
    That being said, software will get better when the average user demands it. The computing community already knows how to make software that works reliably, stays useful, consistant, and solves the problems it was designed to solve. The problem is that users keep buying software that doesn't work. This may be because they don't know or can't express what problems they really want the computer to solve. The author even states that a lot of his frustration with UNIX (as a good example piece of software) comes from trying to implement VR under UNIX. The trick is that the operating system under a VR rig needs to solve a very different set of problems than the operaying system used for a time-share application server. VR wants realtime, prioritized execution, lots of small asynchronous tasks, wheras UNIX solves the problems it was designed to solve (sharing resources fairly among users, networking, and being a portable base upon which to write software for computational taks). This may be a communication issue between users and developers, or it could be an artifact of agressive marketing and the need to keep users running the upgrade tredmill to keep the bottom line up. In either case, i think that the main problem with software is a human communication issue, from what i've observed.

    --

    ---
    Play Six Pack Man. I
  56. Re:Open Source is making it worse by cheese_wallet · · Score: 1

    lol. If I had mod points right now, that post would have scored a +1 from me.

  57. Low barrier to entry by Hard_Code · · Score: 2

    It seems to me, hardware is engineered better (or just simply *more*), because the barrier to entry is high. You don't just create a graphics chip by typing at a keyboard. You need a logical design. Written/drawn down, entered through some circuit construction program. You need real physical materials. You need to undergo an expensive process to make those materials into a physical embodiment of your logic. If you screw up, well, back to the drawing board.

    Software on the other hand has a very low barrier to entry. Got a compiler? Got an editor? Great. You're now a software "engineer"! Tappity tap. Hello world. Tappity tap. Hello enterprise. Tappity tap. Hello critical infrastructure. It is simply too easy to "just" fix this, or change that. What if every civil engineer decided that they would "just" tweak this or that parameter and see what happens? Or maybe they'd "just" fix the one faulty bolt. It doesn't happen (plus, a major advance of the industrial age was standardized building components, which software still has very little of). Software engineers, managers, and the industry, need to think of the bytes that make up their software as important as an actual constructed, engineered structure, that one shouldn't make whimsical changes or additions to without much consideration and peer review. Because literally, badly designed software ends up costing just as much, or more, than real physical structures.

    --

    It's 10 PM. Do you know if you're un-American?
  58. Why Pundits Still Suck After 30 Years by small_dick · · Score: 2

    ...this guy is a great example.

    First, the usual false statements ("Ultimately UNIX is a command line system", "UNIX was so primitive in the 70's compared to other systems...")

    "CPUs are so ideal...software is such a lagger" If that's true, go build a corporate web page in one day with nothing but transistors, ass. It's been done with development tools on the market today.

    Ahem, many UNIX library calls have no CLI influence whatsoever...they existed BEFORE the shell!

    Primitive to what systems? DOS? DOS disn't exist in the seventies...digitals' RTX? Quite like DOS really. The call infrastructure is cleaner under UNIX according to most old timers I've talked to.

    Windows2000? I've used the win32 api...golly, many of those system calls look like they were lifted right from Unix. Just what OS is so superior to Unix?

    What a bunch of fanboy crap. Here's my official response: "Wannabe dreadlock-hairstyled, artificially-color-enhanced-contact-wearing musicians who hang out in tribeca coffee shops yapping about how much software they didn't write sucks...should be shot for being the asses they are"

    Anyone wanna refute that?

    --


    Treatment, not tyranny. End the drug war and free our American POWs.
    See my user info for links.
  59. Software "Brittleness" by user+flynn · · Score: 1

    Jaron has issues with the fact that most software has problems building upon old source (like when you scan your memory in NT4.0 service pack 5 you find: MS-DOS 5.00...) without improving the source.

    His article on the edge addresses software brittleness: were if one part of the software is "Broken" the whole package will not run. Until we have supercomputers that have 3 copies of the same process running at the same time (One 10000 ticks ahead, one running normal, one in standby with backup data) there will be issues with software crashes. One bit off can accumulate exponentially in just a few 100 clock cycles (if it is part of the code- data does not matter (ohh no I got a b instead of a c in my word doc!@!)).

    If we had a process (graphics process, etc.) running a couple 1000 ticks ahead, we would know when a command we have executed put the smackdown on our computer, and be able to stop the command or bad bit before it hit. This would be possible if we were running Ole' Skool 8088/8086 XT style processes with an OS that monitored the processes with a couple of processes in predict mode- but people prefer to develop newer glitzier packages with more features to utilize all computing power, than using computing power to have backup processes running, and sacrifice a little glamour.

    In 15 years, moores law says we get 1024 X the computing power we have now. If someone sacrifices 4X power from apps to OS backup processes, we still get 256 X speed. Interesting to see if there is a split between people pursuing blind speed/good looks and people pursuing stability in platforms. (Sorta the same old argument everyone always has: Stability vs. Kickassatility? Me want Staykickassatility!).

    --
    In the distance you hear an ominous moo.
  60. Proposal for Organized Linux QA Effort by goingware · · Score: 2
    I have written a proposal for an organized linux QA effort that will center around a bug database that is accessed via the web.

    I think actually the kernel is of very high quality, compared to competing operating systems like the windows kernel or the Mac OS system, but it does take a long time for the kernel to get the kinks worked out.

    I realized when I got onto the Linux-Kernel mailing list to report a bug in 2.4.0-test a few months ago that people who were less hardcore developers would probably be put off by the process of reporting bugs to the kernel, and suggested this database to the kernel mailing list. It was generally well received.

    In the long run, I'd like all of Free Software to be more rigorously tested for quality. This is just a start - but the database source, and parts of the database itself could be reused for other projects.

    If you'd like to participate, please email me at crawford@goingware.com


    Michael D. Crawford
    GoingWare Inc

    --
    -- Could you use my software consulting serv
  61. The Convergence Theory of Software that Sucks by Art_XIV · · Score: 1

    People suck.

    People design computers. So, computers suck.

    People create operating systems. Thus, operating systems suck.

    If a programmer who sucks starts to program on a computer that sucks with an operating system that sucks using a language that sucks in an office environment that sucks while drinking coffee that sucks while reviewing a requirements document that sucks because the language skills of management sucks, then what is the mostly likely end result of his/her effort?

    It's freakin' remarkable when anybody does anything right, let alone well, when the banality of the whole suck-ass world is trying to drag you down.

    --
    The only thing that we learn from history is that nobody learns anything from history.
  62. Cause by pauldy · · Score: 1

    It's the programers triangle. Fast Cheap or Good Pick any two and only two.

  63. Re:Software's not that different by VSarkiss · · Score: 1

    The premise of your point is valid IMO, as is your list of questions. The problem in my view is that once development teams find out the answers, they have no guidelines for carrying them out.

    Here's what I mean: Suppose I figure out my reliability requirement to be 99.999% or better. What then? How does that affect my design and coding? Does that mean I write a catch for every possible exception? Provide a global "re-initialize and start over" routine? Pre-allocate all my memory at the beginning of the program? All of these?

    If I were designing hardware in the same circumstances, I would have some standard tools at my disposal for increasing reliability: use redundancy, use highly-tested (read "old") parts, and so on. I still need knowledge and experience in circuit design, of course, but I have guidelines that can help. In the software world, I don't have a lot of support like that. The software patterns movement is going in the right direction, but still has a ways to go.

  64. The mail I sent to the author of the article by renoX · · Score: 1

    Here it is:
    First, I would like to remind that all the software doesn't suck: the software which is used in plane, car etc. doesn't suck usually.

    Well, there are exceptions as reminded by Ariane V demise, but usually the software here is very very high quality!

    So software sucks is an "over-generalisation", I would say.
    You could say that "consumer oriented software" sucks but it is still not true: many oven, washing-machine, etc have software but they are rarely recalled because of a software problem..

    But you can say that software for Personnal Computers (be it PC,Mac,etc) sucks, this is true IMHO.
    Why? Because people always go for the less expensive software and hardware..

    But I'm writting you for the following sentence:"You can't just slap any arbitrary user interface onto Unix, because Unix dictates its inner self onto all layers that ride atop it.".

    Talk about an embarrassing sentence, one word: MacOSX !
    X-Windows doesn't belong to Unix, so you can indeed slap whichever user interface you want ontop of Unix!
    Sure it is hard work because developing ANY user interface is hard work, but you CAN.

    So here Lanier is making a big, big mistake.

    ********

    IMHO Linux won't suck when you're mother will be able to use it of course it should also stay as powerfull and stable..

  65. QA by British · · Score: 2

    So I take it there's more freelance hobbyist programmers out there but zero freelance hobbyist QA people? Darn. Wonder if I could make some money doing freelance testing of other people's open source work.

  66. Re:Software's not that different by brunns · · Score: 1

    A script that pages you when you get an e-mail from your girlfriend is probably a lot less mission-critical.

    You obviously haven't met my girlfriend...

    --

    If you moderate me down I shall become more powerful than you can possibly imagine.
  67. Quality by wls · · Score: 1
    Commercially speaking, I've worked with a number of companies which produced applications for general consumption.

    The problem in cases of severe failure has been when quality wasn't enforced top-down from upper management. In other words, when the measure of quality was "did we ship on the planned date" the product suffered.

    There seems to be an assumption that once the product is out, a company can cover their mistakes with patches and more releases.

    To some extent this is true. The first person to market usually wins. But the catch, as shown by Open Source projects, is that the product has to work first. It doesn't need every flashy feature, it just needs to work. This is how you get an initial install base.

    When I'm wearing a development hat, it's frustrating to see a date pushed down from marketing along with a list of requirements. Sadly, I haven't seen development shops asked for their input. After all, they know how long it usually takes to build something.

    Tell us when you want it, we'll tell you how long it will take to put in each feature so things that would impede the date can be deferred to the next release. Tell us what you want, and we'll tell you when it should be ready.

    Another major error is that organizations don't understand the roll of QA. Management views QA as fixing what's broken from development. QA is a house inspector, not a doctor. Developers look at QA as someone trying to break the product and make them look bad. QA's job is simply to assess the stability, functionality, and usability of the product so that management can evaluate the risk of shipping. Sometimes the right business decision is to let something ship with a flaw in it; other times it isn't.

    In cases where management has lacked focus and not enforced a degree of quality, I've seen grass-roots movements establish themselves. Interestingly enough, this never works. Not once. Management holds the reins on schedule and budget, so killing unsanctioned quality-based movements is inevitable. The best scenario is perhaps educating upwards, however getting buy-in at all levels is nearly impossible. This means as an employe, you might want to add management's existing viewpoints into the factor of who you want to work for.

    The choice between new-features and more-stability almost always falls on new-features, since that's where sales primarily come from. Those who don't understand the principles of software engineering almost always understand the value of a quick buck.

    A small number of places I've been at have allowed for quality improvements. The result is always a happier customer base (who now wants upgrades), happier sales and training people -- since they can demo and have things work, and the big payoff is that due to refactoring and better stability it is possible to add new features in less time.

    If there's any lesson to walk away with from all this, it's that you must plan for quality and the drive must come from the top down. It is much easier to design quality in than to sift defects out.

  68. Re:JavaScript != Java !! by Ratteau · · Score: 1


    If I remember correctly, JavaScript was developed by Microsoft. Originally, it was called LiveScript, but due to the buzz created when Java when it first came out, they renamed it.

    If anyone can confirm for sure that it was Netscape, please correct me.

  69. Re:Software's not that different by StormyMonday · · Score: 2

    Excuse me?

    Your list of questions applies to *any* engineering field. You need to ask the same questions if you're building a bridge. Does this mean that we should try to keep the field of "engineering" from fragmenting? Sorry; it already has.

    "Software engineering" (somewhat of an oxymoron, IMHO) will fragment, just like any other field, as the skill sets needed for the various aspects of programming drift apart. Would you want a pacemaker designed by a video game programmer? Would you want a video game designed to medical implant standards?

    BTW, your last question is not really a matter of engineering, software or otherwise. How does a pacemaker "decrease the amount of repetitive work that humans have to do"?

    --

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  70. Software is far more complex than hardware. by kyz · · Score: 2

    Ask emulator authors how complex a processor is. While marketing departments talk up the pipelines and cache aspect, it's not very complex at all. It's just a big state machine. Software implementations of processors are very good. But who wants just a processor?

    The point is, hardware is split up into discrete packages. Your CD-ROM drive cannot, no matter how much it wants to, write directly into your processor's cache control bits. You cannot edit the value stored in the 13th pipeline status area. They are protected! In hardware, you cannot break the API. It's pins on a chip, there's no other way in to the silicon!

    But in software, you can access everything about the API, and 'hack' it. Bleah. Software, to be as safe as hardware, needs full Java-like encapsulation, where you cannot poke inside the box at all.

    Furthermore, there are far more varied software components depending on each other than you would ever find in a hardware device. Imagine a desktop computer running a web browser and word-processor. There are thousands of individual widgets in both programs. One requires a TCP/IP stack and network driver underneath that. Both require user-interface APIs which in turn require graphics APIs and input APIs, which in turn require drivers. Just imagine a hardware device with 500 Pentium 4, 120 StrongARMs, 50 Z80s, 20 6502s, 100 MC68000s, 12 different bus protocols, hundreds of ways to access the hardware devices (forget those ATAPI, IDE and SCSI standards...)

    In short, even the simplest looking computer system is a nightmare under the hood. Even if I simplified all _my_ code, I would still have far more code running from _other_ people that I cannot change at all. That's why it sucks. Hardware guys have it easy.

    --
    Does my bum look big in this?
  71. Re:JavaScript != Java !! by Petrophile · · Score: 1

    Sort of correct -- Netscape owns the tech, Sun owns the name. From the Nutscrape 4.74 about: screen.

    Contains JavaScript software technology invented and implemented by Netscape Communications Corporation. Copyright © 1994-2000 Netscape Communications Corporation. The JavaScript name is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries and is used under license.

    Which brings up the greater point of how stupid the tradename "JavaScript" is. The whole Java!=JavaScript thing confuses people (AFC?) even here on Slashdot, which is supposedly a nerd site.

    I'd be happy if Netscape went back to calling it "LiveScript", Microsoft can keep calling it "JScript", and us supposed nerds started calling it by it's proper name: "ECMAScript".

  72. Business drives software, not quality. by wadeomatic · · Score: 1

    All good points on the practices we "should be" doing, but what about why we're not practicing them?

    Do we lack the skills to be quality software developers? Some of us, probably. But the entire software industry not knowing how to create quality software? I don't think so. Even our average software knowledge distributed across a bell-curve would yield more than enough highly savvy types to create powerful and clean software.

    Rather, I think we choose to build our software this way.

    Why? Because we've learned our trade in an atmosphere of business. Software has been, and still is, seen as a get-rich-quick technology by the business world. "If you can build this in six weeks before ABC corp does, we can take their market share".

    Distilling this down to its base, we come to a simple balancing act. More money and fast competition on one end, and higher quality software on the other. Of course software quality would take a second seat to profits - who wouldn't make that decision?

    Open source is growing in part because it's based on our satisfaction lobes. We build our software towards quality - because it's satisfying - which keeps us building better software. That's the feedback loop a lot of us are missing - and our software could use.

  73. Re: One question... by dissy · · Score: 1

    Tar files retain the date of what they hold.
    The distribution he installed from compiled those files on that date, and it would seem he had no need to edit them :}

  74. So let's see it by update() · · Score: 2
    This reminds me of the comments you always see here on any KDE or Gnome story. "They're just reimplementing the same ideas. I want to see a completely new and better GUI."

    Generally I frown on "Oh yeah? Write it yourself!" responses but in this case they're appropriate. You think people are opposed to the idea of a new paradigm that makes life perfect? It's just a lot harder to come up with them than it is to sneer at and berate people for doing things the old way.

    And having Joan Baez endorse Jaron Lanier's views on software engineering doesn't make me take him more seriously. On the contrary.

  75. Re:Dammit, the command line is natural by Xugumad · · Score: 1

    Perhaps, but isn't it better to have people comfortable with the desktop, than nothing at all? Most people don't have the time to devote to learning the command line, even if they did want to. Or should computers be made less accessible, rather than more?

    A few hundred years ago, only a few people could read or write, now almost everyone can. Perhaps progress will happen in a similar way with computers.

  76. Re: Yeah, why is the Linux kernel compressed? by TicTacTux · · Score: 1
    1. Loading a small file and uncompressing it is actually faster than loading a big file. (Apart from BIOS limitations that allow only a certain max size).

    2. Take e3 http://lrp.c0wz.com/files/e3/. It is only 5K as an executable.

    You seem to forget that Windows et al have a whole bunch of .dll files that must be in place, so the exe size alone does not tell you too much.

    --
    Use The Source, Luke!
  77. Re:Dammit, the command line is natural by CoreyG · · Score: 1

    When you have to describe a particular method of doing something, do you A. Draw lots of pictures? B. Use numbered steps with words?

    It's all about abstraction. If I wanted to waste my days programming in assembly (the command line) I could. I may get stuff accomplished, I may not. Or I could spend my day using a higher level language like Java/C++/Perl (the gui). In which language would I get more work accomplished? The one with the higher level of abstraction. That's why we have gui's. Most people don't care to "rm -rf /usr/home/myFolder" when all they want to do is "throw myFolder into the trash."
    Similarly, opening a folder in a gui is an abstraction on top of the commands "cd /usr/home/myFolder; ls -la". For a majority of the people, and a majority of the time, if I open a folder, I damn well want to look at what's inside it. Why make me spend the effort to do both?
    Command lines do have their uses, as do lower level languages, however, people worshipping CLI's above GUI's are strikingly similar to the idiots who feel smart/clever/genius programmers only code with "mov $a,$b add $c,$f,$g jne $1,$2,$3"

  78. Re:My feeling by da+groundhog · · Score: 1

    You have obviously NEVER taken any CS classes -- because then you'd know how wrong you are. Furthermore the 'principles' of Extreme Programming are pretty common sense and I would bet that MANY code shops practise them. Where I work, I had to run a SLEW of regression tests when I just removed some debugging symbols.
    ...I have this sneaking suspicion that any abstraction of code -- UML, flowcharts, proofs -- is only that...
    What does this mean ? Yes, you can PROVE (read: TRUTH) the correctness of an algorithm, the correctness lives in the proof.

    anyone ever notice how on /. everyone comments on things they have no base in. no offense to the poster but this really got to me.

    --
    "...through this door all my dreams come realities, and all my realities become dreams..."
  79. Re:What exactly did he say? by Black+Parrot · · Score: 1
    > And his comments about "humanity" not knowing how to make software, or even what software is, were just plain over-dramatic, hippified philosobabble. After all, why is he discussing it then? Is he not a part of humanity?

    He's just trying to make sense out of something he heard a few years back.

    In 1995, someone in an adjacent cubicle got a new computer, set it up, booted it, and sat down to try to get some work done. Three clicks on, they got a BSOD, and reflexively blurted out -
    Oh, the humanity!
    Lanier has been trying to make sense of that event ever since.

    --
    --
    Sheesh, evil *and* a jerk. -- Jade
  80. Re:Dammit, the command line is natural by Hard_Code · · Score: 4

    Yes, but when I drive my car, do I *TALK* to it? No, I use appropriate controlling devices for the situation: a steering wheel and pedals. Yet my bicycle handles and pedals are very different. As are airplane controls. The point is, there is no one *perfect* interface. CLI is just wrong for some things. As is a particular type of GUI, etc.

    --

    It's 10 PM. Do you know if you're un-American?
  81. Re:Dammit, the command line is natural by re-geeked · · Score: 2

    Both you and your pro-GUI respondents are entirely correct.

    When one wishes to converse/command, one talks or writes.

    When one wishes to wield a tool, one grabs it and manipulates it.

    What is the right way to use a computer? I don't know, but I bet it involves each of them at different times.

    --
    "You can't get something for nothing." - my grandfather, on the stock market and Reaganomics.
  82. Maybe the reason it hurts so much .. by UnknownSoldier · · Score: 3

    ... is because he is partially correct.

    Most software does suck. (You'll have to forgive me if I tar all software with one brush.) Windows has it's problems, Linux has its problems. Anyone who can't critically analyse the deficiencies in their favorite software is either living in a dream world, a zealot, or blind. (No flames intended.)

    The root of the problem is: bloat.

    Every time we get faster hardware, we build bigger programs. We're doing so much more with the hardware nowadays -- who was doing speech recognition 20 years ago? Heck, we can partially do it in real-time now ! The latest 3D games are certainly a good example of this. Lots of nice eye-candy. *cough* Alice *cough* :)

    The software we are building, is MANY MANY times more complicated then a 740. And the fact that we don't have off-the-shelf standarized components certainly doesn't help.

    Which leads me to my next point:

    The software has SO many code paths, there is NO way we can verify and spend enough time on quality assurance. And there will ALWAYS be bugs in the code we write. That sucks just as much as the bugs do. :-(

    Lastly, how many programs spend and designate time to develop a good user interface. That's also part of the problem - too many programmers (open source/closed source, doesn't matter) couldn't put together a good gui layout if their life depended on it. How many have taken a UI design course? How many are asking management to allocate time in the schedule for "polish." (As a game developer I'm just as guilty. Beta = fix all the important bugs, and ignore the small ones since we don't have time to correct it. Maybe we'll do a patch, if not. Next game to start developing.)

    And I think the greatest tradegy of all, is that people have come to expect computers as being unreliable.

    Why can't we apply and have a "process for engineering high quality software" ? Is code that nebulous? Is it because we keep over-complicating the systems?

    People aren't perfect, which means code isn't either. But it wouldn't hurt if more people took the time to say "how can I write this code, so it's easier to maintain, and something to be proud of, instead of something that is hacked together, works, and would be an embarrasment to show to your peers."

    What are other people's views?

  83. Re:Dammit, the command line is natural by EnderPax · · Score: 1

    I just had to respond to the Star Trek posit. While I agree with the person who responded that "*duh* it's a story..." I've often wondered about how a starship computer would work.

    WARNING: Heavy-duty offtopicness ahead.

    As best I can figure, the computer is always listening. (Insert paranoid privacy concerns here.) It has some sort of Natural Language Processor which allows it to guess when it is being addressed or when someone else is being addressed. It is also making the call when Picard stands and says "Cmdr. Data..." and Data comes over the comm system without Picard ever touching his comm badge.

    This isn't terribly unrealistic with the right amount of computer programming. The computer simply has to understand language enough to make educated guesses about when it's being addressed. And there's a default: whenever someone says "Computer: " with the right intonation, the computer waits for a command.

    Of course, the testing of this would certainly take many years. Remember that Kirk and company had to press on a glorified intercom button to actually address the computer.

    <ontopic>
    I found the piece rather fluffy myself. There are a few good points here and there, though. But it misses a huge problem. The reason that help desks are necessary is because humans interact with software. By and large, human beings don't touch hardware.

    Think of a wrench. There's really only a few things you can do with it. One of the biggest booms in PC sales has come from the model of "pull it out of the box, plug in two or three things and you're ready to go!" The hardware interface has been completely simplified. There's not much you can do outside of it.

    Software on the other hand (and this is due as much to feature bloat as other things) requires designers to try to figure out the dumbass things that people are going to do. Wrench makers don't really have to anticipate people using wrenches as hammers, forks or remote controls. But software designers have to deal with the possibility that the user won't do what is supposed to happen, but instead does something illogically or out of order. It hurts to try to think stupidly.
    </ontopic>

  84. Re:Dammit, the command line is natural by Shadowlion · · Score: 1

    copy file_1.txt as file_2.txt, print it, and delete it

    The problem you have here is that "it" is ambiguous. Which interpretation do you want, copy file_1.txt as file_2.txt, print file_1.txt, and delete file_1.txt, or copy file_1.txt as file2.txt, print file_2.txt, and delete file_2.txt? Frankly, even as a fluent English speaker, I'm not sure which "it" you are referring to!

    As a result, you need to tack on the precise file name. Which, as you can see, doesn't result in a command which is drastically different from the UNIX command:

    cp file_1.txt file_2.txt; lpr file_1.txt; rm file_1.txt

    Put a few alias in (alias copy cp, alias print lpr, alias delete rm), and you can get a command line of:

    copy file_1.txt file_2.txt; print file_1.txt; delete file_1.txt

    Is it really that much worse than your plain-English equivalent?

    --

  85. Re:Open Source is making it worse by Black+Parrot · · Score: 2

    > What's the average age of a gung-ho Open Source development team? 21? ... I'm not talking about old standbys like Perl and Apache and so on

    Are you saying that if you filter out the projects where the average age of the developers is older, you are left with an average age of 21 on the unfiltered projects?

    --

    --
    Sheesh, evil *and* a jerk. -- Jade
  86. Re:Software does not suck by johnburton · · Score: 1
    >Surgery
    >Armed Forces

    The consequences of a mistake may well be higher in these occupations but not the level of accuracy required.

    This wasn't a whine, I appreciate that other careers are as hard, or harder than software development, I wouldn't want to be a surgeon for example where the consequences of a mistake could mean someones life. My point (possibly badly made) was that in software development there is no error so small that it's not noticed, you either get code *right or wrong*. Even a surgeon has some slight leeway in where to cut.


    Anyway, the point is not to whine, it's to say that I don't think software does suck, I think that the error rate is actually remarkable low considering the difficulty in avoiding errors.

    --
    Sig is taking a break!
  87. Yes Virginia, unix sucks by budcub · · Score: 1
    I've installed Windows countless times, and it is a breeze compared to unix. Comparing my first few installs to what I can do now, even my earlier work is satisfactory. Windows doesn't need me to tell it how many megs of RAM my video card has, or how many lines of resolution my monitor has (vertical and horizontal) in order to run. I've tried almost all the flavors of Linux (RedHat, SuSe, Turbo Linux, Caldera, Debian, Mandrake, Slackware) and only Mandrake would run X-windows on my system. Even then it is clunky in its feel compared to MS.

    Unix is nothing more than 32-bit DOS, only MS-DOS is far easier to work with. What good does all this potential that Unix has offer to me if I need to study computer science to make it work?

    1. Re:Yes Virginia, unix sucks by Jedi+Alec · · Score: 1

      Dah, get real. You know as well as I do that in assigning IRQ's to stuff the Windows install will do what the Bios tells it to do. What most people do not know is that you should first make 110% percent sure that your bios is perfect, and then start your windows install.

      --

      People replying to my sig annoy me. That's why I change it all the time.
    2. Re:Yes Virginia, unix sucks by Petrophile · · Score: 1

      For someone with a 5-digit UID, that was a pretty lame troll.

    3. Re:Yes Virginia, unix sucks by bdhall1313 · · Score: 1

      "Windows doesn't need me to tell it how many megs of RAM my video card has, or how many lines of resolution my monitor has (vertical and horizontal) in order to run."

      It sounds like it has been a while since you tried installing a version of Linux. Either that or you have some really unusual hardware.

      "... only Mandrake would run X-windows on my system. Even then it is clunky in its feel compared to MS."

      I use Win2K for work now. I will agree that it is the best version of windows. I also use Linux mainly with KDE 2. I would really like to know what you consider to be clunky about X-windows on Linux. Have you looked at it in the last year or so?

    4. Re:Yes Virginia, unix sucks by Petrophile · · Score: 1

      For someone who couldn't identify a troll account if it wacked them between the eyes, congratulations. Have a nice day.

  88. Re:What exactly did he say? by Bluesee · · Score: 1

    I read his article in Wired magazine a month or so ago, and my immediate impression was that he is a little bit pedantic, very smart, but somewhat hard to understand (like Katz? maybe). I really felt the urge to hold him to one of his points and have him explain what seem to be feelings on his part more than insightful near-certainties. Which is okay! We are feeling our way through software development, and it is a dark and murky place. I got some benefit out of reading it: I remember getting the same creepy, ominous feeling that I got when I read Bill Joy's GNR (genetics-nanotech-robotics) essay... that things are bad because they are out of control. And this: that our belief in AI has led to that stupid MS paperclip that always wants to help me but instead annoys the crap out of me.

    His concept of a hierarchy in software design has great merit, and should be explored further. I recall being able to do all my engineering in DEC VAXes using DCL (Digital Control Language) running FORTRAN. Then they took that platform away faster than they took away vinyl record albums (but not as fast as 8-track tapes). For years I struggled to get a platform on the PC with as much power as DCL. All I got was DOS command files, woefully inadequate to that task. My other alternative was to learn MS VBasic, as we don't use Unix on our PCs. My point? Software development currently is subject to the winds of business logic, and unless his hierarchical, tiered strategy (this concept could use a lot of fleshing out, as do a lot of Lanier's points) shows benefit to a corporate bottom line (which is always short-sighted), it will not be adopted. Some fledgling company might come up with a new OS, a whole new concept of how to use the hardware. But the business world has to allow and provide for that, and right now we got a 300-pound gorilla sitting on top of it all running the show.

    --
    SDMI: Finally! Music that won't rip or burn! Brought to you by the fine folks at RIAA.
  89. Software sucking... by glebite · · Score: 1

    I unfortunately have to work within a Windoze NT environment and am charged with the task to automate systems, test gear, etc... More often than not, a piece of software for a given piece of test equipment refers itself as automated when it is only automated within its own context!

    What this means is that if you open their GUI, and use their scripting system, and press GO, their script will drive a single piece of test gear to assist in analyzing/reporting/recording/testing whatever it is that is being tested. This is their idea of automation. When I talk with the vendors, the whole idea of being able to correlate the Device Under Test (DUT) conditions with their test system is utterly foreign. In some cases, I have been asked (in the case of a bulk call generator) is why nobody else seems to need this functionality? Everything that a person could ever need was within their GUI.

    Generally, the GUI idea has abstracted far too many ideas into point and click. This may be fine for people who don't want to know too much, but for me, I'd love to be able to (ignore the DOS prompt)

    C:\acquire_data | tee excel -file mytemplate mail -user glebite | error_filter_tool

    Or, instead of using a vendor's GUI, to do even the following:

    C:\vendor-tool -file myscript > excel -file mytemplate

    Yeah - keep the GUI, but please leave us a command line interface to the tool... This abstraction is my firm belief as to why most software sucks...

    Thanks...

    --
    I donate all spillover Karma to the charity of my choice... Ada was still a babe despite what people may say...
  90. Re:Software does not suck by abhinavnath · · Score: 1

    > If anyone can think of another field where a
    > mistake of a single mistake in hundreds or
    > thousands of hours work is considered a bad
    > record, I'd be suprised.

    Surgery

    Armed Forces

    Even fields like science, anthropology, etc.

    And it's not just careers - you make /one/ mistake in your life and you could wind up on the wrong side of the law. It happened to me. (No, not really. But it could. You see my point?)

    Don't whine about your lot in life or how nobody understands how difficult your life is. I am tempted to do the same, and so is everybody else.

    --
    My other sig is also a .Porsche
  91. Re:Dammit, the command line is natural by Richy_T · · Score: 2
    but it would be interesting to see you create an illustration with a CLI

    pov-ray creates it's images based on an interpreted language (Yes, it's not a CLI as such but neither would you create an image with a graphical shell so I took your allusion to somewhere sane).

    Many times with a technical illustration, I've wished I could create an image with words ("box 0,0,3.5,2;circle 3.5,2,1" would be so much easier than "try and draw a box to the right dimensions with mouse, try and center circle somwhere on the top right corner of the box. Guides are a help but start to fall down with anything complex.

    Rich

  92. Re:My feeling by Tower · · Score: 2

    I've seen solid hardware from several different vendors that almost does exactly what it is supposed to... but even that is usually the third time (or more) that the chip has been put in silicon (whether full A-RITs or just more B-RITs, for those who understand that TLA).

    Hardware, especially in a development cycle, is a moving target - granted, the changes don't happen as quickly as a code rebuild, but often the subtleties are a lot harder to notice...

    --

    --
    "It's tough to be bilingual when you get hit in the head."
  93. Re:If only project management was an honourable ar by PollMastah · · Score: 2

    So why, if I may ask, does open source projects suffer from the same problems?

    No, this is not flamebait. This is for real -- although there are a few open source projects out there that really shine, you've to admit a lot of open source projects are kinda buggy, and seem to suffer from the same problems as proprietary software (although you could argue they are less so because problems are easier to fix when anyone can see the source -- but the problems are still there). And this is for people who are coding because they like it, not because they are under pressure.

    I think there's more to software quality than just pressure from upper management, etc.. Like other posters have said, and like the article said, there must be something more fundamental about software that we still don't quite grasp.

    --

    Poll Mastah

  94. Re:Software's not that different by J.Random+Hacker · · Score: 1

    Baloney. Depending on the complexity of an application, and the cost associated with failure, and the possible causes of that failure, you will require wildly different architectures. Those silly web aps are on one end of the scale, with Air Traffic Control on the other in terms of complexity and potential damage. Not only that, but a web app usually only has to not crash itself, take care of user input (if any) and any web connections it might require. Air Traffic Control has to be concerned with distributed hardware, user interface design, wide area communication, possibly out of date information, possibly wrong information, hardware or communication failures that might or might not be detectable, etc. etc. etc., and if the system responds in the wrong way, people die. You might notice that in the above list, most of the failures were outside the control of the system, but the system is still expected to react gracefully and safely, because the cost of getting it wrong is so high.

    Forget pacemakers -- that's easy. Think Air Traffic Control systems -- billions and counting, and it the new one still does not work.

    I'll bet there is enough blame to go around, some for the FAA, some for the contractors, some for the managers, some for the programmers.

  95. Re:What exactly did he say? by Coz · · Score: 1

    There's a lot less tolerance of crap in digital design. We all b!tch and moan when Intel has an internal floating-point error, and scream for recalls, but we accept blue screens and core dumps on a daily basis. The evolutionary pressures on hardware have been much more quality-driven than software, where features seem to be the main driver (IMHO).

    --
    I love vegetarians - some of my favorite foods are vegetarians.
  96. Re:Everything in UNIX based on command line by swordgeek · · Score: 3

    First of all, "All operating systems" doesn't mean Unix and Win*.

    I've considered this point quite a bit over the years. There is no way of a GUI getting entirely away from the command line as long as the base OS is still based on the command line. None!

    The other side of the coin is that the command line falls naturally into place with a heirarchal file system. As long as we have the one, we'll have the other.

    The Macintosh (of all things!) did it right in many ways. The command line is an extra tool--not the base level of the operating system. The Mac GUI _is_ the OS, to a greater degree than any other system out there.

    --

    "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
  97. Re:Ada was a babe by dpilot · · Score: 2

    Cruising at +1, and on this topic, I'm a little surprised to find that this was the only reference to Ada.

    Ada gets a bad rap for it's roots in government, its verbosity, and the rather straitjacket nature of strict typing. But guess what... it wasn't designed for rapid programming, or to make programming easy. Ada was designed for the 20+ year lifetime that code may well have after it's put into use.

    The same things that slow the start of coding help the lifetime and maintenance. It takes the willingness to accept some discipline and take a longer-term view.

    Think of the people who never thought their code would survive to Y2K.

    --
    The living have better things to do than to continue hating the dead.
  98. XP ? by UnknownSoldier · · Score: 1

    I know it's bad taste to follow up to one's own post, ...

    but has anyone tried eXtreme Programming? (Has it worked? What worked well? What didn't work that good?)

  99. It's the responsability, stupid. by DataSquid · · Score: 1

    If important software projects used licensed Engineers instead of unaccountable coders, there'd be a lot less important mistakes. Making someone professionally responsable for their team or code is a great way to improve quality. It's common sense and every first year Engineering student is beaten over the head with this fact. Accountability is the best policy.

    DataSquid.net, all the UW Computer Engineering you can eat.

    --

    DataSquid.net, a little about me.
  100. Re:Dammit, the command line is natural by cfish · · Score: 1

    \rant
    Why do liberal arts people read /.?
    \\

    deleting multiple folders are one of the things that are much easier in UNIX than Windows.

    Children use Macintosh because Steve Jobs and Co. decided to stuff these machines decades ago. (smart move, they know that most grade school teachers are simple too lazy to learn new things.)

    Can you imagine children are taught command line? For those of us who started using command line early in our childhood, we are the living proof that children are less afraid of command line than adults. they will beat thier teachers in a short period of time. Bussinessmen, however, hate to learn anything; they'd pay, they'd sacrifice productivity in order not to learn new things. which is why GUI's are so popular in bussiness.

    I think children are supposed to be taught to use computers in command line; the hard part is to train the teachers.

  101. Re:Dammit, the command line is natural by FreeUser · · Score: 2

    OK. But a CD player is called on only to do a small number of tasks. Most cd player apps for computers duplicate a similar interface. I think the issue becomes how you handle more complex stuff.

    Who is to say that a command line driven cd player wouldn't be better (or a better example, a cd jukebox or mp3 player with lots of storage).

    Pushing icons one after another would imho be far more cumbersome than simply typing (or saying)

    mp3> play all songs by Nirvana in random order followed by the predefined mix entitled "punk-party mix", then around 2:30 AM switch to the predifined mix entitled "bach-piano-concertos"

    The challenge is to devise a command line language that is both intuitive and powerful -- such projects as the latin perl project offer some hope in this regard.

    The command line has gotten a very bum rap, primarilly because no thought went into devising a coherent language. Instead cl languages have consisted of a small collection of arbitary commands, akin to the grunts and gestures of our cave dwelling ancesters.

    I find it more than a little ironic that, as computers take on more and more capaabilities, the language the users uses to interact with them becomes more and more dumbed down. I suspect we are going down the path where we replace alphabets with pictograms because pictures are easier for an illiterate to grasp, only to discover that, when that same user later wishes to write a novel, they are forced to use something akin to egyption heiroglyphs in order to communicate their ideas: a writing form vastly more complex and difficult to use than the 26 letter alphabet the illiterate in question should have just learned in the first place.

    --
    The Future of Human Evolution: Autonomy
  102. It may suck.... by BigumD · · Score: 1

    But don't forget that if it wasn't for software, all of our boxes would be silicon paperweights. ;)

    --
    --The space between my ears was intentionally left blank--
  103. Programming and coding by Kenneth+Stephen · · Score: 1

    Hear, hear!

    I learned programming by reading Niklaus Wirth's classic introduction to programming via Pascal. In that he differentiates between two activities : programming and coding. Programming, as defined by Wirth, is the art / technique of finding a solution to a problem using computers. Coding is the implementation of that solution using a programming language. IMHO, most of the problems with software today stems from too many coders (who think incorrectly that they are programmers) and too few programmers.

    Informal hacks do have their place. If I am trying to debug a production problem by sifting through 100's of megabytes of data, I am not going to go through a design, code and review process for any data analysis scripts that I write. This is where languages like PERL shine. Unfortunately, coders have decided that the same (absence of) engineering rigour they use in creating informal hacks can be used when developing entire applications. This is why a lot of applications today look and feel like informal hacks. Sadly, most such developers do arise from the PERL community - but PERL itself is not to blame. If engineered correctly, you can write quality software even in PERL.

    People who state loudly that a lack of formal training in CS disciplines matters not in application development, havent understood that the biggest payoff from such an education comes from a sense of engineering instilled into the student. Without that, quality software is a random event.

    --

    There is no such thing as luck. Luck is nothing but an absence of bad luck.

  104. Re:Dammit, the command line is natural by Wrexen · · Score: 1

    Sorry, but this is just a big load of carp. The command line is *not* intuitive for anyone unless they've been immersed in it for so long that they've forgotten what the sun looks like. If I had to tell someone how to build a guitar, I wouldn't give them just words, I would have tons of diagrams to more quickly convey how things should be set up. When I want to move things on my desk, I move them with my hands. I don't think of the equililent lingual syntax for how I want them arranged, I just do it. This is the same way decent GUI's can handle file management - if you want a file moved, drag it from point A to point B. I don't know what world you live in, but if you can describe a process quickly and efficiently with *only* words, it's not that complicated of a process.

    There are times where a command line is more *efficient*, but this is not the same thing as natural. The lack of efficiency in most of the GUI's today isn't because a GUI is inherently bad, it's just not flexible enough. Ideally I should be able to hit a key, punch in a perl script, and have the OS run it right there, or at the exact same prompt be able to drag things around and have the OS know what I "mean".

    If you've ever tried to fix someone's computer over the phone, or played pictionary, it's clear that only having text, or only having pictures, is not sufficient.

  105. I know why software still sucks... by AFCArchvile · · Score: 1

    Just look at my sig:

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  106. Cars suck. by SmokeSerpent · · Score: 1
    I interviewed former Popular Science conceptual artist Marcus Downforflame about his SQRT(-1) Manifesto, which he wrote a while back, but he's not doing much else these days except diddling around with other washed-up people on inconsequential projects such as his new "really cool Lincoln Logs Star Wars base."

    "Cars today really suck. I mean, they're basically the same as they were 50 years ago, with four wheels and an engine. They even still have headlights!"

    Marcus is famous for his drawings and paintings of various flying cars and personal jetpacks, which he was convinced would be here by now.

    "Look at it this way," he says, shifting his massive belly and accidentally knocking over his "King Cobra" bottle into the gutter, "Car factories are so much more advanced now. They have robots and just-in-time parts supplies. The paints they use on cars are more durable and shinier, but with all these resources, no one has managed to build a flying car!"

    "I used to draw cars in the 50s with turbofans and micro-atomic generators, but it was hard to do that with 'pencils' and 'paper'. I recently visited the PS Art Department, and you know what I saw them using? Pencils and paper!"

    "Here it is, 50 years later and I still haven't got to make it in the back seat of a flying car," Marcus' eyes get a little watery as he turns and looks at the scarlet sunset. I can almost see the swarms of flying atomic cars that he imagines, their fins glistening in the last light of the day.

    --
    All kings is mostly rapscallions. -Mark Twain, The Adventures of Huckleberry Finn
  107. Re:Open Source is making it worse by RickHunter · · Score: 2

    I'm betting you'll find just as many closed-source projects that are as bad, if not worse. Open-source is not a magical cure for all your coding woes, but it does help with a lot of things and has many high points. As you pointed out, Perl and Apache are well-engineered, as are the Linux and/or BSD kernels (dependant on opinion, though) and many other standard tools.

    Yes, there are bad open-source projects started by people who are 20 or 21, but consider how much they'll probably learn in the course of those projects. Especially if some more experienced programmers get interested and start showing them ways to improve their processes and code.


    -RickHunter
  108. Real headline: Unix sux. by toriver · · Score: 3

    It appears he hates Unix, not software as such. But he makes the same error as most other who do, he equates newbie unfriendly with user unfriendly. Which are not the same at all.

    1. Re:Real headline: Unix sux. by Cat+Mara · · Score: 2
      UNIX sucks. It has become the modern equivalent of OS/360 and COBOL. Hot stuff when it was introduced, now it is a dinosaur.

      Perhaps this is the best evidence to back up Lanier's arguments; if software engineering is so damn kewl, why has it failed to produce a credible alternative to these "dinosaur" systems?

      I see a number of problems with the state of the art today, most of them psychological and sociological rather than technological:

      1. The Not Invented Here mentality: there is no algorithm or library so fundamental that some damn weenie won't try to dick with it. Whether this obsessive wheel-reinvention is done for the purposes of vendor lock-in or simply to prove how 31337 the programmer is, is largely immaterial; the point is, programmer-centuries are wasted every year on this. Not to mention the fact that 99.9% of this reinvented code will be inferior to the original due to the programmer's naïveté or bloody-mindedness. The NIH effect also leads to technology holy wars, which if /. is any indicator, probably consumes more potential developer time than anything else. :-)
      2. Overoptimistic estimation: this point was touched upon in The Mythical Man Month, a book written in the early '70s (coincidentally, by the manager of the OS/360 project). The author makes the point that software is consistently late, yet this does not wake up practitioners to the fact that their estimation methodologies (assuming they have any) are bogus. Software people are incorrigible optimistics, it seems.
      3. The Ship 'Em Shit Road to Riches: the very malleable nature of software allows one to fuck up now, patch later. Never mind that scattershot patching increases the entropy in the code base, making maintenance a nightmare and reducing the internal consistency of the product. It's disgraceful that software companies should be allowed get away with this, but it's certainly not hurt Microsoft's or Oracle's bottom line. How can anyone get a sensible debate going on software quality when the largest companies ignore it and their customers still shovel money into their pockets?

      I'm sure people here can think of more. All of these things contribute to the noise in the software engineering community at large.

    2. Re:Real headline: Unix sux. by plover · · Score: 2
      You're right. I think he was traumatized by UNIX as a little boy; perhaps some evil uncle with a command line rm'd his favorite teddy bear.

      He offered no useful vision, only a whining lament that accomplishes nothing. A waste of time.

      John

      --
      John
    3. Re:Real headline: Unix sux. by isdnip · · Score: 2

      That's just ridiculous chauvinism. Unix isn't so great. It has obvious advantages, in some areas, over certain well-known straw horses which Unix devotees like to poke fun at. But it has many flaws too. The problem is that these flaws become accepted as part of the religion: Since they're part of holy Unix, they must be right. But they're not.

      And when it comes to quality, Unix gives you all the tools you could possibly want to make software buggy.

    4. Re:Real headline: Unix sux. by crucini · · Score: 1

      Poor Jaron. I don't think his point came across. You can read his essay in Wired Magazine if you want to understand it better. He was not saying, "Unix Bad, m$ Good". Rather, I think he takes it as read that Unix is the current state of the art and asks "how can we evolve past that?"

    5. Re:Real headline: Unix sux. by bdhall1313 · · Score: 1

      "UNIX sucks."

      In what way do you think UNIX sucks?

      "TCP/IP being the only new technology added to the kernel. The average Linux/*BSD hacker would feel at home on a box running V7 UNIX."

      What new technology do you think should have been added that hasn't? I assume you are saying that a Linux/*BSD hacker being at home with V7 UNIX is necessarily a bad thing. I don't understand where you get that idea.

      If something is not broken, there is no need to fix it. We have nice new GUI's to run on top of Linux / *BSD now. That does not mean that the underlying OS is bad simply because it was designed several years back.

    6. Re:Real headline: Unix sux. by Detritus · · Score: 2
      In what way do you think UNIX sucks?

      UNIX was a revolutionary piece of software in the 1970s. According to this chronology by Ronda Hauben, the UNIX kernel was born in 1969, over thirty years ago. V7 UNIX, which was many people's first exposure to UNIX, was released ten years later, in 1979.

      I don't mean to denigrate the accomplishments of Thompson, Ritchie, Kernighan and the others who contributed to UNIX. The longevity of UNIX is a tribute to their genius.

      If we pick 1979 as the baseline, what has been accomplished in the past twenty-plus years? The Mac and its GUI based OS debuted in 1984. TCP/IP became a standard part of nearly every operating system. Everything got cheaper and faster. And...

      Computer hardware advanced from the 8 MHz 16-bit 8086 and 1200 bps modems to 1+ GHz 64-bit microprocessors with complex and sophisticated architectures, gigabytes of memory and gigabit LAN connections.

      What happened to the progress in operating systems? We have the software equivalent of a Ford Model T powered by an advanced gas turbine engine that produces thousands of horsepower.

      --
      Mea navis aericumbens anguillis abundat
    7. Re:Real headline: Unix sux. by crucini · · Score: 1

      The reason there is so little interest in fundamental change is that we're in the middle of a war. M$ still has an excellent chance of crushing all other OS's. If we can kill m$ and clearly establish that future OS development will be open, we might have an influx of energy into more advanced OS's. Right now, if you question Unix most people assume you are doing so from an M$-advocate standpoint.

    8. Re:Real headline: Unix sux. by ksmeltzer · · Score: 1

      I could not agree more, this article is just a flagrant waste of societies valuable HTML resources.

      I'm sure he got rid of those weak SGI boxes which are not at all optimized for sim development, to develop his Real-time 3D sims(VR) on one of those much more powerful PC's with windows installed; because you and I both know that Unix was build for a command prompt and thats it.

      --
      Crack |
    9. Re:Real headline: Unix sux. by Tet · · Score: 3
      It appears he hates Unix, not software as such.

      Indeed. In fact, he complains:

      You can't just slap any arbitrary user interface onto Unix, because Unix dictates its inner self onto all layers that ride atop it.

      But one of the beauties of Unix is that its inner self is so good to start with, which in turn actively benefits any user interface you slap on top of it. The fact that Unix has survived so long at all is testament to that. Sure, it's not perfect, but Unix has very solid foundations, and they really aren't holding back anything.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    10. Re:Real headline: Unix sux. by Mr.+Slippery · · Score: 2
      The problem is that these flaws become accepted as part of the religion: Since they're part of holy Unix, they must be right. But they're not.
      They're not accepted as right so much as accepted as part of a package that, taken as a whole, is the best we've got.

      Think of it as evolution in action. "I don't think that the design of the human body is right - look at the knees, and the back. Ridiculous to adapt quadrapedal parts to a bipedal stance. And that brain - a space-faring species layered on top of a core from a fish! Ha! But it's easier to work with what we've got than to go back to the protocell level and do a redesign from there."

      Tom Swiss | the infamous tms | http://www.infamous.net/

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    11. Re:Real headline: Unix sux. by Anonymous Coward · · Score: 1

      kind of interesting that somebody who's complaining about bad software design also complains about not being able to "just slap an arbitrary user interface onto" something.

      and then he complains that it "dictates its inner self onto all layers that ride atop it". Well, if the inner layers are good (and I doubt that somebody who can't get past the whole command line thing would have any legitimate reason to believe otherwise), isn't it a GOOD thing that it forces that consistancy upon you?

    12. Re:Real headline: Unix sux. by Detritus · · Score: 2
      UNIX sucks. It has become the modern equivalent of OS/360 and COBOL. Hot stuff when it was introduced, now it is a dinosaur.

      As an "old fart", by computer standards, who can remember running V7 UNIX on a PDP-11, it is depressing to see how little things have changed over the years. The computers have 1000x the memory and disk storage, and run 1000x faster. The main changes to UNIX have been the addition of VM, TCP/IP and X. TCP/IP being the only new technology added to the kernel. The average Linux/*BSD hacker would feel at home on a box running V7 UNIX.

      --
      Mea navis aericumbens anguillis abundat
  109. Re:Software's not that different by kmcardle · · Score: 1

    To be sure, different parts of software have different needs. If you're designed space shuttle guidance software, go ahead and engineer for five nines (99.999% uptime). A script that pages you when you get an e-mail from your girlfriend is probably a lot less mission-critical.
    But the point here is that you want both of them to work. I would argue that from a personal perspective, knowing that your SO e-mailed you is more important than the space shuttle. But, the point is, both should work.

    How reliable should the software be?
    I don't understand that one. I never want to sit in front of my computer and hope it works this time.

    Fragmenting software engineering would have a very poor effect on the development of these base strategies
    Fragmenting can't happen until the base strategies are in place. Lanier is arguging that we haven't yet reached the level of having base strategies in place. I would agree with him. The discipline of design has not been hammered into our collective heads yet. The computer makes the leap from thought to code too easy. UML and various OO strategies help to slow down the leap to the computer and give people a chance to think designs over for a bit, which is what is needed. I really view UML as a process of thinking things over rather than software design. It gives you something to do while you think. The end result is a stack of documentation that makes coding easier and has the side benfit of showing that you at least thought about your design long enough to draw some pictures.

    --
    then it comes to be that the soothing light at the end of your tunnel is just a freight train coming your way
  110. Re:Dammit, the command line is natural by Slump · · Score: 1

    So, what you're saying is that software sucks.

    You should be able to enter 2" by 1" in coreldraw.

    You should be able to say to your computer, "format the hard drive - make it 1/3 of available space." Especially if you don't really care exactly how big it is - which most people don't.

    The software interfaces do not properly model the way that humans accomplish tasks.

    This is probably the biggest growth area I can imagine in software development.

    I mean, look at the Easel, KDE and Gnome - Brand new user interface layers, and what are they? More of the same old thing - with different pictures and colors.

    Humans are NOT exact things - computer/human interfaces should be designed to interact with humans, not humans having to be trained to become explicit and precise.

    Unless you want to maintain a techno-elite, which I think, perhaps, many people here do want to do.

  111. Re:good article by gdiersing · · Score: 1
    Good article? It is a work of fiction, read this passage:

    Brushing his trademark dreadlocks off his shoulder, his cobalt blue eyes become a deeper shade of unnatural as a smile finally flickers across his face.

    Sounds like a cheap novel or the author may be in love.

  112. Re:My feeling by Black+Parrot · · Score: 2

    > The vast majority of software is a question of implementation, not algorithmic logic. It seems like it's a lot more complicated to prove implementation than algorithms.

    Actually, it's rather straightforward for a mechanical prover to read the source code.

    > There are currently a very small number of people with both the analytical skills and the severely rational temperment required to do these proofs.

    Much of it can be done by machine. Also note that there once was a very small number of people who could write programs, but now millions can. Why not set out on the same path for the methodology of creating formal proofs?

    > And that correctness (or, more likely, bugginess) lives in the code, and in the code alone, so that's where you have to weed it out.

    Per above, you have proposed a solution to what you thought was the problem.

    > It just seems like it'd be no fun.

    No one said QA was "fun". The question is, do you take enough pride in your product to make sure it's right? Also, per above, mechanical provers is the way to go.

    --

    --
    Sheesh, evil *and* a jerk. -- Jade
  113. Re: Yeah, why is the Linux kernel compressed? by ichimunki · · Score: 2

    And if pico isn't powerful enough give nano a try, it's got the same friendly interface with some added features.

    --
    I do not have a signature
  114. Re:Open Source is making it worse by Hard_Code · · Score: 3

    I think we just need to realize that 100 amateur programmers writing and reviewing code, ad-hoc, is not necessarily better than 10 professional software engineers working closely together, using some semi-formal procedure for specification, requirements, collaberation, and coding.

    A lot of the most successful open source projects, were originally created by professional programmers (Unix flavors, including BSD; Apache; Mozilla; GNU utilities in general), and still retain some form of regimentation. Linux would not be were it is if Linus et al. let every single developer add their patches in, or modify code, whenever they wanted. Unfortunately this is exactly what happens in many new open source projects under the banner of "freedom"...which ends up producing remarkably mediocre code.

    --

    It's 10 PM. Do you know if you're un-American?
  115. Why Software sux by Archangel+Michael · · Score: 1

    In my dept, we were forced into a "project Managment training" seminar. It was supposed to teach us the wonders of why project management will do wonders for IT, along with the basic skill and concepts of PM.

    Two days for intense training, where the Trainer was inundated with typical scenarios in the various sections of our dept, that tried to illustrate to him the inherent problems of PM when upper management doesn't buy into the concepts of the projects.

    No problem, most of those in attendance knew exactly what to expect from the training session. Nothing. That is right, nothing! No changes what so ever, mainly because upper management hadn't bought into the concept.

    True to form, not even a week later, the Head of the dept, issued a "White Paper" explaining why PM can't work in a "dynamic environment" like IT.

    What is the lesson? Even when Managment knows what the problems and solutions are they still hedge all thier bets.

    Lack of leadership is the true enemy of any organization.

    --
    Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
  116. It's because software is art. by Anonymous Coward · · Score: 1

    If you see what I mean. Everybody can draw a picture of a house. Very few people can paint a masterpiece.

    I have read on numerous occasions that the performance of two programmers of equal educational background and experience can vary by as much as 1000%. This is proven in both my own experience and that of another poster who mentioned that only 2 of 10 C programmers he interviewed could code up strcpy().

    Software development is a creative discipline, and as such recruitment of programmers should be through auditions, not interviews!

  117. What exactly did he say? by mat+catastrophe · · Score: 4
    I read this article, really - I did - and I am not certain at all what Lanier said about software "sucking." At least, not in the sense that we all know about (bloat, fixes, patches, rush jobs, M$ in general, etc)

    what i got out of this was that Lanier thinks we are stuck in some tech-limbo, one where neither the software nor the laws governing the use of software are very useful. well, that and UNIX is old and ugly. Big deal, people still use it, and that doesn't automatically mean that it sucks.

    And his comments about "humanity" not knowing how to make software, or even what software is, were just plain over-dramatic, hippified philosobabble. After all, why is he discussing it then? Is he not a part of humanity? Or, is he better than us mere mortals?
    Plenty of people know what software is and how to make it. The focus is to make it more intuitive, faster, and less prone to Bad Design.

    --
    sig not found
    1. Re:What exactly did he say? by SmokeSerpent · · Score: 2

      Look before you leap.

      --
      All kings is mostly rapscallions. -Mark Twain, The Adventures of Huckleberry Finn
    2. Re:What exactly did he say? by mat+catastrophe · · Score: 2
      I think there's a difference between designing a building and a program. There's also a difference in research that goes into the two. Yes, "software" has only been around for 50 years (well, discounting the pioneers, I suppose). But, the rate at which we learn/innovate/redesign is a bit quicker than it was when engineering was being born.

      I suppose I do agree with the fragmentation argument. But again, software design isn't engineering.

      i think i'll stop rambling now. i just ran out of ideas....

      --
      sig not found
    3. Re:What exactly did he say? by kmcardle · · Score: 1

      Yeah, that's what I was trying to say.

      --
      then it comes to be that the soothing light at the end of your tunnel is just a freight train coming your way
    4. Re:What exactly did he say? by MidnightLog · · Score: 1

      Here are the three points that stood out to me while reading this essay (editorial?).

      "I think it should be inconceivable that the kind of person who writes one kind of software also writes another kind," Lanier says. "Basically, if you heard your brain surgeon also had a tattoo parlor, you'd probably demur. Right now we think of them as the same thing. We think it's perfectly all right for people to go back and forth. I don't think it is."
      This is happening now. I don't see too many people designing large pieces of financial software, running the company web site, and writing programmer's utilities. There may be people who can do all of these things, but they will find it very difficult to find a job where they have the opportunity to do so.
      "I mean, everything in Unix is ultimately based on command line interactions. You can try to overcome that, but it's very hard. Unix's whole philosophy on how to do internal management and how to manage timing is based on that set of assumptions, so you have to fight it at a thousand levels."
      Hmm, other people have already addressed this issue.
      "Let me just say that boldly: I don't think humanity has figured out the trick of how to make software. We don't know what we should do together to do this, and we don't know what procedure to follow."
      I don't think there is a "trick" to making software. It is hard work. The current problem is the industry focus on time-to-market. Feature "bloat" in certain packages is another problem. BTW, NASA has created some high-quality software; So it is possible to do so.

      Overall, I was hoping for a little more "meat" to this article. Is his .5 Manifesto any better?

      --

      To understand what's right and wrong, the lawyers work in shifts ...

    5. Re:What exactly did he say? by alprazolam · · Score: 1

      katz is smart? maybe in the way ellsworth toohey is smart. maybe not even that though.

    6. Re:What exactly did he say? by dstanfor · · Score: 1
      You may also want to think about the fact that digital engineering, and computer engineering hasn't been around much longer then software engineering (30 years if that), and digital designers seem to be able to do a better overall engineering of there stuff then software engineers. So the whole time factor thing isn't as big a deal as people make it.

      Dave

      note: coming from a digital design engineer

    7. Re:What exactly did he say? by Bongo · · Score: 1

      I read this article, really - I did ... Lanier thinks we are stuck in some tech-limbo... - and I am not certain at all what Lanier said about software "sucking." ... And his comments about "humanity" not knowing how to make software, or even what software is, were just plain over-dramatic, hippified philosobabble.

      It's a way of talking. Some prefer the 'specific', some the 'interconnected'. The article praises him for being 'outside', so to see the same perspective, you'll have to drop the 'unix works, and our software does what it's written to do' point of view, at least temporarily, and view it from 'outside':

      Imitating the Moore's Law extrapolation exercises of his intellectual sparring partners, most notably Ray Kurzweil, author of "The Age of Spiritual Machines: When Computers Exceed Human Intelligence" (Viking), Lanier predicts a world in which every living person on the planet is employed in some sort of a software help desk role.

      Here he's looking at the machine power advances, and saying, that from the point of view of intelligence, there is no advance. Adding numbers at 100GHz does not a smart machine make. Even the human brain was around for 100k's of years, pretty much fully physically formed, before language emerged.

      the Great Shame of computer science ... is that we don't seem to be able to write software much better.

      Again, just step back until you see his perspective. Yes, we currently have new applications, and our old applications have new features, but his view is broader...

      Edward de Bono spoke of computers as being tools for thinking. Notice he didn't say 'calculating', or 'sorting', or 'converting' etc. Computers may one day be used to create ideas in novel ways. But Lanier is saying, never mind the AI by 2020 rubbish -- can a computer replace a secretary's ability to organise and co-ordinate information? Not anytime soon.

      At present, we can't stop our 'typewriters' and 'adding machines' from crashing. And we have to train people to use them, and have help desks on hand coz there's too many features and quirks to teach in three days. It's the 'AI-will-replace-Humanity' camp that's over-dramatic, hippified philosobabble , and Lanier is exactly against this.

      "I'm an enthusiast of the potential for quality," says Lanier. "It's sort of a faith with me. I don't know if it's possible, but I'd like to try. Measure it on those terms, and there ain't no Moore's Law going on right now. There's only stagnation."
      Quality isn't about 'I can now dictate, (mostly), to my PC instead of typing', but about having tools that make things more elegant, simpler, clearer and less hassle. He's taking a broad perspective, partly to demolish the 'our machines are so clever' attitude, and partly to refocus us on the 'simple' things, like how to program our machines to usefully model the concept of a "letter", or a "phone call".

      He dislikes unix, I suppose, because the 'everything is a file' model is a bit like trying to say that 'all knowledge is a loop of neurons'.

    8. Re:What exactly did he say? by kmcardle · · Score: 3

      I think that what he was trying to get at is that software design and coding need to become more fragmented. A robotics engineer and a civil engineer are both engineers, but I really don't think the two could switch jobs that easily. They use many of the same methods to design things, but the end results are much different.

      How many centuries did it take for engineering to develop? Modern software design is only about 50 years old.

      Skyscrapers are built in a few years. How many years of planning go into those few years of construction? How many thousands of people are involved? Compare to your typical software project. Large programs are written in 18 months (yeah right). How many years of planning go into those 18 months? How many thousands of people are involoved?

      I would argue that software is not yet a repeatable process. It can be, but Lanier is right. Humanity does not "get" software design. It will eventually "get" it, and we will all be better off.

      --
      then it comes to be that the soothing light at the end of your tunnel is just a freight train coming your way
    9. Re:What exactly did he say? by Junks+Jerzey · · Score: 4

      Did you read the original paper at edge.org or did you just read the fluffy overview that this story references? The original paper is several months old and is much more detailed. It's somewhat surprising that the Slashdot guys missed the original paper completely.

  118. analogy by tewwetruggur · · Score: 1
    I thought that software still sucked because it hasn't had it's teeth come in yet, much like a little baby. If we can just get past the bottle and start on some solid food, maybe software will start to bite, and eventually chew.

    --
    Hi! This is the Sig, blatantly attached to the end of this comment.
  119. Re:Dammit, the command line is natural by Richy_T · · Score: 2
    Think about Star Trek. How does the computer know when a crew member is talking to it or to another person?

    Duh, it's a story, it's *not real* dummy.

    If you want some semi-plausible explanation, try that as I recall, they actually address the thing "Computer do this"

    And back to your point about instructions in foreign language, you have to remember that the conventions of pictograms are a learned thing as well. There's nothing "natural" about an arrow meaning "this direction" (ask any Floridian) and if you've ever tried to learn something by watching someone do it, if they don't describe what they're doing, it's very easy to get it wrong (e.g. "Insert this rod into this hole but make sure it's the end with the blue mark". If you weren't told, you may not have noticed the blue mark )

    There's a reason that Macdonalds cash registers have pictures of food on it while any serious programmer works in words. And that is because words convey more information in a less ambiguous way.

    Rich

  120. Re:My feeling by hey! · · Score: 2

    Well, I think one of the reasons that software sucks is a disparity of ambition and attention span.

    I often think of software as a branch of practical philosophy -- at its heart, it is simply applied reasoning. The idea that software engineering is the solution to software quality is as flawed as saying that moral or political reasoning just boils down to plain logic. Logic and software engineering are necessary in their spheres but not sufficent.

    A good piece of software is one which is good in many dimensions -- in its data structures, decomposition, architecture and expression, to be sure, but also excellent in other ways:

    * Understands the user's characteristics and motivations
    * Understnads non-users who are affected by the system.
    * Fills a void in the range of available products.
    * Peforms well in terms of stroage, speed or latency.
    * Utilizes sustainable technology (i.e. is reasonably future proofed with respect to platform and interface issues).
    * Has an excellent user interface.
    * Has excellent graphical design where appropriate.
    * Fulfils any ethical obligations it has (e.g. handling of sensitive private data; protection of human lives).

    As an aide, Asimov's Laws of Robotics kind of encapsulate the some of this -- a robot has to follow orders (suitability to task, user interface), a robot may not harm or by inaction allow a person to come to harm (ethical and societal concerns), a robot must protect itself (sustainability and robustness)

    Getting back to the issue at hand, the number of dimensions to be optimized is daunting, and requires time and deep thinking -- the kinds of things that go out the window under a deadline or in hierarchical organizations with pressure from superiors with very limited perspectives.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  121. It's not developers' fault by Anonymous Coward · · Score: 2
    [posting anonymously because I don't want my boss to read this]

    Short of coming up with a new definition, the only hope for improvement is to shove developers' noses in the problem until they finally get the point.

    IMHO, neither of these will help.

    I've worked with some really brilliant programmers in my time, and those people collarboarted to produce some of the crappiest code you can imagine. All of us knew that what we were doing was going to hurt us in the long run, but we did it anyway--not because we wanted to, but because we were told to.

    It's a good developer's natural inclination to take the time to properly design code and not release it until it's ready. Unfortunately, that runs counter to every business and management rule there is.

    If you work for pay, your boss is always going to pressure you into taking shortcuts, putting in quick hacks instead of designing real fixes, skimping on documentation, etc. Their main goal is to put out whatever fire is in front of them before their boss gets called in. That situation is repeated at each higher level, and at each level, it's less and less likely that the person making the decisions knows building software from laying bricks. Ultimately, the main direction of your development process is set by people who aren't concerned at all about the quality of the code.

    When the process sucks, the code will suck. When the code sucks, the quality will suck. But as long as you keep closing bug reports fast enough, your boss will think you're doing a great job.

    IMHO, this is one of the key reasons free (in both senses) software will always drift to a higher quality level than commercial software. Dollars cause bugs. Take the money out of the picture, and the a lot of the incentive to write crap goes away.

    That sounds communist, but I don't mean it that way. I simply mean that we should be prepared to accept the inevitable consequences of the way most software is developed today. If you want to change the state of software, either change the incentive, or (since money is an awfully good incentive), change the way that incentive is given.

  122. Re:If only project management was an honourable ar by mpe · · Score: 2

    IMO, the biggest reason for sucky software (and a reason that I haven't seen mentioned yet), is the *lack* of market pressure for quality software. Lets face it, users are at a point of almost expecting their apps to crash.

    Should this come as a surprise when software comes with an EULA which disclaims any wartentee, forbids examination, (unapproved) benchmarking, etc?
    In the US this position is being bolstered by new laws such as UCITA and DMCA.

    Thanks to the lack of robustness of widespead OSes like Win95, the average user has had to deal with enough crashes/inconsistencies and general oddities, that they don't expect much, so thats what alot of companies deliver.

    Whilst Windows may or may not be easy to use it is definitly difficult to administer and fault find...

  123. Re:Software's not that different by nibelung · · Score: 1
    It is not necessary to pay more for higher quality software.

    Projects that use the right engineering methods take less time to complete and support, and are therefore cheaper.

    It probably is true that the engineers who use these methods are more expensive to hire.

  124. Re:Dammit, the command line is natural by Trifthen · · Score: 1

    For most people this is how computers should be. They're tools, incredibly complex tools, but the complexity should be hidden behind simple metaphors. It isn't most peoples business to know about how computers do things, only that they do it.

    That's true, and false at the same time. I'll go for a car analogy here. Everyone agrees that an automatic transmission is much easier to drive than a manual. Shifting can be made automatic, so why not do so? ABS is another extension of that as well. But one intrinsic law that extends to all facets of life is this: The more options you want, the more complex the device.

    Don't believe me? Sure an automatic is easier to drive, but you lose the ability to downshift in bad weather. Sure ABS keeps you from skidding, but for those who've taken defensive driving courses, or want to do trick driving, ABS is just a hinderance. Together, ABS and Automatic Transmission "dumb down" the car, to make it easier. But in doing so, the car can't do as much as before.

    Computers are meant to be general purpose tools, to do anything imaginable under software. Try to bulk add/modify 1000 users in an NT environment, I dare you. If you don't have to resort to undocumented features or write your own binary modification routines through MS DLL's, I'll be greatly impressed. Wrappers are just that, they wrap out the harder stuff into nifty little packages. But they also restrict your abilities.

    It's simple. So long as computers remain general-purpose do-it-all tools, they'll be hard to use; merely due to the sheer amount of things they're capable of accomplishing. Unless we start phasing computers out, and start introducing very specific tools that do parts of a computer's vast arsinal, that's just the truth. We're already seeing it in digital books (no more downloding text files, and reading them with some software program), email checking hardware (no more chosing an email client, no more pop mail, etc.), and set top boxes for browsing the web.

    Seems to me that the future of computers lays in splitting up their abilities among many other devices; that's the only way to simplify. Remember, there are still plenty of people out there who can't even program a VCR. If we just keep making things simpler, we'll be left with one device that does nothing, and has only one large red button. Humans have to pick the slack up somewhere.


    --
    Shaun Thomas: INN Programmer
    --
    Read: Rabbit Rue - Free serial nove
  125. Re:Ada was a babe by glebite · · Score: 1

    Ada - Lady Ada Byron King... Not the language.

    Don't use Ada (the language) at all - but I do have a picture of her and Charles Babbage on my cube wall... And yeah, in the picture - she was a babe...

    --
    I donate all spillover Karma to the charity of my choice... Ada was still a babe despite what people may say...
  126. Re:If only project management was an honourable ar by alprazolam · · Score: 1

    this is bs. at my companies, its the management that gets fired when a project fails, if they could have saved it. the engineers are never blamed for programs failing, unless did things like lie, or acted unethically, or did a crappy job (which does happen).

  127. sensational journalism? by JohnCub · · Score: 1

    What was the point of this article? Other than a smattering of buzz words and the general feeling that we got to spend a few moments 'alone' with this fellow, what was the merit? I think it is blatantly obvious that software is in a bad state right now. Why beat a dead horse? I notice that he wasn't offering any solutions, just writing books about how bad it is...

    I can't respect that. If he's going to criticize the masses that do their best for their employers and themselves, he should offer some alternative.

    Sounds like he's a disgruntled programmer with coders block.

    --
    -= Why can't I add 'Anonymous Coward' to my list of Foes? =-
  128. Re:Why my code sucks by bowb · · Score: 1
    The K in CMYK stands for blacK. If you had ideal inks, you could mix Cyan, Magenta, and Yellow to get black. Unfortunately, with real inks, it's not black enough, so you need an actual black ink.

    But yes, I think you were right. Magazines are printed in CMYK and have been for a very long time. I was just pointing out that one could mistake Magenta for Red and Cyan for Blue, especially since it's a common, incorrect belief that Red, Yellow, and Blue are the primary colors.

  129. My feeling by Trinition · · Score: 5
    I have a feeling softwrae sucks because it is not engineered properly.

    As the author of the article points out, hardware is getting more complex and better. But hardware is designed. It's designed, tested, built upon, etc.

    And while we're all taught that we shoudl use proper design for software, few of us take it whole heartedly. Sure, we might do a few object models, flow charts, etc. But how many of us use propositional logic and predicate calculus to prove our software will work as it is intended? And still further, how many of us have unbiased testing of our software?

    I think the larger the corporation, the more of these practices might be enforced. But it is still up to the programmer to truly adhere and take these to heart. I don't think we quite have the discrete tools that hardware designers have. Nor do we have the worry that once the circuit is printed, you can't easily "fix" it.

    1. Re:My feeling by leviramsey · · Score: 1

      Of course, how many of those errors are in the microcode?

    2. Re:My feeling by Aqualung · · Score: 1

      The point he's trying to make is that the API that is available to windows developers is better documented than the various Linux-related API's (X, kernel API, etc...). Whether or not MS decides to disclose the entirety of their API isn't really relevant to this, so your WINE argument doesn't make any sense in this context.

      ----
      Dave
      MicrosoftME®? No, Microsoft YOU, buddy! - my boss

      --

      - Dave
    3. Re:My feeling by mcjulio · · Score: 1

      This is probably the single most insightful thing said on this thread so far. It's almost an exact description of what happens inside the software house I work for. Developers who, given adequate time and resources, would come up with the most elegant, high-quality designs possible are forced between the Scylla and Charybdis of marketing and management, AKA the aggressive ship schedule, and crapware is the result. It would take the marketplace demanding quality from for-hire vendors for this to change, not management foisting it off as one more checkbox.

    4. Re:My feeling by fhwang · · Score: 5
      I agree with most of what your saying, but allow me to take issue with the idea of logical proofs in software. Not that I've done it much, but there are a few reasons I'd rather not rely on this:
      • The vast majority of software is a question of implementation, not algorithmic logic. It seems like it's a lot more complicated to prove implementation than algorithms.
      • There are currently a very small number of people with both the analytical skills and the severely rational temperment required to do these proofs. So relying on that for QA seems like it would put a really nasty bottleneck on the process.
      • I have this sneaking suspicion that any abstraction of code -- UML, flowcharts, proofs -- is only that: an abstraction. And that correctness (or, more likely, bugginess) lives in the code, and in the code alone, so that's where you have to weed it out.
      • It just seems like it'd be no fun. Don't get me wrong; I try to make my code clean and maintainable and all that. But if I had to run it all through some tortuous logic to prove to myself that it works, I don't think I'd ever want to code at all.

      I personally think Extreme Programming holds a high amount of promise. At times it seems like dogma, but in general its principles make a lot of sense to me. Keep those feedback loops tight. Fixed requirements are a myth, so don't ever design for fixed requirements. Well-maintained test cases are as important as coding.

      (Of course, I work in a web shop, and the definition of QA in our industry is "Those colors look right in that Photoshop mockup", so it's not like I really know from experience. Just some random thoughts.)

    5. Re:My feeling by sjames · · Score: 2

      I remember when Six Sigma quality control (3.4 parts per million defects allowed or 99.99966% quality) was the big buzzword around management. Not sure if you could ever apply manufacturing line techniques to software quality, but at least someone started talking about quality. Nothing much ever happened, but I?m sure a bunch of buzzword books were sold.

      Management told the engineers they wanted it, the engineers submitted an estimate of the cost and time to develop (in half the time it takes to do an estimate right because management wanted the figures now). Management got horrendous sticker shock, gave them a fraction of the estimated time/budget reflecting what they could (or wanted to) afford along with external factors such as when the competition would likely have a similar (in purpose) product.

      The developers took that and attempted a features/bells-and-whistles triage but marketing wouldn't budge. They then produced what they could within those constraints: the same old thing.

      I'm not saying that developers can't do better, just that developers are far from solely responsable for the current situation and cannot fix it alone. Management isn't solely responsable either. They have to be responsive to the customers who want it yesterday and will buy from the competition if it is first to market (even if it is crap).

      The tragedy of the commons comes into play as well. There is always a vendor who is willing to produce total crap and use marketing to get it into wide circulation. They compensate for being crap by designing vendor lock-in and anti-interoperability features to keep the other guys from coming in a year later with GOOD software and taking their customer base away.

      Thus, other vendors are strongly driven to produce crapware as well to grab market share (and avoid being killed by network effects). They tell themselves that v1.5 will be what 1.0 should have been. Unfortunatly, they are in a race with crapware, inc. to release v1.5.

    6. Re:My feeling by funkman · · Score: 1
      Of course software sucks because we need to also change it every time the hardware changes. We have good software out there that was designed for specific devices. Then we have tons of crappy software that was designed and redesigned over time because of changing hardware - or the design was crappy but it was modeled so it may be easily portable.

      The answer: Stop redesigning hardware... wait a second, thats rediculous.

    7. Re:My feeling by Coz · · Score: 1
      I'll agree with this analogy. Software engineering is "engineering" in the most primitive sense, now... we have some fundamental concepts, worked out over the last fifty years, and some others that we've adapted from other disciplines (architecture, library science, ergonomics). We still lack an internal classification system - everything's software, be it Web, embedded, accounting... we keep trying to apply the same tools and principles to these disparate problem domains, and in the end it too often seems to come down to who can hack fastest to get to market first.

      Earlier, there was discussion of the relative maturity of electrical and computer hardware engineering. EE is only about 100 years old, as a discipline, and computer hardware engineering (a sub-discipline of EE) is only 50 or so. What have they learned in that time?

      How to construct primitives (memory cells, NAND gates, FPGAs). How to put them together to address individual issues. The constraints surrounding their use. They have a body of reference works, which they can use to look up the fundamental principles to apply to their calculations.

      Computer Science, and software engineering, are still at a more primitive level. True, we have Knuth's compendium of primitives. The concepts of object- and component-oriented software development are emerging from the morass, but how much software out there is really OO? (A hint - just because you used a C++ compiler, it ain't necessarily OO.)

      In colonial America, almost anyone could build a one-room house - few were architects and engineers who could build assembly halls, docks, bridges, and the rest of the infrastructure required for a growing colony. I get the feeling most of us are "programmers," skilled at cutting down trees, making boards, and nailing them together, but not so good with the drafting blueprints part.

      --
      I love vegetarians - some of my favorite foods are vegetarians.
    8. Re:My feeling by timmyd · · Score: 1

      An individual developer like me does not have the resources to test software like a commercial company would. I think one of the reasons free software quality is lacking is because it depends on the users to give feedback and quality control help by emailing the developer about problems. However, I think that this rarely happens and developers don't get enough feedback or motivation to build to best program out there. Until we have users that demand quality and are willing to talk to the developer about the problems they have, I don't see free software getting any better.

    9. Re:My feeling by Anonymous Coward · · Score: 1

      I know I'd be a whole lot more productive if I had as good documentation as what Windows programmers

      Umm, yeah...

      That's why WINE was implemented so easily, right? Because all of the API's are documented, and there are no anomalies..

      Sorry, you may think that Windows has a good API, but in the real world, Visual Basic doesn't quite cut it.

      Much of the Windows API is hidden (see the the problems that WINE has making Office work..) and/or subject to change a MS's whim...

      The truth is that MS has no idea of how to implement standards (wheter it be an API, or a networking protocol) even when they write the spec themselves (hint: PPTP isn't implemented properly by NT, even though MS wrote the spec.)

    10. Re:My feeling by LordNimon · · Score: 1
      WINE is not a fair comparison, because it is not a Windows application. It tries to be a clone of Windows itself (more or less).

      My point was that for a person trying to write a Windows driver or application, the documentation that he needs is much better than the documentation a Linux driver/application programmer would need. In fact, practically every OS is better than Linux in this regard.
      --

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
    11. Re:My feeling by Smallest · · Score: 1
      Actually, it's rather straightforward for a mechanical prover to read the source code.

      now prove that the mechanical reader is correct.

      G.E.B.

      -c

      --
      I have discovered a truly remarkable proof which this margin is too small to contain.
    12. Re:My feeling by 10am-bedtime · · Score: 1
      well the point is not to run your code through torturous logic. the point is to write code that runs other code through torturous logic. software industry is guilty of, among other things, wallowing in first-order artifact capture instead of promoting higher-order toolsmithing.

      to use an analogy some people here might understand: we have "Seed"-level technologies but largely stick to "Feed"-style construction. blech.

    13. Re:My feeling by yep · · Score: 1

      I would argue that developing/testing/fixing hardware is a lot easier than software. Proper design for software? It's all subjective to interpretation and style. I honestly think most software/firmware developers try to follow some type of design pattern when they start out. However, things such as budgets and schedule crunches seem to take over. Could the problem be that not enough time nor consideration is given from "on high" in the business world to the actual complexity of software design? One can easily prototype something in software that appears to be finished, when in fact it's not. This could give a false sense of completion for management. I would venture to say that once you get hardware running, you're pretty close to being finished. I agree with the author. Software is still a long ways off from actually being intuitive and something that is friendly to all who use it.

    14. Re:My feeling by Black+Parrot · · Score: 2

      > now prove that the mechanical reader is correct.

      You just have to bootstrap it from a kernel small enough to be managed by a human, similar to what is commonly done when creating new programming languages.

      In the case of provers, you write a small kernel that provides a minimal set of functions, prove it correct by conventional means, and then use it to prove the code for new features you want to add to it.

      Nice thing is, you only have to do that once. Once a guru has proven his prover, Joe Q. Assurance only needs to know how to use it, not re-create it from scratch. We expect civil engineers to understand statics and dynamics, but we don't make them build their own calculators.

      --

      --
      Sheesh, evil *and* a jerk. -- Jade
    15. Re:My feeling by scotay · · Score: 1

      Good points.

      I can't remember a software project where quality was even talked about let alone quantified. Was an expected defect level ever in a spec you have written or been given? Have you worked on a project where the design was thoroughly reviewed BEFORE the code was written? I can't remember a project where the design wasn't a moving target. Can we expect quality software, if quality is not a requirement from day one? Can we even quantify software quality the way we judge the quality of hard goods?

      I remember when Six Sigma quality control (3.4 parts per million defects allowed or 99.99966% quality) was the big buzzword around management. Not sure if you could ever apply manufacturing line techniques to software quality, but at least someone started talking about quality. Nothing much ever happened, but I'm sure a bunch of buzzword books were sold.

      I think quality will improve if quality is a requirement before coding starts. It must begin before the design phase to have any affect on the completed code.

    16. Re:My feeling by cduffy · · Score: 2

      My point was that for a person trying to write a Windows driver or application, the documentation that he needs is much better than the documentation a Linux driver/application programmer would need.

      As someone who'se spent time coding for both Windows and Unix (now about twice as long as Unix than Windows), I've gotta' disagree on that.

      First off, I'll openly admit that the linux kernel docs are rather sparse -- but that doesn't affect app writers, only folks working on drivers. Furthermore, the source includes several 'sample drivers' written just to be copied from, and is written cleanly in accordance with Linus's assertion that well-written source is its own documentation.

      However, the userspace documentation is excellent. I get through writing a GTK app much, much faster than it used to take me to get something perfected in MFC, as both the official docs (tutorials, et all) are well-written and the source is there when I need to refer to it (wondering why that damn call crashes? oh! it's dereferencing that pointer, which was supposed to be set when I called /that/ function, which I didn't... yeah, that same stuff is in discussed in the written docs, but debugging-by-source is often faster).

      What are you complaining about the documentation to, then? The standard C library? Having worked with quite a lot of commercial unices (and Win32), I find glibc's documentation (and that of libstdc++) to be average at worst, and quite good at best.

      Please instanciate your claims.

    17. Re:My feeling by UberLame · · Score: 1

      Some of us feel cowardly about talking to the actually developers because we can't reproduce reliably a bug, and because we have a hard time adequately describing it.

      On top of that, when we do send feed back to developers, it is often hard to see the effect. I always use the talkback version of mozilla and do my best to explain what I was doing at the time of the crash, but I don't see much improvement in the past few versions I've tried. Then, when I complain that it is unreasonably slow on my machine, I'm just told to upgrade.

      --
      I'm a loser baby, so why don't you kill me.
    18. Re:My feeling by Zico · · Score: 1

      But hardware is designed. It's designed, tested, built upon, etc.

      Go check out the errata for a CPU sometime and you'll wish that you'd never put hardware up on the pedestal that you did. And no, I'm not just talking about the showstoppers that have forced recalls over the years.


      Cheers,

    19. Re:My feeling by alprazolam · · Score: 1

      at least some 'classic' software goes through a fairly rigorous test period. why doesn't web software ever do that, it's always about having lame moving gifs and shit.

    20. Re:My feeling by timmyd · · Score: 1

      yeah.. they always tell you that the latest cvs is blazing fast.. whatever.. i use it and i don't think it is that great. it is also sooooo buggy... i don't think they really need testers to report back--they just need to launch their browser and fool around with it for a little while to see a crash.. and a web browser is so easy to test because you don't lose much when it crashes.

      but i made the mistake of making a mta. no one wants to put their mail on the line to try something new like that. i don't think i have any other programs i want right now, so nothing else to make...

    21. Re:My feeling by bowb · · Score: 1

      Have you ever looked at Design By Contract? A good thing about it is that part of the spec can live inside the code itself, and is checkable at run time. To some degree, the spec and the code get cross-checked against each other.

  130. Re:Dammit, the command line is natural by fatphil · · Score: 2

    Garbage.
    I had to use a W98 machine the other day, and if froze. I'd never used W98, and wanted to kill the task which had disappeared up its own arse.
    How do I run the task manager? Or is that "TaskMgr", or "TaskMan", or the other "TaskMan" (NT has 3 executables with that kind of name!).
    Right mouse button click on the Task Bar (ooh, "task" bar - may be there's a task manager on it?) failed to offer me a task manager. Crap. Hmm, is there a keyboard method?
    In NT it's C-A-Del, but in older Windows that rebooted the system. Dare I press C-A-Del?
    Eventually I had to, as there was nothing else I could do. OK it worked, but that was guesssork.
    I don't know if it would work on W95, and hope to never find out.
    The graphical system - being different in each evolution of Windows, completely failed me.

    On a command line Unix system I only need to know 3 things, which have been constant since time immemorial
    a) ps b) kill c) if all else fails - man.

    Which is easier to learn
    "on 3.11 do XYZ, on W98 do ABC with the mouse or PQR with the keyboard, on NT do JKL with the mouse or NMO with the keyboard"
    or
    "ps then kill"

    You've chosen your method. You can have it. I'll chose my own thank you.
    (Haha, 32MB video card, and I spend 99% of the time in the text mode consoles, as they are more efficient for me!)

    FatPhil
    -- Real Men Don't Use Porn. -- Morality In Media Billboards

    --
    Also FatPhil on SoylentNews, id 863
  131. Re:Ada was a babe by dpilot · · Score: 1

    I know the reference was to the babe, not the language. But when a thread on software reliability came up, I figured it was a reasonable place to see or say something about Ada - the language. Setting the threshold down (maybe I should have gone to 0) to scan for " ada" I found only the reference to the babe.

    Maybe this in itself says something about why software sucks.

    --
    The living have better things to do than to continue hating the dead.
  132. Dammit, the command line is natural by typical+geek · · Score: 5
    Lanier pisses me off when he talks about how unnatural UNIX/Linux is with it's focus on the command line. The command line is the most natural way humans communicate.

    When you get home at night, and you MOTAS/roomies ask how your day was, do you
    • A. Draw pictures and icons of how your day went.
    • B. Tell them in words how it went.

    When you have to describe a particular method of doing something, do you

    A. Draw lots of pictures?

    B. Use numbered steps with words?

    I remember a book by an AT&T fellow about data compression and information theory. Two teams had to put together a mechanical device, one team member had the instructions, one had the parts, and they were separated. One team only had an oral link, the other team had video, too. There was no difference in the amount of time needed to build the device, the added video link added nothing.

    HDF does Lanier plan to interact with his computers, pretty pictures? Waht ajoke.

    1. Re:Dammit, the command line is natural by Fervent · · Score: 2
      In terms of deleting multiple folders, GUI's are far more simple.

      Also, there must be a reason why children are taught the Macintosh GUI in schools.

      --

      - I don't care if they globalize against free speech. All my best free thoughts are done in my head.

    2. Re:Dammit, the command line is natural by leviramsey · · Score: 1

      That's fading away. Dell sold more computers to schools than Apple has (in 2000).

      Of course, it may be that the elementary schoolers are geting Macs, while the middle/high schoolers get the Wintel machines (because high school computing has a major application bent).

    3. Re:Dammit, the command line is natural by Tower · · Score: 2

      >In terms of deleting multiple folders, GUI's are far more simple.

      That depends on your example...
      selecting junk\ from within C:\stuff\ and [pressing delete| right click, select delete]
      isn't any easier or harder than
      rm -r junk/ or...
      deltree junk\

      if you need to delete some, but not all subdirs that don't have a common identifier, selecting multiple ones then hitting delete in a gui can be quicker than typing rm foo for a bunch of differnet foos... If they have a common identifier (say they all start with feb00 (because you keep things organized), then rm -r feb00* is a heck of a lot quicker...

      While I don't think that children are "taught" any GUI in schools (there is very little to learn about GUIs, IMNSHO - changing between Mac/Win/KDE/ Gnome/FVWM/etc usually requires less than a half day to get oriented, and within a day or two, one should be fairly proficient), some reasons that they may have encountered Macs more than often than PCs in school include:
      - Apple gave a big price break to schools (smart move).
      - The early Macs were a heck of a lot better at most things than early PCs (8088/86, 286)
      - Applications for kids actually existed, and were easily obtainable.
      - The teachers had them, since often they could get them at a discount through the school.

      Now, I've always owned x86 PCs since the end of my C64/128 days, but the Apple GS and early Macs were "ahead" of the early PCs in a lot of ways.
      --

      --
      "It's tough to be bilingual when you get hit in the head."
    4. Re:Dammit, the command line is natural by Fjord · · Score: 1

      The point is that the play button is an icon. You press it, just like you would press an icon in a GUI. Even icons in GUIs are labeled. The difference is that the CD player isn't just a box with no labels or buttons that you have to remember the commands for.

      I do prefer CLI, though, since I can remember many of the commands. Plus it's a lot easier to put in a document what commands to type rather than Which|Tab|To|Go To to check which box.

      --
      -no broken link
    5. Re:Dammit, the command line is natural by fatphil · · Score: 2

      Give advsh a go.
      It's the Adventure Shell.
      You walk around a maze of your directory heirarchy and can pick up objects into your knapsack (like exporer's "cut") and drop them in other "rooms", like "paste". Except of course, that the backpack can contain any number of objects.

      Just like old adventure games, you can do stuff like the following:
      pick up wizzo.o wizzo.a wizzo
      go out
      enter libs
      drop wizzo.a
      go out
      enter binaries
      drop wizzo
      destroy wizzo.o

      Yeah, sure it's quicker to use a file manager, but having the "adventure game" pedigree, it does try and understand simple English commands.

      FP.
      -- Real Men Don't Use Porn. -- Morality In Media Billboards

      --
      Also FatPhil on SoylentNews, id 863
    6. Re:Dammit, the command line is natural by Erataikasu · · Score: 1

      Pushing icons one after another would imho be far more cumbersome than simply typing (or saying)

      mp3> play all songs by Nirvana in random order followed by the predefined mix entitled "punk-party mix", then around 2:30 AM switch to the predifined mix entitled "bach-piano-concertos"


      Only if it understands you the first time. I'm not sure it's fair to compare a theoretical capability of a future command line to current GUIs.


      I find it more than a little ironic that, as computers take on more and more capaabilities, the language the users uses to interact with them becomes more and more dumbed down. I suspect we are going down the path where we replace alphabets with pictograms because pictures are easier for an illiterate to grasp, only to discover that, when that same user later wishes to write a novel, they are forced to use something akin to egyption heiroglyphs in order to communicate their ideas: a writing form vastly more complex and difficult to use than the 26 letter alphabet the illiterate in question should have just learned in the first place.


      Let's get this straight right now. Command Line versus GUI is not about Text versus Icons - there is a huge amount of text on my screen right now (I have a total of 8 icons on my web browser, and 6 text-based menus, each containing a large amount of text in themselves, plus a URL bar, which anticipates what I'm trying to type and gives me a few options for completion). It's not even about keyboard versus mouse - there's plenty of typing goes on in a gui, and it's possible to get by without a mouse at all (Albeit quite painfully).

      GUIs are about direct manipulation. All the buttons and icons are peripheral. It's about being able to highlight a piece of text, and move it to the point in the document where you want in to be. I can't even begin to imagine how you'd do that with a command line.

      Command lines are about telling your computer what to do, GUIs are about doing it yourself.

      Even a simple xterm gains power from a GUI. Scrollbars and drag & drop editing & cut and paste. (That said, X seems to be only just getting to grips with cut and paste and other basic GUI concepts, so perhaps it's not surprising that the unix users equate GUIs to what they've been limited to.)

      As lame as a "can't we all just get along" speech may sound, in this case it's true. Command lines and direct manipulation both have their place in a modern user interface.
    7. Re:Dammit, the command line is natural by marm · · Score: 1

      What is true is that the developers of the new Linux GUI are making the same crappy mistakes as Windoze, in that they are not improving the CLI at the same time. Why doesn't KDE provide a "launch" command that takes a list of arguments and does exactly the same thing as the user clicking on those icons?

      Actually, it does. Next time you're in a Konsole in KDE, type 'kfmclient exec $filename' where $filename is, surprisingly, the name of the data file. This will use KDE's file types to automatically launch the correct application for dealing with this data file.

      As a side note, I believe Windows has the same capabilities in its command line - the rather unceremoniously-named 'start' command.

      Next time try looking harder before you bash. :-)

    8. Re:Dammit, the command line is natural by Tower · · Score: 2

      Yeah, most of the WMs for X don't allow a lot for keyboard input. I found that KDE does a better job than most (if you want it to), including the most basic of things (though it has gotten less basic in KDE2) - Alt+F2 brings up a line where you can type in a command to run (better be a GUI prog, though - stdout + stderr go elsewhere).

      Neither of the worlds Win/X are even close to ideal, but since both have been grabbing some of the better features from each other, we can hopefully expect the overall usability of each to improve (wow, doesn't that sound like a bunch of Meta-BS)...
      --

      --
      "It's tough to be bilingual when you get hit in the head."
    9. Re:Dammit, the command line is natural by Richy_T · · Score: 2
      You should be able to enter 2" by 1" in coreldraw.

      Yes, that is my point. I am not trying to say "CLI only, no GUI", I'm just arguing against the opposite opinion.

      You should be able to say to your computer, "format the hard drive - make it 1/3 of available space."

      Fine. But that's not what I said. 1/3 is an exact quantity, I included the word "about" which has no real meaning to a computer

      The software interfaces do not properly model the way that humans accomplish tasks.

      Humans accomplish tasks according to the interface and tools given them. this happens in real life also. We use improvisation and lateral thinking all the time. We are flexible, may as well take advantage of it. Let computers do what they're good at, and we, us. Don't cripple them just so we can be a bit more lazy.

      I mean, look at the Easel, KDE and Gnome - Brand new user interface layers, and what are they? More of the same old thing - with different pictures and colors.

      Oh look, it's the "Unix is crap cos it's 20 years old" argument with a different subject. While not being a huge fan of GUIs, I have to say that the reason things are duplicated and persist is because they work. We seem to be in an age where we have gone beyond change being good but it's become compulsory.

      Humans are NOT exact things - computer/human interfaces should be designed to interact with humans, not humans having to be trained to become explicit and precise.

      Computers are a tool and tools should be designed with the job at hand. I don't complain when I'm fixing my car that my screwdriver should be able to prevent me having to lie down on the ground under the car and thread my arm through a narrow path between the engine and the firewall, nor do i complain that the whole engine should be dismantleable by undoing a nut on the top of the engine. Humans are by far the most flexible thing in the known universe. Sure computers shouldn't be programmed by dip switches anymore but there is a middle ground and it's not to have computers do all our thinking for us.

      Rich

    10. Re:Dammit, the command line is natural by Xugumad · · Score: 1

      For complicated concepts, sure. The desktop is designed to perform simple things however, generally consisting of a verb and noun (load program.exe, delete rubbish.txt, etc.).

      The other problem is that the UNIX command line has some pretty odd command names (could you guess what "ps" does? "grep"? "troff"?). You need to be trained to use a command line, any command line, while most people can pick up how to use a desktop far faster!

    11. Re:Dammit, the command line is natural by Richy_T · · Score: 2
      The point is that the play button is an icon. You press it, just like you would press an icon in a GUI. Even icons in GUIs are labeled. The difference is that the CD player isn't just a box with no labels or buttons that you have to remember the commands for

      OK. But a CD player is called on only to do a small number of tasks. Most cd player apps for computers duplicate a similar interface. I think the issue becomes how you handle more complex stuff.

      Rich

    12. Re:Dammit, the command line is natural by n0rm · · Score: 1

      About a year ago I read an article that had a similar premise to this. (can't for the life of me find the link though) The article discussed at length the mistake of OS developers trying to mold the interfaces to the people using it. The problem is that the computer doesn't have the power adapt to everyone. People, on the other hand, already are the ultimate adaptors, and could learn to use any device proficiently. Studies have proven that people do in fact recognize pictures faster than text, but at the same time input commands and data into a machine faster using a keyboard. Our brains are wired for the complex patterns and routines that make a command line environment very powerful.

    13. Re:Dammit, the command line is natural by Richy_T · · Score: 2
      There's a little triangle pointing to the right, you know that it means play, it doesn't say play

      Yes it does. It doesn't say it in written English but you've learnt that a little triangle pointing to the right means "play". It could reasonably mean "eject tape" or "move player three inches to the right". It says play just as much as the combination of the P,L,A and Y symbols.

      and you don't command the player to "spin up the motor, focus the laser and detector assembly for optimal signal/noise ratio and start reading", you push the play button.

      See, you just proved my point.

      Incidently, it's been shown that accomplished readers recognise whole words rather than actually "read" them so in a certain sense, for these people, words become like pictograms anyway.

      Rich

    14. Re:Dammit, the command line is natural by ayjay29 · · Score: 1

      Yeah, I find that all the time in bars...

      "Do you come here often?"
      Line rejected

      "Nice legs, what time do they open?"
      Line rejected

      "Do you believe in love at first sight, or should I walk by again?"
      Line rejected

      "I'm easy. Are you?"
      Line rejected

      Maybe I should start drawing icons...

      --
      Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
    15. Re:Dammit, the command line is natural by spitzak · · Score: 2
      Re: If you can drag a lasso around the old fruit (sorted by date via the sort bar, one click)

      Take a good look at exactly what "Sorted by date via the sort bar" implies. You idiot, if that was possible it would also be trivial to do that with a CLI-program that deletes by date. In fact the command could be reused with no brain power at all, while the GUI would require you to keep clicking on the correct date (unless the GUI had a field that said "date to delete before", but if you think a usable GUI would provide that and all the billions of other possible reusable commands you are really mistaken).

      An awful lot of attacks on command lines make this same mistake: that the GUI computer magically has information that the CLI computer cannot access. The most common example is "I can click on the document in the GUI and it opens". This requires the computer to know a lot of information, like "what program to run when this file is identified and how to tell that program about it". This information is not magically there just because it has a GUI. If the computer knows it there is no reason a CLI program cannot do it, for instance a shell should be able to let you "type a file name in and it opens it".

      What is true is that the developers of the new Linux GUI are making the same crappy mistakes as Windoze, in that they are not improving the CLI at the same time. Why doesn't KDE provide a "launch" command that takes a list of arguments and does exactly the same thing as the user clicking on those icons?

    16. Re:Dammit, the command line is natural by FrenZon · · Score: 1

      Compare interacting with my site, which uses a command line as the only form of navigation, with navigating icon-based sites.

      User feedback has said that while the command line is fun, as far as usability goes, it's sloooww.
      Glen Murphy

    17. Re:Dammit, the command line is natural by crucini · · Score: 1

      AutoCAD does what you want. It has a good command shell and you only need to use the mouse/digitizer for tasks like selecting an entity.
      What the couch-placing dude missed is that most sizing and placement tasks are driven by mathematical/geometric rules. There is very little place in mechanical design for interactively picking a point on the screen. When I worked on CAD drafting, freediging (pronounced "free-didging") was forbidden. That means moving the digitizer until it looks right on the screen and then clicking.
      To get back to the couch, I'll bet the designer had a geometric requirement but couldn't think sufficiently formally to express it. Therefore, he thought "I'll just move this couch around until something clicks inside me."
      He parodied the idea of geometric placement by citing a 30 degree angle when he obviously doesn't care about the angle. Instead, the constraints on placing the couch are probably based on clearances remaining to walls and other furniture. I've had to engineer the placement of control consoles in crowded control rooms, and it's driven by math.

    18. Re:Dammit, the command line is natural by Maserati · · Score: 1
      Yep. Macintosh, 1984. 4-byte file type field and 4-byte creater field (default app for this file). Technically, this is in the file structure, not the filesystem. But it is always there. Resources are structured storage for everything that makes up a program: code, icons, menus, windows, graphics, sounds, CLUTs, at al. There was a very nifty Swiss Army kinfe called ResEdit, useful for poking around inside things (Don't like the keyboard shortcuts ? Resedit ! Want a sound from a game ? Resedit !)

      Then there's NeXT style .app packages. These are folders with a special attribute. They act like an executable, but can also be treated as a normal directory with the binaries and other resources inside. In OS X, I've seen source packed in as well. So the user sees one monolithic icon, but the splash screen (TIFFs or PDFs in OS X) has a path and can be accessed. So can code modules, the icons, everything. Notably, preferences go into either the user or the system library so they're independent of the app, and can roam with a user profile.

      --
      Veteran, Bermuda Triangle Expeditionary Force, 1992-1951
    19. Re:Dammit, the command line is natural by nidarus · · Score: 1

      Comparing the command line to speech/human language is very unaccurate.

      No, the command line could be best described as a mathematical expression. People tend to not notice it mostly because they are distracted by the command line's use of text instead of strange symbols (that mathematical expressions tend to employ), and that text remotely resembles English or other human languages. Remotely, but enough for people to think that this is just another language, just like English, French or Chinese.

      In your example, you are communicating with your friends. The computer is not your friend. Your friends are (I hope) intelligent creatures that actual do most of the job in the conversation. Understanding human speech is a natural and very complex human ability, that, so far, hasn't been matched by computers.

      Not for the lack of trying, of course. You remember the Office Assistant and how useful it was, right? OK, I admit the Microsoft Office Assistant is not the best example of Natural Language Recognition around, but still, we still haven't reached the phase where we can calmly type, say, "free me some disk space", and expect the computer to do it, and to be honest, I don't want us to have this kind of interface.

      Why? Because then we are not really doing something, we are telling the computer to do this. Do you trust your computer to know better? I know I don't.

      Of course, all of this is theoretical stuff, since, as I've mentioned, the relation between the command line and Natural Language Recognition is a very superficial one.

    20. Re:Dammit, the command line is natural by crucini · · Score: 1
      It's about being able to highlight a piece of text, and move it to the point in the document where you want in to be.
      And it's a cute trick on a small scale. When you're trying to highlight 175 pages of a 400 page document and move it to a precise place, you start to miss the precision of more powerful tools.
      I can't even begin to imagine how you'd do that with a command line.
      How about ":120,135d515Gp" ? It really depends what terms you want to use to specify the locations of interest. The GUI assumes that you want to specify based on location on the screen, which may be irrelevant to your real concerns.
      Vi makes it so easy to navigate by searching that I'm rarely concerned with where the cursor is in the document. Direct manipulation does not scale well. I remember trying to highlight all the populated rows in an Excel spreadsheet - I couldn't use the button that highlights the whole spreadsheet, because it would include tons of unused rows at the bottom. It was a miserable task, made worse by a slow PC that couldn't refresh the screen fast enough.
    21. Re:Dammit, the command line is natural by crucini · · Score: 1
      This idea of Mime-types has some merit, but:
      Linux does not determine the type of a file by 'extensions'. Some applications do - I consider this a bug. Of course, Apache uses extensions to generate Mime-types. I guess that's reasonable. But you're free to call a gzipped tarball foo.midi or whatever.
      ... and the name of the program that created it.

      No, please don't do that. It doesn't matter what program created it. What if it's cat or grep? The point is what open standard the file adheres to. Recording the creating program encourages a Microsoft-like world of proprietary formats.
    22. Re:Dammit, the command line is natural by ekidder · · Score: 1

      The critical period for learning language is about age 10. After that, learning a new language becomes progressively more and more difficult. That probably has a lot to do with it, since, in essence, learning the command-line is learning a new language. Children are always interesting toys to play with (heh) because they often don't have any of the habits that adults have and so aren't set in their ways. Interestingly enough, CLI vs GUI is the same thing; often the people arguing for either side are simply set in their ways and not comprehending that both are equally productive. I, for example, can handle file management /much/ easier using something similar to Windows Explorer. The tree view and the icons help me a lot more than 'ls', 'pwd', and the like do. That's just me, though :) I'm still waiting for an NLP shell that would make me weep. I've worked on designing one (and considering porting bash or, more likely, tcsh) but there are some tasks that I am not ninja enough for.
      Anyway, teaching children GUI or CLI doesn't do anything special, since all you're doing is locking them into a paradigm anyway. The True Warrior teaches both and lets the child choose as he or she will. (this, of course, almost lead me to my rant on binarism, but I resist...)

    23. Re:Dammit, the command line is natural by crucini · · Score: 1

      The reason is that Apple gave them free computers to get mindshare.
      But even if the schools had bought Macs, it wouldn't prove that they're easier to use. It would prove that Apple's marketing appeals to educators.

    24. Re:Dammit, the command line is natural by crucini · · Score: 1
      if you need to delete some, but not all subdirs that don't have a common identifier, selecting multiple ones then hitting delete in a gui can be quicker than typing rm foo for a bunch of differnet foos.
      Maybe a little. You can type rm -f foo bar qiz qak ...
      But it's rare for the target files to have no commonality. Typically they're united, if not in filename then in modification time or owner or filetype. That points to find . [ criteria ] -exec rm -f {} \;
    25. Re:Dammit, the command line is natural by crucini · · Score: 1
      I don't know what world you live in, but if you can describe a process quickly and efficiently with *only* words, it's not that complicated of a process.
      I think it's just the reverse - words are the most efficient way of describing things. How about "Issue a blue badge to all the contractors hired after January 5 who report to Gladys or have put in 80 hours." How do you express that in a GUI? All the internet protocols are described in words - see the RFC's. Yes, there's some ascii art in there, but I don't think it's essential.
      If you've ever tried to fix someone's computer over the phone, or played pictionary, it's clear that only having text, or only having pictures, is not sufficient.

      I've helped people over the phone with both M$ and Unix. It's frustrating both ways but it's far worse with M$. At least with Unix the responses are clearcut and the user can read them to you. With M$, it's always "A window popped up and it has icons in it..." I can walk someone through a Unix problem using only logic and memory. To help with M$ I need a M$ computer in front of me, unless the problem is very basic. That's because I can never remember the sequence of stupid dialog boxes that replaces a two second command in Unix.
    26. Re:Dammit, the command line is natural by Shadowlion · · Score: 1

      I want a system that can understand context and ambiguity. I want an NLP shell.

      Which is something you're not going to get for a very long time, if ever, because NLP - at least for the English language - may as well be angels dancing on the head of a pin.

      In the meantime, you're going to have to be pragmatic and settle for something that is even remotely feasible.

      Care to revise your blue-skying downward a little?


      --

    27. Re:Dammit, the command line is natural by ekidder · · Score: 1

      Somewhere.. I have the URL for an extension written in HTML+Javascript+VBscript for Windows Explorer that adds a command line to Explorer and actually opens a window to display the output in. It only uses things built into Windows 2000. It also adds a quick directory creation (type the name in the text box and hit the button) and quick file selection (type the pattern in the box and hit the button). I thought it was one of the coolest things I have ever seen anywhere.

    28. Re:Dammit, the command line is natural by gardenhose · · Score: 3


      OK, you get home around 7 and there's a stack of fruit on the floor. Some are kinda old, moldy, some are green, some are red. You want to throw away the oldest ones, a few of them, but not too many. And definitely all the purple ones.

      So you tell your roommate: "Get rid of all the old fruit and all the purple fruit."

      Type that in to your CLI:

      $ get rid of all the old fruit and all the purple fruit

      It won't work. NLP, sadly, just isn't there yet. We need a GUI for these choose-and-do tasks. It makes sense, honestly. If you can drag a lasso around the old fruit (sorted by date via the sort bar, one click) and then eyeball the purple ones, (click-click-click), that is the most natural way of getting things done Communicate? You're not communicating, you are giving orders.

    29. Re:Dammit, the command line is natural by Trepidity · · Score: 2

      Don't believe me? Sure an automatic is easier to drive, but you lose the ability to downshift in bad weather.

      Actually, you can. Nearly all (all?) automatic transmission cars can be shifted into first or second gear in addition to being put in automatic mode; usually this is used for mountain driving.

      In fact this is a good model of an ideal computer system - for normal driving I tell it "manage the gear shifting yourself" and it happily shifts back and forth between my four gears. I really don't want to deal with this myself, and there's no reason I need to. But when I want to specify that the car stay in second gear, I can do so as well. Computer should be like that - provide additional control but not mandate that you use it.

    30. Re:Dammit, the command line is natural by Bongo · · Score: 1
      When you get home at night, and you MOTAS/roomies ask how your day was, do you
      • A. Draw pictures and icons of how your day went.
      • B. Tell them in words how it went.
      • C. Slam the door, grab the beer, kick the cat, play Quake for the rest of the night
    31. Re:Dammit, the command line is natural by ekidder · · Score: 1

      >>
      In the meantime, you're going to have to be pragmatic and settle for something that is even remotely feasible.

      Care to revise your blue-skying downward a little?
      <<
      Actually... no. If there's no acceptible alternative (and as I work with Explorer-type interfaces far better than, say, bash or tcsh), then I simply won't use it. When an acceptable NLP interface becomes available, then I will be more than happy to use it. Until then, I will stick with what works for me.

      It's a matter of preference and standards :)

      'Course, I would be a major hypocrite if I said I didn't try. I've actually worked on designing such an interface and I quickly contemplated suicide. I guess I'll live for now. At least I have an idea of what to do with my psychology degree. :)

    32. Re:Dammit, the command line is natural by ekidder · · Score: 1

      I use words for things that words are best for and draw pictures for things pictures are best for. Words are /not/ natural for me, images are, and it shows in the way I communicate: lots of gestures and pictures, I draw something in almost every conversation.
      And what makes the command-line so 'natural'? Could it be because that is what you were trained to use? I find it to be very unnatural, especially since current implementations rarely have the capability to do what I want them to do in the words I want to do it. If it was so natural than I should merely have to say 'do this' and it would be done. This, of course, is not a problem with a command-line per se, just the current implementations of it. If a NLP command-line could be easily developed, I'd certainly flock to it for some things. I'd rather tell my computer:
      > copy file_1.txt as file_2.txt, print it, and delete it
      than
      > cp file_1.txt file_2.txt; lpr file_1.txt; rm file_1.txt
      Even better if the implementation could learn new predicates and prepositions. I wouldn't use a command-line for everything either. For me, file management is much better handled with icons and pretty pictures and trees so I can get a nice feel of where things are located in relation to each other and icons are more meaningful to me than filename extensions.

    33. Re:Dammit, the command line is natural by Malcontent · · Score: 1

      Find is pretty damned cool though. Anyhow.
      Sure it's more readable but you have to admit it's more typing.

      print all systems older then 1 day VS
      find -c +1

      --

      War is necrophilia.

    34. Re:Dammit, the command line is natural by ratkins · · Score: 1
      I suspect we are going down the path where we replace alphabets with pictograms because pictures are easier for an illiterate to grasp

      You mean like "mediaglyphs" in The Diamond Age?

      Cheers, Robert.

    35. Re:Dammit, the command line is natural by mvc · · Score: 1

      \rant
      Why do liberal arts people read /.?
      \\


      Because we're computer geeks. At least, that's why this liberal arts person reads Slashdot.

      Some of us even prefer the command line.

      Some of us even ::gasp:: program.

      (I'm probably overreacting... heck, you even used a rant tag... but I just don't see how having broad interests necessarily means that someone's an idiot.)



      --Moss

      This is a .sig.
      Now there are two of them.
      --

      --Moss

      This is a .sig.
      Now there are two of them.
      There are two _____.
    36. Re:Dammit, the command line is natural by Slump · · Score: 1

      When your friends ask you how your day was, do you type your response to them, or do you speak (assuming your friends are in the same room). Actually, most slashdotters probably do type to each other, even in the same room... But to speak more directly to your argument, when you are doing a task that is analogous to, say, putting together a word processing document, how do you do it? Lets say, you are rearranging the furniture in the living room. Which might be easier, saying "move the mauve sofa 3 feet from the south wall and 2 feet from the east wall. Place the couch facing north, with a 30 degree angle from the east wall," or "Put that {point} there {point} and aim it towards there {point}. So, the command line is not the most natural way to interact with a computer for all cases. In fact, in most cases, it is not the most natural way to do it. A GUI is not the most natural way to interact with a computer either, but it is very useful for certain tasks as well. There is a school of design that says that human-user interface processes should be modeled after real-world processes. From this stems the desktop, the trashcan, folders, etc. This is a valid design process, but bad designers sometimes take this too far (such as the Apple Quicktime player interface - what the hell is a rotary control doing on software?) The command line might be the most natural interface for you, and specifically for the tasks that you do, but it would be interesting to see you create an illustration with a CLI. Interface design is about modeling the task process, and developing an interface that best facilitates that process. I personally belive that the evolution of human-computer interfaces will produce game interfaces - all tasks will be accomplished through play. This is the most natural and rewarding process I can imagine.

    37. Re:Dammit, the command line is natural by jaf · · Score: 4

      Your roommate understands english, a highly irregular and ambigous language.
      You computer understands a different language.

      find . -atime +7 -exec rm {} \; rm *purple*

      it takes maybe about 5-10 years to learn how to speak english fluently. Shell scripting or even C/C++ is not that difficult.

      Don't fight the command line. It is your friend.

      --
      -- jaf
    38. Re:Dammit, the command line is natural by eXtro · · Score: 5
      The command line is the least natural way to communicate, though that doesn't mean its always the least efficient. When you get home at night, and you MOTAS/roomies ask how your day was, do you
      A. Draw pictures and icons of how your day went. B. Tell them in words how it went.

      You tell them in words, but this is completely different than interacting with a device. Many of the words you use are iconic as well, i.e. figures of speech or metaphors. Consider that Lanier "pisses you off", its a metaphoric way of saying that his point of view is incompatible with yours. We understand what you mean even though "pisses you off" doesn't translate directly to "point of view is incompatible with mine". Body language can be purely non-verbal yet every bit as expressive as verbal communication.

      Consider an interface to a common device, a home entertainment system. It's almost purely iconic in nature. You press the on button on your remote control, which may be labelled as "ON" or with "1/0" or just green. This is an icon that is seperating you from the real physical hardware and masking the complexity from you. You don't think in terms of "I'll insert a conductor into the circuit, thus completing it and allowing the flow of electrons". You think "I'm going to turn on the television". The interface to your VCR or DVD player is the same. There's a little triangle pointing to the right, you know that it means play, it doesn't say play and you don't command the player to "spin up the motor, focus the laser and detector assembly for optimal signal/noise ratio and start reading", you push the play button.

      For most people this is how computers should be. They're tools, incredibly complex tools, but the complexity should be hidden behind simple metaphors. It isn't most peoples business to know about how computers do things, only that they do it. Programmers need to know the how, and they have languages that allow them to control it via a command line environment. Of course PERL, C++ and CSH are all metaphors. In reality you're controlling the flow of electrons through some 10's of millions of transistors. Oh, wait, the transistor is a metaphor too. If you want to be really accurate you're controlling the doping of semiconductors. But wait, there's more, thats a metaphore too, on the atomic level you're... Wash, rinse, repeat. The complexity never ends.

    39. Re:Dammit, the command line is natural by boltar · · Score: 1

      Can't the moderators remove this juvenile crap? Its neither funny nor even very offensive , just pretty damn pathetic.

  133. Re:Open Source is making it worse by Black+Parrot · · Score: 2

    > I think we just need to realize that 100 amateur programmers writing and reviewing code, ad-hoc, is not necessarily better than 10 professional software engineers working closely together, using some semi-formal procedure for specification, requirements, collaberation, and coding.

    Agreed. But how many of the COTS products loaded onto the average workstation were developed with that degree of professionalism?

    --

    --
    Sheesh, evil *and* a jerk. -- Jade
  134. New Divisions/Names for Software by rho · · Score: 2

    Niggly Software
    TCP/IP specs, BIND, ipfilter

    Jiggly Software
    xv,mpeg_play (for viewing pr0n)

    Stupid Software
    VB, Perl (oh, how the flames roll in...:)

    Sexy Software
    AI^H^H CD-ROM^H^H^H^H^H^H Web Brows^H^H^H^H^H^H^H^H^H B2C^H^H^H B2B^H^H^H P2P^H^H^H uhh... Gnutella?

    Pain in the Ass Software
    office integration suites

    Soul-sucking, Time-stealing, My-project-will-be-three-months-late Software
    Everquest, Quake, Half-Life, Tetris, xboing

    Brain-bangingly Tiresome Software
    Oracle

    Vapor Software
    a real GUI for Unix, a command line for Macs, a crash-resistant Windows

    --
    Potato chips are a by-yourself food.
  135. Software vs. Computer changes by cluening · · Score: 1

    Every once and a while I hear/read somebody saying "Unix is 30 years old! Why would anybody want to use something who's design is so old?!" Well, computers themselves havn't really changed all that much in those 30 years either... They still rely on a central CPU with some memory banks, some secondary storage, etc. - just like they did when Unix was created. Of course, they've changed size and shape and general usage, but the computers themselves are still generally the same. So, what's wrong with using an OS that has stayed the same with them?

    --
    Posted from the wireless couch.
  136. If only project management was an honourable art.. by israfil_kamana · · Score: 5

    In my experience, there are only human impediments to successfully creating healthy software. Technologies are sufficiently developed in most languages that most software can be written fairly efficiently using a wealth of frameworks and libraries. So why does software suck?

    Combine time-pressures, market pressures, upper-management pressures, and a lack of training and professional standards, and you have a whole class of employee (the project manager) who has only incentives to lie and hedge, and no incentive to be honest about schedule, feature set, state-of-the-project, internal project problems, etc.

    Assume a project of 15 people, with a 3 million dollar budget, and a project manager leading four teams. That's pretty complex stuff to manage. Now what if it's business critical, and he's getting letters from board-members and C*O staff imparting the import of the project unto him from on high. Can you say pressure cooker?

    Now consider that three developers are fighting, and every teaser this manager has sent up the chain about problems has resulted in a standard "we expect you to solve this on time and on budget" no-help answer.

    Now imagine that some contractor or 3rd party vendor that the architect and project manager had made noises about to upper management lied about their capabilities.

    Now imagine that his buddy frank was fired three months ago after a fiasco project in their other business line.

    Now imagine that he's not vested, but will be vested by the last month of the project.

    Now imagine why this person would ever ever ever say there's a slight problem with the project until it's almost over. Or worse, he'll "two week" the project for months over time, over budget, and they'll release buggy, crappy, untested code to the customer in a beta which amounts to an alpha, expecting the customer to catch and report all the bugs.

    It's no life at all, and certainly no way to get quality software, but it's a scenario I have seen repeatedly over the last few years.

    --
    i - This sig provided by /dev/random and an infinite number of monkeys at keyboards.
  137. Re:good article by Soruk · · Score: 1

    Software sucks? I've yet to find a driver for my Dyson bagless vacuum cleaner...

    --
    -- Soruk
  138. Re:Open Source is making it worse by Fourthstring · · Score: 1

    Intelligence is the bottleneck, not age. Anyone can sit down and read Design Patterns, but the temperament must be there.

  139. Re:Of course we can do both... by ThePolack · · Score: 1

    You're exactly right. We can do both. We can do more than two. We can be as multi-discipline as we damn well please. I am. You are. A lot of people here are.

    But there is still a problem.

    Most people here will not willingly admit that software design is made up of multiple disciplines. Just because you can make a good web-based app does not mean you can make a good Windows-based app (or vice versa). Just because you're a great kernel hacker doesn't mean you are necesarily a great graphics programmer.

    You can be both and more. But software design is not a single discipline. Some people are not good at everything. Some people specialize. And some people should. We should recognize that there are multiple disciplines within the field of software design. That doesn't mean that you and I can't still be multi-disciplinary designers, but treating them as different disciplines could lead us to a better understanding of what we are doing in each of those different disciplines and in software design as a whole.

  140. I agree with it all... by rebelcool · · Score: 2

    Particularly the specialization things. Software is too complex and complicated today to learn all of it. While you may be able to learn many fields, none of them well. Specialization will result in higher quality products I think. Another problem is time and deadlines. The industry is moving faster than us developers can keep up with. Resulting in shoddy, untested software. At some point though, it's going to slow down.

    --

    -

  141. Re:Software's not that different by BeBoxer · · Score: 2

    Actually, most of these questions apply to the design of everything in the world. If I'm building a bridge, a car, a building, a plane, a chair, an adhesive, anything at all, these questions apply. So, by your logic, all design tasks should be subsumed under a single profession: engineering. This whole idea of having "Chemical Engineering" and "Software Engineering" and "Civil Engineering" and "Structural Engineering" just has a poor effect on the base strategies that all engineering tasks share. Right?

  142. Software's not that different by fhwang · · Score: 5
    One of Lanier's points is that he thinks software should be fragmented in practice, since it's currently used in so many ways. To quote:

    The software that runs your pacemaker is not even considered for a moment to be the same sort of entity as the software that you use to write music. ... If your interpretation of software is that it's like a bridge [and] people need to know what they're driving on, then yes, a little peer review could help. If you think of software as literature, if you're somebody like Ted Nelson, say, then what you really want is groups of people who are emboldened to try wild things.

    I have a lot of respect for Lanier, and I particularly thought One Half a Manifesto was a useful and badly needed bit of skepticism against what he terms "cybernetic totalism". But I think he's off on this point.

    To be sure, different parts of software have different needs. If you're designed space shuttle guidance software, go ahead and engineer for five nines (99.999% uptime). A script that pages you when you get an e-mail from your girlfriend is probably a lot less mission-critical.

    But there are certain questions that are useful to the software engineering process, regardless of what code you're writing. To think of a few, off the top of my head:

    • Who are the users? What are their needs?
    • How quickly are the needs likely to change in the future?
    • How long should the software stay out of obsolescence?
    • How reliable should the software be?
    • How can you decrease the amount of repetitive work that humans have to do?

    Every successful software project needs to ask these questions, preferably sooner than later. Fragmenting software engineering would have a very poor effect on the development of these base strategies, so hopefully it'll never happen.

    1. Re:Software's not that different by KilobyteKnight · · Score: 1

      BTW, your last question is not really a matter of engineering, software or otherwise. How does a pacemaker "decrease the amount of repetitive work that humans have to do"?



      5 Ways Pacemakers Decrease Repetitive Work:


      5. Heart attacks occur less frequently
      4. Doctor orders you to take it easy
      3. All that heart beating can wear a person down
      2. Less CPR
      1. Heart massages limited to the weekends


      --
      When will Windows be ready for the desktop?
    2. Re:Software's not that different by Maserati · · Score: 1

      I'd have to say that the girlfriend page script is critical to my mission.

      --
      Veteran, Bermuda Triangle Expeditionary Force, 1992-1951
    3. Re:Software's not that different by cburley · · Score: 1
      How does a pacemaker "decrease the amount of repetitive work that humans have to do"?

      The modern pacemaker makes all sorts of dynamic adjustments based on sensory input. Just as modern automobile engines make adjustments to fuel/air mixtures and such based on sensors, whereas the earlier generations had to be adjusted by hand during tuneups or unusual situations (such as weather changes), the previous generation of pacemakers required frequent visits to a qualified physician to make adjustments to the various settings in it.

      And before that generation, circa the '50s, pacemakers had to be serviced frequently even if the operating conditions of the patient hadn't changed, because the tubes in their circuitry had to be frequently checked and replaced as they approached failure.

      Before that -- during the electro-mechanical-pacemaker generation -- small punch cards had to be nearly constantly fed into the pacemaker's "control center" to trigger the various stimulations, since the cards degraded rapidly.

      And before that, the wife (or a friend) had to constantly turn the dang crank to keep it running, and turn it at just the right speed to accommodate the current level of exertion and other physiological factors.

      You see, modern pacemakers are the ultimate "embedded" device!

      --
      Practice random senselessness and act kind of beautiful.
    4. Re:Software's not that different by Capt.+DrunkenBum · · Score: 1
      We're computer programmers! We don't have girlfriends!

      I do.. But then I am not just a programmer.. I am a god like super entity. :)

      --

      Not everyone deserves a 320i

    5. Re:Software's not that different by vslashg · · Score: 2
      A script that pages you when you get an e-mail from your girlfriend is probably a lot less mission-critical.

      We're computer programmers! We don't have girlfriends!

  143. Re: Yeah, why is the Linux kernel compressed? by Chris+Pimlott · · Score: 1

    It would be More work and much slower to have two parts of the kernel, one a kerel to boot and be small, Yet still know how to read a disk, operate on all known disk io cards, be able to talk to all types of harddrives, and speak a few filesystem formats, just so that it can read a silly 1mb kernel off of the disk someplace whos job its suppost to be to do all of that anyway.

    That's what grub does, it knows filesystems (including reisersfs), will read off partitions > 8M and supports network booting. And it's not slow at all.

  144. Re:Open Source is making it worse by 0xdeadbeef · · Score: 2

    And how many of those projects really matter? Do you know how large the software industry is? Do you realize how many commercial products and in-house systems there are that don't follow good development and testing guidelines?

    There are two ways you get quality in software: have developers who feel proud about their work and put as much quality in it as time allows, and have developers who are paid to put quality in their software it by management who has enough sense to think beyond a single quarter's expenses.

    Right now, the former is a superset of the latter and is probably ten times the size, if not more. In open source projects, the lack of money means everything is by the former, so you end up with really high quality stuff, like Linux and Apache, or crufty stuff that pays a lot of attention to testing, like gcc, perl, and XFree86. It makes perfect sense, since you gotta love what you're doing to work on something for free, or at least, for a fraction of what you could make as a hired gun.

    Sure, you also have all the dreck on freshmeat. But since no one was paid to write the dreck, there really is no loss. Most of us are not under the illusion that a weekend project is comparible to production-quality software. Besides, the yung'uns have to start somewhere.

    --
    Bush's assertion: there ought to be limits to freedom

  145. Re:If only project management was an honourable ar by lizrd · · Score: 2

    Yeah, it'll be great when users are exposed to quality stable Linux projects like Netscape. From an end user's perspective, there's no real difference between the operating system being taken out by an application and the X session being taken out by an application. If you're lucky you have another computer in the room so that you can telnet to the locked box and kill X. Otherwise, you have little recourse besides the reset switch when the mouse and keyboard don't respond anymore. Either way you lose any unsaved work in open applications, just like in a Windows crash. When running Linux instead of windows however you run the risk of doing quite a bit of damage to the file system during a reset.
    _____________

    --
    I don't want free as in beer. I just want free beer.
  146. Re:XP isn't used by many shops by Maserati · · Score: 1

    Not in my experience. Extreme programming is really just a formalized two-person collaboration. If the two programmers want to type different things, then they should probably be at a whiteboard sorting things out.

    --
    Veteran, Bermuda Triangle Expeditionary Force, 1992-1951
  147. Here's a reason why software sucks by beddess · · Score: 1

    The requirements for a project don't necessarily stay the same throughout the course of a project. You could be halfway done and all of a sudden be told that you need to add new features or support whatever random thing a client just thought up. Despite the fact that this doesn't fit in at all with the rest of the design. And so the new features or whatever get crammed in.

    --
    "Weasling out of work is important to learn; it is what separates humans from animals. Except for weasels."
  148. Ass backwards! by solios · · Score: 1

    Yes, it's a lot easier to communicate with your voice than to carry around a dry erase board and play win, lose or draw with whomever it is that you intend to communicate with. You seem to think that extending this to computers is natural, which is far from the truth.

    Take a person who has never used a computer (one of the three out there) and plant him in front of a bash. Watch him get frustrated at the command prompt, unable to figure out what to do. Sure, he can type, but HOW IN THE HELL can you expect a complete novice to know enough to type "man bash" ?!

    The GUI makes commicating through a computer a lot easier- plunk anyone down in front of one and watch them diddle with the mouse and click on things, pleased at the results. With a GUI you have immediate results- you can keep multiple applications open and visible, mulitple things within your view at any given time- like you would keep the threads of a conversation in your head for future input when your turn comes around.

    We talk because it's easy and natural. Unless you're a complete UNIX nut, you're using a GUI, because it's faster to relate your ideas through methods that are easier to figure out. This is why the multilingual lapse into their first language when they're really pissed off- it's the default setting for a Russian to curse in Russian, though they may be in an English speaking situation (and Russian profanity is SO much more flexible, anyway...)

    Whatever you were taught first is going to work better and faster- applying interpersonal interaction to computer interaction simply cannot be done given the state of present interfacing technologies.

  149. Quick Assumptions by Ween · · Score: 1

    When I read this article, I get the feeling he hasn't really ever _used_ linux any more than that guy you know on IRC that installed Redhat once and is now a "Linux User" and a "Hacker". He talks like someone who has merely read a few buzzword articles and now has the holy grail of knowledge on terms like "Open Source", "Bazaar", and "Command Line".

    Also worth noting was his comment: "It's almost an orthogonal question," he says. "I think you could have open source movements that, through a peer review system, adhere to the strictest, most anal-retentive quality control program as well as open source projects that function in a perpetual state of redesign. Both are entirely doable."
    I guess he's never heard of [favorite version]BSD.

    Oh well, I guess its time for me to write an article on Quantum Physics... I have afterall read a few Slashdot comments about it.


    Tis better to be silent and thought a fool, than to open

    --


    Tis better to be silent and thought a fool, than to open your mouth and remove all doubt --Abraham Lincoln
  150. Re:The answer is simple... by AstroJetson · · Score: 1

    That's a very good point. And I wasn't really trying to shift the blame to the S & M folks, just pointing out that they are often the drivers for new features for no other reason than dick-waving rights.

    What I'd like to see is for them to think in terms of problems that the customers are having and let the software designers try to find a way to solve those problems. Instead they tend to think of things in terms of a list of features and if our gizmo is lacking in one, it must be added regardless of how useful it is.

    But point well taken, and thanks for your response.

    --
    Admit nothing, deny everything and make counter-accusations.
  151. Why my code sucks by Shoeboy · · Score: 3

    When I was 12, I found a box containing a bunch of old issues of Hustler in a lot behing the local 7-11.
    I began to feel sensations I'd never felt before.
    Being a scientifically minded young fellow, I immediately ran home and examined one of the low angle money shots through my microscope.
    That's when I made the horiffying discovery that women are composed of red, yellow and blue dots.
    I've been trying to live with the implications of that discovery for years now, and I haven't been able to care much about code quality.
    --Shoeboy

    1. Re:Why my code sucks by fibonacci8 · · Score: 1

      What magazine prints red,yellow, and blue? Coulda sworn color print for magazines was typically CMYK...

      --
      Inheritance is the sincerest form of nepotism.
    2. Re:Why my code sucks by fibonacci8 · · Score: 1

      That's true, but you'll still find that magazines are printed with four dots, shoeboy would have to be either joking (yes I know he is =P ) or intentionally missing the fourth dot in the rosettes. Being that this is supposed to have happened a while ago, it kinda rules out Pantone coloring of the afore-mentioned magazine. (I'm pretty sure Pantone process color is fairly new, could be wrong though, must go look that up)

      --
      Inheritance is the sincerest form of nepotism.
    3. Re:Why my code sucks by Pope · · Score: 1

      Thank goodness all by design is done in RGB! Imagine the trauma I've just been spared!

      Pope

      Freedom is Slavery! Ignorance is Strength! Monopolies offer Choice!

      --
      It doesn't mean much now, it's built for the future.
  152. Slow hard drives are part of it by yerricde · · Score: 2

    but why is the Linux kernel compressed? Wouldn't that make the loading process longer because it must be uncompressed?

    Rotating storage is slow. Executable compression products such as free UPX take advantage of the fact that loading a compressed file and unzipping it on a modern CPU-memory system is often faster than loading the same file, uncompressed, from rotating storage media such as hard drives or {C|DV}D-ROM drives.

    Also, I wish that Linux could have a much smaller text editor. Windows Notepad is only 34KB in Windows 95

    You could:
    • Use pico. It's said to be much easier to learn than vim and still much more powerful than Notepad, especially taking into account all the DLLs that Notepad loads.
    • Keep an Emacs session running in the background (C-z). Parts of Emacs will be swapped in as necessary.
    • Use one of the hundreds of text editors available on OSDN Freshmeat.

    Tetris on drugs, NES music, and GNOME vs. KDE Bingo.
    --
    Will I retire or break 10K?
  153. The answer is simple... by FortKnox · · Score: 2

    ... and it is Testing! Instead of making deadlines and release dates right before testing, they should be made 15/16th the way through testing. Software is not -nearly- tested well enough. Any QA department will tell you they are always strapped for time. Testing should last longer than the development of the software. Software companies should test like there is no possibility for a patch.

    --

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    1. Re:The answer is simple... by aap · · Score: 1

      When you demand more and more features from your product, it becomes exponentially more difficult to test every possible sequence of commands. Testing is important, but it's not the answer.

    2. Re:The answer is simple... by AFCArchvile · · Score: 1

      Add my sig to what's wrong with the software industry:

      --
      "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  154. Change behavior by changing the reward system by cscalfani · · Score: 5
    If you want to change the quality of software, you must first determine why the quality is so bad. Economics is the biggest reason for quality being poor. The reward system in place is one that rewards the company who grabs the biggest market share. Once a product has a stronghold on the marketplace, it is extremely difficult to replace it. Software becomes a de facto standard, e.g. Microsoft WORD.

    So how does a company grab the biggest slice of the marketplace pie? They do so by getting to market first. How do they get to market first? By cutting every possible corner imaginable to meet a ridiculous deadline and releasing a product of poor quality.

    All other reward systems stem from this one. Imagine the case where a company has two programmers. The first hacks a bunch of code together and makes the ridiculously short deadline. The second programmer misses the deadline but produces a much more stable product. Now once the first programmers code starts to fail, the first programmer has to "save" the company by providing short-term quick fixes to the code, reducing the quality of the code further. Management views this individual as a key individual; key because they can't operate without him. The second individual is hardly noticed, except for delivering late, which is considered aberrant behavior.

    So imagine the case where both of these programmers are leaving the company. Which individual do you think the company is going to bend over backwards to keep?

    Economics, being the ultimate reward system for business, dictates that software development will never be able to do what hardware engineers have been doing for years, create micro-components. In hardware, you can create an AND gate and package many of these gates into a chip. This chip can be mass-produced and sold at a reasonable price. Every time a circuit is produced with this part, the manufacture make a little money for each part purchased.

    In software, we can't make a simple component and standardize on it. If we created a component, e.g. a component that compares two dates to see if something has expired, and tried to sell it, what would people pay for it? Maybe a dollar. Most people would look at this component as so simple, they'd rather develop their own. But even if they did buy it, they can make millions of copies of this component with no additional cost. It would be the analogy of instead of buying an AND gate for 50 cents, you bought the AND gate factory for 50 cents. The hardware industry would have gone out of business years ago under such a system.

    Software suffers from the economics constraints more than language problems, management issues, bad programmers, etc. Anyone can buy book after book on proper techniques for managing a team of developers using a myriad of development processes. The reason we see management pay only lip service to process is because the reward system for businesses doesn't reward quality or standards.

    This is the real problem to solve (if there is a solution). Would companies pay royalties for components that were used in their products? Highly unlikely. Will people stop paying for new software because it is too buggy? Maybe, but it is usually better to use buggy software than no software at all.

    After almost 20 years, I have given up on the software industry. As soon as I can get out, I will. The better you get in software design and development, the harder it is to operate in this environment. I don't blame companies for operating the way they do. They are rewarded for doing so.

    So if you want to change behavior then change the reward system. Good luck.

  155. Suckiness Hasn't d()/dx the Software Market by 4of12 · · Score: 1
    (Apologies for the geeky differentiator - English description did not fit in the short /. title.)

    The reason software still sucks, by in large, has been the lack of market competition in this arena. If users could choose between A and B versions of software based on how much less they sucked than the other, then we'd see less suckiness.

    Unfortunately, there haven't been enough viable alternatives in the software market. These days, software marketers are pretty much hosed unless they support Win32 because that's what runs on My PC ®. The Mac flash in the pan is effectively gone, and Linux desktop use can no more overcome the inertia of the installed base any more than WinME or Whistler will. There, suckiness has been measured practically by how many problems are encountered installing and using the latest software on a hoary old Win95 box. Backward compatibility is the paramount measure of suckiness. That immediately shows how important standards are in this business.

    There is a desperate need for a slowly growing pyramid of standardization, with just a fringe of featuritis that gets encompassed by a growing set of standards. And, if any company locks up the standards and charges a toll to create barriers to market entry, then we can't get the best level of competition based on suckiness, any more than you can get competition in your local electric or phone provider. The higher levels of the pyramid cannot be built best on opaque stones that turn out to have insuffcient strength for an unforeseen future application.

    IMHO, the real revolution in less sucky software won't arrive until higher level software components become standardized and free, from the lowest to the penultimate level.

    --
    "Provided by the management for your protection."
  156. Of course we can do both... by maroberts · · Score: 2

    ...speaking as someone who supplied some patches to DeCSS, and writes telecoms network management software for money, I see little reason why people cannot be multi-disciplinary. Very few people nowadays are expert in all fields of software, and no one pretends to be, but we can be masters of many areas rather than just one.

    His comments about Linux and Unixes were also off point - he fails to realise that the command line environment is an extremely efficient one for an experienced operator. Point and click environments are great for newbies, but I've yet to meet one that increases productivity for an operator who knows his onions. I do use GUIs and they're great when I'm not too familiar with what I'm doing, but when I know the area inside out its Shell Time.

    I came away from this article feeling he just wanted to be inflammatory; if he'd posted this as a Slashdot comment he would've got so many (-1 Troll/Flamebait) mod points that his karma wouldn't have recovered till the fourth millenium!

    --

    Donte Alistair Anderson Roberts - hi son!
    Karma: Chameleon

  157. Re:If only project management was an honourable ar by rkent · · Score: 2
    So why does software suck?

    Because these same pressures...

    Combine time-pressures, market pressures, upper-management pressures, and a lack of training and professional standards, and you have a whole class of employee (the project manager) who has only incentives to lie and hedge, and no incentive to be honest about schedule, feature set, state-of-the-project, internal project problems, etc.

    ... also apply to the people who write those "sufficiently developed" "wealth of frameworks and libraries." I resent people who say that the tools are good but the work we do with them is shoddy. The tools are merely another level of software which, unfortunately, often has all of the same problems as end-user apps.

    Take the apple WebObjects framework, for example. More specifically, the EnterpriseObject backend. Basically this has to do with an OO interface to database transactions; neat stuff. So why was my application crashing every couple of days after eating all the machine's available memory? Because there was an outstanding issue in the framework which failed to deallocate internal database objects. My app crashed and it wasn't my fault, and I'm still trying to find a workaround.

  158. crapy coding by photozz · · Score: 2

    "How I hated Unix back in the '70s -- that devilish accumulator of data trash, obscurer of function, enemy of the user,"

    Think he's a little angry? I agree that most software production sucks. always has, and the future isn't looking too bright either. I'ts all because it's writen by people, not machines. People make mistakes. I can't remember the last time I was able to install a program without having to screw around with it in some way. between crashing, unreliability and the anoying habbit of breaking other software on my systems, I usualy spend more time fixing problems with these packages than actualy using them.

    --


    Dirty Pirate Hooker
  159. Pessimistic future... by Skuggan · · Score: 1

    He really doesn't know anything about what is good software.

    If he had lived in the Soviet-union he would have been proclaimed as a good thinker. Keep it closed and locked up so nobody can see the errors underneath...

    --
    http://www.millnet.se/ GO/U d- s+:+ a C++ UL++++ P- L+++ E W+++ N+ w++ M-- PE+ t+ X++
  160. Language is unnatural too. by Convergence · · Score: 2

    When user interfaces are designed, which is the better design? The simple pictoral design? (Like thos books for kindergardners), or a powerful and complicated design?

    In evolutionary terms, it's the simple design, because it's easier to learn. Unfortunately, this is a flaw, it will forever hobble us from creating the most powerful design.

    Do not forget, most people in western civilization have to master an incredibly complicated, unnatural, non-intutive task. This task is INCREDIBLY difficult. Most people spend 10 years mastering literacy.

    We force our kids to master a complicated and un-intuitive interface because simpler interface don't offer the power, and flexibility.

    I like powerful tools for powerful and difficult tasks. Pictures can express instructions or handle simple tasks, but only words can express abstract relationships. Without words, there can be no mathematics, no algebra, because pictures cannot express the concept of a 'variable'.

    If you know of UI research that gets around this, I'd love to hear it. Please give me a counterexample. :)

  161. If only it were that simple. by itarget · · Score: 1

    The fact of the matter is that the programmers USUALLY have little say in management decisions. You better believe they almost always DO offer better solutions and explanations. They can form arguments until they're blue in the face but more often than not it gets them:
    1. blamed for wasting time
    2. on bad terms with management
    3. fired

    Marketing departments like yours only happen in very small, tight-knit companies or by luck.
    ---
    Where can the word be found, where can the word resound? Not here, there is not enough silence.

    --

    "Where shall the word be found, where will the word resound? Not here, there is not enough silence." -T.S. Eliot
  162. Re:Why does it suck? by Petrophile · · Score: 1

    Thanks for bashing on the VR Hippies. Anyone remember "Mondo 2000" from about 1992?

    M2000: So, Todd Rundgren, you like smoking dope and posting on Usenet. What do you think of VR?

    TR: Way cool dude!

    M2000: Yes, VR and Cybersex is the future, thanks for that insight Todd. Too bad all the software sucks right now.

  163. Tired old... assember isn't OO argument. by ka9dgx · · Score: 2
    Sure, you could make your own engine, using a lathe, scraps of steel you have laying around, etc... but you don't. Why not? It's simple... you want uniform, standard, tested designs.

    It's true that machine language code is non-object oriented, but that's not the issue here. The main objective is to build software components that have known behavior in all circumstances. It's not practical to do that with procedure oriented programming. There is ALWAYS some side-effect in a non-trivial program which leads to bugs.

    Implementing interfaces with known boundaries using the object paradigm is a rugged, well known way to isolate the effects of a software defect to a single section of code. With procedures and functions free to grab at all the available variables, any line of code can take out the whole works.

    It's like using Grade-8 hardware instead of whatever happens to be in the bin at a hardware store. You get a high-strength, durable, part with guaranteed specifications. While it wastes some CPU cycles, it's an acceptable tradeoff for 100% reliablity.

    --Mike--

  164. Look at it from this perspective... by kstumpf · · Score: 1

    In many cases, software isn't made by programmers, its made by a company. Despite the engineers' wishes and goals, there are other departments in a corporation that have influence over the software's development. Marketing might want feature X by release because its needed for a campaign. Sales wants feature Y because a potential client is requesting it. An executive wants feature Z because... well because he's on a power trip and thinks he knows better than you. Even if features X, Y, and Z are ridiculous features that will reduce the quality of your product in some way, you have to do what the company wants. Quality is certainly not what its necessarily about in the business world. Alot of executives will flat-out tell you this. In part, this guy isn't complaining about crappy software, he's complaining about products developed in Corporate America -- a market heavily dependant on image and tricks. Re: "free software", well... where's the incentive for quality? If I'm making a program in my free time in my basement, I'll make it as good or bad as I want. There's alot of possible scenarios here, of course. I won't elaborate. As for his comments about the commandline... show me an admin who can setup an IIS server faster than I can setup Apache and we'll talk.

  165. what is CMYK? by RelliK · · Score: 1

    see subject
    ___

    --
    ___
    If you think big enough, you'll never have to do it.
  166. use vim :-) by StandardDeviant · · Score: 2

    Vim is an _awesome_ vi derivative. Syntax highlighting and a million other cool features blended into a very smooth programming and editing environment. It's pretty small too (~1.8Mb stripped) given all the things it can do. The syntax is pretty easy, in practice (with recent vim versions) all I need is ESC to get to command mode, and i to go into insert (i.e. edit) mode. in command mode :w writes out the file, :q quits, and :wq writes and quits. That's, what, 5 commands? I bet notepad has more menu options than that... :-)

    The first thing I do on a new system is install vim and symlink vi to it. The second is usually transitioning to qmail.


    --

  167. Re:Ada was a babe by glebite · · Score: 1

    Good point.

    --
    I donate all spillover Karma to the charity of my choice... Ada was still a babe despite what people may say...
  168. Re:File attributes / mime types by Raven667 · · Score: 2

    KDE2 actually does this, if it can't determine the filetype from the name it runs file(1) on it to determine what the proper MIME type should be. I believe that this information should be stored with the file meta-data, it would seem to be too much of a performance penalty to scan the file every time it is accessed. The MIME type could be determined when the file is created and whenever the file is closed after writing.

    Just my $0.02

    --
    -- Remember: Wherever you go, there you are!
  169. Brilliant but Confused by crucini · · Score: 2

    I read the linked article as well as Lanier's very long essay in Wired.
    Lanier proposes that someone who writes software for a pacemaker be prohibited from writing software for music composition. He compares such mixing to a brain surgeon running a tattoo parlor on the side. I disagree with this idea. I think the mixed backgrounds of programmers provide valuable cross-fertilization.
    The focus of the Wired essay was Lanier's disagreement with 'futurists' who predict techno-utopias or dystopias. He points out correctly that software is far too primitive to power the dreams or nightmares of these writers.
    One thing I found irritating in the Wired article is that Lanier is clearly a Windows user and ascribes many of Microsoft's shortcomings to some deep-rooted problem in software development, when they're actually just caprices of the gnomes in Redmond. If you read the essay, you'll see what I mean.
    Also, he calls Unix 'that devilish accumulator of data trash'. Jaron, maybe you need to take a look at the man pages for crontab, find and rm.

  170. Re:If only project management was an honourable ar by rkent · · Score: 1

    um... why not hit Ctrl-Alt-backspace and kill your X server yourself? Then you're dropped back to the xdm prompt to login again (right?). Granted, you still lose all the work in progress, but it seems safer than blithely hitting reset.

  171. Free exchange of ideas by Peter+Dyck · · Score: 1
    anyone ever notice how on /. everyone comments on things they have no base in

    So?

    Isn't that exactly why this kind of forums exist? To facilitate the free exchange of information and opinions where it's OK to be wrong. I don't know about you but I read Slashdot to relax and get a few laughs, not to follow serious job related discussions.

    One of the most irritating personal characteristics in engineers (and other highly trained professionals) is the you-don't-know-shit-so-shut-the-fuck-up attitude. Not having a PhD or any other degree in subject X doesn't mean you can't talk about X on general level.

    If you feel offended by the inaccurate postings of someone, just correct him/her politely -- if you like.

  172. Re:If only project management was an honourable ar by Owen+Lynn · · Score: 1

    I think there are more bugs in closed source projects, but they never get publicized. Only the most egregious ones are publicized and fixed, and the customer learns to live with the rest. Have you ever tried to get a company to fix a reproducible bug in their code? It's like pulling teeth. And the non-reproducible ones? Ha ha ha ha ha!

    There's been a wealth of knowledge gathered over the years on how to write high quality software. _Writing Solid Code_ and _Code Complete_ are two standard texts that come to mind. This is not a technical problem. It's an organizational problem. I think we're reaching the limits of what the corporate structure will allow us to do, and writing truly good software lies beyond that boundary. Open source represents the first steps beyond that corporate limit.

  173. Re:Software does not suck by Stefan · · Score: 1

    Problem is that we don't build software like bridges, unfortunately. If you make a dent in one pillar on a bridge, it won't collapse. A tiny buffer overrun in software can take the whole thing down. Almost nobody make "defensive" software that is fault tolerant, eg. they don't check if a sort really sorted the elements, and re-sort with a second algorithm if not.

  174. obscurer of function? accumulator of data trash? by holzp · · Score: 1

    is this guy a real computer scientist? or just one of those "bits bits and more bits" quazi-philosophical bullshitters?

  175. Re:MS is a big problem by IA64 · · Score: 1

    my buddy Jake and I are already designing an OS. It's in very early stages (the bullshitting stages) but we figure we WILL make it, and it WILL rock. but probably won't be complete for about 4-5 years

    --
    ________ J. Smith
  176. hmm by drfrog · · Score: 1

    i dont think lanier brought us
    vr but he did bring to us a type of software that still exists today

    he was the one who was able to get a computer program to replicate itself, oh yes, a-life, not just a-intel

    please correct me if im wrong

    --
    back in the day we didnt have no old school
  177. One Half a Manifesto by karmma · · Score: 1

    Here is the Manifesto. Interesting reading.

  178. No no,... by Bake · · Score: 1

    That's exactly the problem, the only thing a BIOS should do is boot the damn thing and that's it! It's the operating system's kernel job to talk to hardware, not the bios'.

  179. Open Source is making it worse by Junks+Jerzey · · Score: 4

    Now, now, now, don't take that as a flame. But what's the average age of a Slashdot reader? 20? What's the average age of a gung-ho Open Source development team? 21? Realistically, you don't have much software engineering experience at that age. Heck, how many Open Source projects have regression test suites? Two?

    I'm not talking about old standbys like Perl and Apache and so on, but most of the other projects that get started by young coders and garner press simply for being "open source" without code quality ever being an issue. I don't want to name names, but examples are plentiful. Having a relatively simple project with 5 megabytes of *compressed* source code should scare anyone off.

    1. Re:Open Source is making it worse by fizban · · Score: 1
      Please, name some examples. It's better for everyone if we get issues like this out in the open. If people can't face up to the criticism, then they won't be able to make progress.

      And if you can't name some examples, then you really can't back up your statement, so it's a moot point. ;-)

      One of the problems with message boards like Slashdot, is that people like to make generalized statements about issues, and we don't get a chance to deal with the specifics. So, please name off some specific projects, so they can improve.

      --

      --

      +1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.

    2. Re:Open Source is making it worse by timmyd · · Score: 1

      I think mozilla has already heard it enough...

    3. Re:Open Source is making it worse by Junks+Jerzey · · Score: 2

      And if you can't name some examples, then you really can't back up your statement, so it's a moot point. ;-)

      A few examples: NASM, Free Pascal, Open Scheme, most window managers (note: WMs are different than desktop environments). gcc is actually pretty horrible inside, but it does have a regression test suite (one of the few).

  180. Everything in UNIX based on command line by Fjord · · Score: 1

    In the article Lanier says

    "I mean, everything in Unix is ultimately based on command line interactions. You can try to overcome that, but it's very hard. Unix's whole philosophy on how to do internal management and how to manage timing is based on that set of assumptions, so you have to fight it at a thousand levels."

    In a lot of ways this is true for all operating systems. In Windows, you can see the command line present when you are associating an action to a file extension. You will 9 times out of 10 be setting up a command line that launches a program on the file. The other 1 time out of 10, it will support DDE or something.

    My feeling is that the command line is a programming language. Often it is handy to use that programming language in a GUI (for example when setting up associations). Because of this, it will always be hard to get entirely away from the command line. Especially when the command line is a large part of our programming languages (ANSI C and Java define main to take parameters from a "command line").

    So I don't see how any one operating system has a more "command line feel" than another.

    Then again, I've never tried to build a virtual reality interface on top of UNIX.

    --
    -no broken link
  181. Object Oriented Magic Bullets??? ;-) by ka9dgx · · Score: 2
    None of the popular OSs out there are truely object oriented, and very few of the development platforms as well. There's no way for the end user of an application to pull back the covers and see all the objects at work, so they could fix it themselves (or at least see the problem).

    Visual C++ is NOT object oriented in a nice way, Delphi is much better, but still not there... Everything is still doing function calls with parameters, dangling pointers all over the place, and the number of layers is going up all the time. It's no wonder that the stuff breaks more often instead of less.

    --Mike--

    1. Re:Object Oriented Magic Bullets??? ;-) by SamBeckett · · Score: 1

      None of the OSs out there are object oriented. It's too slow right now.

      And Visual C++ is just an IDE, man.. It's not the product that fscked it up, it's the language itself.

      Delphi on the other hand...

  182. Code will catch up.... by sdprenzl · · Score: 2

    No matter how refined computers become, no matter how many orders of magnitude of AI we pile on top of each other, no matter how elegant and compact and all-encompassing thing become, there will always be a need for someone who understands the underlying components. Somebody will have to know what is inside of the black box. There will always be McGiver situations where a more elemental understanding of the technology is necessary.

    Obviously, components are the first step, more Lego-ing and less handcrafting of software. But I disagree with anyone who thinks hardware is way out in front of software. If hardware speed were indeed so far out in front, then games would be written in VB or Java or Python or Smalltalk or Modula-2. As it stands today, we're still facing a large performance gradient. Make the gradient go away, i.e., make it so that bulky, overhead-intensive-but-elegant languages fly just as well as tight, super-optimized C or Assembly, relatively speaking, and then you can talk about hardware's arrival.

    I believe GNU/Linux is successful mainly due to politics, but partly due to "technological honesty". Sure, the overall user/developer experience of the Unixae is more primitive than, say, Microsoft Windowses, but what sort of progress has MS really brought? Phony, glitzy bells and whistles is not necessarily progress. Besides COM, MS really hasn't much to offer in terms of elegance.

    Another aspect of the open source/free revolt is that this is the first time true freedom in the computer world has appeared. Back in the late '70's at my university, if you weren't a 3.5 math major, you didn't get into the CS emphasis, and, hence, you never got your hands on a computer; you were just a peasant. Microsoft Windows changed that with Peztold's tome on Windows 3.1 programming, and now, finally, GNU/Linux has broken the field wide open. We really haven't had much time to flex our muscles yet. The world simply hasn't hit its software development stride yet.

    All in all, a few more years of open/free software and true universal hardware speed will turn things around.

    --
    --- WWSD? What Would Strider Do?
  183. Stupid cars by droleary · · Score: 1

    Just because your car is stupid doesn't mean it must always be so. Wouldn't you prefer a car with a "command line" that you get in and say, "go to work" and be done with it? Work is already quite advanced on the development cars that can drive themselves. So a stupid device and/or a stupid user both benefit from a GUI, where as a smarter device or a smarter user can benefit from a CLI.

    1. Re:Stupid cars by Trepidity · · Score: 2

      The difference between current cars and ones to which you can say "go to work" is not the difference between a CLI and a GUI - it's the difference between advanced AI and a lack thereof. A more appropriate analogy for the difference between a GUI and a CLI is the current GUI model wherein you use pedals and wheels to drive your car, and a CLI model wherein you say things like "speed up to 46 mph, turn left 1.2 degrees, slow down by 3 mph, turn on left blinker, turn left 5.6 degrees, center car again, turn off left blinker" etc. Obviously the GUI model in this case is much simpler, and this makes a good analogy to managing simple computer tasks with a GUI vs. arcane shell commands.

    2. Re:Stupid cars by Malcontent · · Score: 1

      Shell command are not arcane just different. In fact once you learn the language they make perfect sense. Think about the sample he gave? How long would it take accomplish the same task using a gui? Is it even possible? It's so much easier to type a command then to go through page after page of a complex gui interface. This becomes especially important when you have many things to do like import 50 text files into a database for example. If you were stuck with SQL server you'd have to run the DTS wizard 50 times clicking 10 to 15 times per file. If you were using postgres you'd write a 10 or 20 line shell or perl script.

      You see people confuse easy to learn with easy to use. CLI is hard to learn but once proficient you become incredibly productive. GUI is easier to learn but your productivity never raises above a novice.

      --

      War is necrophilia.

    3. Re:Stupid cars by Trepidity · · Score: 2

      Well, I started with a CLI (MS-DOS) and still often prefer one, but I disagree with the general "CLI is better" sentiment. For many common tasks I now use a GUI simply because it is a better interface, even though I already know how to do the task in a CLI. Thus the "hard to learn" has nothing to do with it - I've already learned, but still prefer the GUI. A trivial example is view files in an archive. If i want to view a textfile in a ZIP archive, i can either double-click on it then double-click the textfile to view (GUI) or type "pkunzip zipfile.zip filename.txt" and then "edit filename.txt." The first step is much easier, IMHO, especially if I want to browse through multiple files. (of course you can also "pkunzip zipfile.zip filename.txt|more" but that's not equivalent, as more doesn't let you scroll up/down and edit the textfile).

    4. Re:Stupid cars by Malcontent · · Score: 1

      Once again when the task in hand is inherently visual (actually viewing something inside of an archive) then of course a GUI is more helpful. Also when the GUI is helpful if you want a beginner to be able to do something. But If the task is non visual (archive all files that have a last modified date of 120 or more days) then the CLI is more powerful. I for one think a hybird system is needed but have seen nothing that even comes close. Perhaps something like an IDE code completion or the bash tab would work. Imagine if bash could present you with the options for find as you type.

      --

      War is necrophilia.

  184. Extreme Programming by crucini · · Score: 1
    Extreme Programming, is just the latest buzz word for what was RAD, and before that what was simply good practice/procedures...
    Nope. Extreme Programming is a programming ideology with some very specific and unusual features. For example, all production code must be written by a pair of coders sitting in front of the same workstation. This is not as crazy as it sounds - read their books to find out why.
  185. Re:XP isn't used by many shops by bowb · · Score: 1
    How many shops do you know that sit 2 people at one PC?

    Just a question. Does that really work? What if both want to type at the same time, won't they fight?

  186. Re:Gotta be the bloat. Pure and simple. by gdiersing · · Score: 1

    You may have paid for it, but we want to know WHO you are and WHERE you are. In case, you know, we have an important patch or something.

  187. Exactly - it's not just software that sucks by SuperKendall · · Score: 2

    First off, I wanted to thank you for the Jurassic Park reference, which made my laugh out loud when I heard it for the first time in the theatre.

    I also wanted to agree and expand on the idea that software sucks because the market says it's OK for it to suck. In general, the market now thinks it's OK for a LOT of things to be pretty mediocre - cheap plastic merchandise, McDonalds, TV. Software fits right in that group.

    On the other hand, because it has been OK for software to suck for so long, I totally agree with the point made in the article that humans, as a group, have not really figured out how to make software. We haven't really needed to. I feel all current ideas on managing software projects are pretty much wrong at the core of things, and until we figure out why there's a lot of floundering to be done.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  188. Software as More Socially Significant by Gefiltefish · · Score: 3

    Lanier said,
    "Basically, if you heard your brain surgeon also had a tattoo parlor, you'd probably demur. Right now we think of them as the same thing. We think it's perfectly all right for people to go back and forth. I don't think it is."

    This is a fascinating suggestion and I think, aside from the flamebait in the article for Linux lovers, this may be the most important idea expressed in the interview.

    That idea is that the people writing software should not only be generalists but software specialists(though I'm sure generalists are needed in software engineering just as in medicine). In this statement he both elevates software engineering to the level of medicine (which it certainly deserves given its importance in so many settings), but also calls for a more systematic approach to the social role held by coders.

    Granted, while physicians are not perfect, their professional development model might not be a bad one to follow in the field of software development. Study fundamentals and then actual applications. Work under the tutelage of those more experienced. Increase professional independence. Share new ideas with peers and undergo peer review.

    I think that a shift of this nature would definitely help propel software development leaps and bounds. And though it may be a good idea, what can be done to push things this way?

    food for thought anyway...

    1. Re:Software as More Socially Significant by kbs · · Score: 1

      The problem is that right now a whole lot of Software people are Artists (in demeanor, attitude, etc.). I'm not saying that Artists do not have their place; indeed, those that design web-sites, etc. should be Artists, but user application developers, system engineers, network engineers, (and I would even argue sysadmins) should NOT be Artists. Unfortunately there are too many of the above people that are.

      yours,

      --
      yours,
      kbs
    2. Re:Software as More Socially Significant by fizban · · Score: 1
      Study fundamentals and then actual applications. Work under the tutelage of those more experienced. Increase professional independence. Share new ideas with peers and undergo peer review.

      This, my friend, is how everything should be learned!

      Too many software developers come into the field with enough self-learned knowledge that they also bring along a fair amount of cockiness and dare I say, hubris. It's great that someone can go and teach themselves to program. They can read through code and figure out what it does and then take that code and apply it in their own projects. But they have then relegated themselves to be regurgitating machine. There is one side of the story and that's it.

      This is why it's so important to find a good computer science/computer engineering/(any engineering, in fact) program at an institution of higher learning that allows those who desire to learn a field to be exposed to generalized topics in that field and to be exposed to professors and other more experienced engineers and developers who can teach the students the reasons why things were done a certain way and how to critique those decisions and maybe find better ones.

      The most important thing a person can do is to grow. And the best way to grow in this social environment we live in is to observe the people around you and to come to an understanding about how and why things are done a certain way. Take a general view of the world and then apply what has been learned to specific problems. Learn from the people who have come before you and build upon their successes and correct their failures.

      The reason why some software sucks is that the developers making it have not truly learned their profession. Most of the software today is written by young people (like myself), who don't always understand the reasons why they do the things they do. But with experience and the correct tutelage of our superiors, we can better ourselves and create better software.

      Maybe we should do it the old fashioned way - 7 years as an apprentice in the blacksmith's shop, before we even dare create something for production...

      --

      --

      +1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.

    3. Re:Software as More Socially Significant by sporktoast · · Score: 1

      Are we ready for that kind of change in software development? In our learning models?

      Mandatory certification?

      Arresting folks for practicing software without a license? Will clients have to suffer through the development equivalent of HMOs?

      --
      In a related story, the IRS has recently ruled that the cost of Windows upgrades can NOT be deducted as a gambling loss.
  189. software does not suck by roman_mir · · Score: 2

    In the beginning there was nothing, and then all of a sudden there was a big explosion and nothing became time and space. Twelve to twenty billion years later a bunch of creatures that use their two limbs to stand straight and the other two to masturbate and click on the NEXT button of their pr0n site are arguing about quality of something as abstract as software development process.
    Things have most certainly changed.

    Before the 1995 hundreds of software writers breathed, ate and shitted with Assembler and C. The only few clear moments in their lives worth remembering were the times when they found solutions to some obscure computer problems at the lowest level - at the hardware level - these were the junkies who coded bit by bit, only caring about performance; computers were slow.
    Today armies of so called IT professionals are really trying to make guesses, as well educated as they possibly can, about scalability of multitiered web and wireless based systems, that must serve millions of customers, mostly in real time (rarely with back bone batch processes.) These are different breed of people, they don't need to know too much about the Assembler behind their Java and VB virtual machines.

    Obviously it is hard to design software that works like Star Treck's does but it does not mean that software today sucks, it only means that this software is the proto software, it is the evolution that uses simple patterns with countless iterations to produce complex systems that at some point in time will most certainly be integrated together into one huge breathing software monster. There will be no question about AI anymore, the software will live its own life all around us. Be prepared.

    1. Re:Software does not suck by tumeric · · Score: 1
      If anyone can think of another field where a mistake of a single mistake in hundreds or thousands of hours work is considered a bad record, I'd be suprised.

      Every other engineering discipline. It just doesn't seem that way because they are better at it than software developers.

  190. Re:If only project management was an honourable ar by J.Random+Hacker · · Score: 1

    Indeed, I've been burned so many times by using commercial-off-the-shelf (COTS) stuff professionally, that my first thought these days is to build it myself unless I can get the source, or it is really well known and stable. If I am *forced* use COTS, I write insulation layers so I can replace that junk later on. Even with that level of paranoia, I still get the shaft from time to time with a no-work-around situation.

  191. Jaron thinks the command line is natural also. by abramsh · · Score: 1

    I clearly remember Jaron telling me that we (while I was at NPS) should model our software after the unix shell tools. He gave examples of how composable they are. That you could just pipe the output of one command to the next, so that you could create the exact tool you needed. He wanted me and my colleagues to create VR software that could work that well. The fact that he now craps on UNIX is simply a contradiction.

    1. Re:Jaron thinks the command line is natural also. by crucini · · Score: 1

      I think Jaron is being misunderstood a bit. He isn't so much crapping on Unix as wanting to move forward. And he isn't defining 'forward' as Microsoft. I love Unix but I don't think it's the end of OS evolution.

  192. Re:File attributes / mime types by spitzak · · Score: 2
    I think adding attributes to files is a mistake. This is because it does not match the way a user thinks of objects. If you have a car, you can tell it is a car by looking at it, not because it has a tag next to it that says "car". If you give the car to a friend, he can also tell it is a car, even though he does not get the tag.

    The solution is to analyze the contents of the objects. Like the Unix "file" command, which runs rules that examine the starting bytes of a file to determine what it is. The advantage here is that when the file is copied somewhere, it's "type" is preserved, because it is part of the data.

    What is missing is a file system where accessing the first 100 or so bytes of a file is as quick as reading that file's name, so that we could display the type as quickly as the current filename or attribute based hacks. Does ReiserFS or anything do this?

    There should be a command line program to do exactly what "open" does in Explorer, or clicking a file in KDE, and we should require GUI's to exec this program so that all the GUI's agree on this system.

  193. I agree! by twitter · · Score: 2
    From the article: "I mean, everything in Unix is ultimately based on command line interactions. You can try to overcome that, but it's very hard. Unix's whole philosophy on how to do internal management and how to manage timing is based on that set of assumptions,so you have to fight it at a thousand levels."

    He might as well have bitched over the binary nature of computers. Like so:

    I mean, everything in computers is ultimately based on binary interactions. You can try to overcome that, but it's very hard. The whole philosophy on how to do internal management and how to manage timing is based on that set of assumptions, so you have to fight it at a thousand levels.

    --

    Friends don't help friends install M$ junk.

  194. I guess not 1 person read the same article I did.. by zooey_glass · · Score: 1

    Listen. Ok, wait, you're still not listening. Ok, now listen.

    I can't believe that I haven't read one post that actually got what Lanier is saying. Folks, he's saying this: with computer hardware running millions of times faster and more efficiently than ever before, NOBODY is writing software to take advantage of it.

    He's not saying that the piece of shit proggie you wrote in PERL or C++ isn't a quality piece of shit, he's just saying that it's unimaginative and especially not written in any way that would actually take advantage of your computer hardware in any real way.

    Maybe more than your proggie though, he's addressing visionary software -- or the lack thereof. What are we going to do with these super-computers? Is our goal simply to get the smoothest, cleanest, fastest game of Q3 ever? He's saying that we don't even have any idea of what we can or should do with these new technologies because we can't think outside of the boxes that we've simultaneously fallen into and yet made for ourselves by our language and ideology.

  195. The command line by dkm · · Score: 1

    All I can think of as I read the article was Neal Stephenson's "In the beginning was the command line." It seems the perfect response, even though it predates the article by over a year.

  196. Faster, so what? by gawi · · Score: 2
    "[But] this breathtaking vista must be contrasted with the Great Shame of computer science, which is that we don't seem to be able to write software much better as computers get much faster."

    I don't get it. How am I supposed to write "much better" software with a faster computer. Did anyone ever believe that "quality of products" and "horsepower" are related?

    --
    All humans are mortal. Socrates is a human. Socrates is dead.
  197. Finding new terms... by SnapShot · · Score: 1

    I think the most important quote in the article was right at the beginning:

    "Maybe we have a language problem," he says. "Instead of talking about software, we should be talking about different entities. Just like we have language, but then we also have poetry, drama and rhetoric. Maybe what we really need is just different categories of software that are handled in such utterly different ways that we don't even use the same word to describe them."

    I've been looking into various evening/part-time, professional master's degree programs and my biggest problem when I check out the catalogs is what classes to limit myself to. I could focus on network programming, web-based programming, database programming, higher-level "software engineering", AI, GUI, etc., etc., etc.. Of course there are overlaps, but I guess the main point is: I wouldn't ask my cardiologist to diagnose this fungus on my feet.

    I don't have an answer, but a lot of very different tasks are thrown in under the amorphous term software development.

    --
    Waltz, nymph, for quick jigs vex Bud.
    1. Re:Finding new terms... by nibelung · · Score: 1
      Maybe new terms are needed both for software and for jobs.

      Software: User Interface applications, Real-Time control programs, Operating Systems, Database systems, etc.

      Jobs: when you start a new project, do not start out with getting a 'Project Manager and a bunch of programmers', but: System architects, Requirements analysts, User Interface designers, Quality responsibles, configuration responsibles, application integrators, software testing specialist, etc.

  198. Software simile by donglekey · · Score: 4

    I have always thought of creating a program like making a samurai sword. I know it sounds weird, but here's why. A sword is supposed to be an elegant and simple tool or weapon that really has many uses. Software, likewise should be the same way. You wouldn't want a sword that was mostly handle would you? what would be the point of that? In the same respect you wouldn't want a web browser that was all buttons and had a small windows for looking at a web page. And you wouldn't want a heavy sword, that's dull and breaks all the time would you? (think netscape 6). This is how I would break down some of the software that I use, using the sword analogy.

    1. Windows - Large sword, somewhat dull, extra protrusions that make it only fit in their custom sheath. Dullness makes it harder to cut yourself, so it is more for those who don't want to develop enough skill to use a sharper sword, don't think they need one, or are scared or cutting themselves.

    2. Linux - balanced different, awkward at first, but better once you get used to it. Really sharp, really durable, doesn't break, cuts through most problems easily. Not for the uninitiated. Blades everywhere, flexible but complex. Not just one knife, but lots of specialty knives designed for cutting through anything, each one for something different.

    3. Winamp - a sharp, solid dagger, lightwieght, customizable with different blades, different designs for the handle.

    4. IE - seemingly small handle, large blade, elegant but very fragile.

    5. AIM - cuts through most of what it needs to, but is getting kind of heavy (bloated) not as bad as ICQ I think.

    6. Gimp - Solid, sharp small handle, long blade, even comes with tools for sharpening. (think script-fu)

  199. The problem is not software complexity by nibelung · · Score: 1
    Not all software sucks. Software that is badly designed sucks.

    Enough research and experimentation has gone on in software development that it is perfectly feasible to write very good software indeed. Just use the right methods.

    The problem is IMO that very few projects actually enforce the use of good development methods, and that a large number of the people (including programmers!) in the projects are unaware of them.

    I do not think the problem can be solved just by improving terminology as the article suggests but it is a start. For example a company that makes hardware should not recruit 'C programmers' but 'Device Driver engineers', excluding from the recruitment process a lot of people that do not have the necessary skills.

    But there is more to all this. Users should demand higher quality software (with their wallets). Project leaders/companies should do more than pay lip-service to their development process. Developers should demand that proper development methods are used, rising above the all too common amateuristic ways of working.

    Strange as it may seem, the most difficult part seems to be to get users to actually demand and recognise quality.

  200. Speaking of sucking by BluedemonX · · Score: 3

    For starters, let's say that I've a lot of respect for what Mr. Lanier achieved in the early 90s with VR, and understand that whole pop-semiotics/Mondo 2000/Boing Boing/Modern Primitive/Cyber-everything vibe he's coming from.

    But allow me to reiterate that HARDWARE has a DEFINED FUNCTION. Bits go in, other bits go out. Key gets turned, engine starts. I buy a car and a plane and a boat - I don't expect to buy one vehicle that can fly, swim and roll on dry land. His problems with modern software stem from his paradoxical and contrary wishes for software engineering.

    Lanier seems to have a scattergun theory as to why software sucks. It's either "the engineering isn't there" (definition A) , and/or "what it does for the customer doesn't empower him" (definition B).

    To the first part I say software is considered by its mercurial nature not only something that CAN'T be engineered, but MUSTN'T be engineered. Cause if you make plans and stick to them, then marketing can't decide at the 11th hour to retool everything to include holographic agents and a Star Trek like voice input (after a night of cocaine and "brainstorming"). To whichever jackass points me to "if programmers built buildings a woodpecker could destroy civilisation" I say "make up your goddamn mind whether you want a condo or a three storey house BEFORE we pour the concrete, and we'll talk." No other form of engineering comes up with the ludicrous idea that plans are mere suggestions and subject to change at any time, to produce a product with no real set function (is Word a word processor, a typesetting program, or an HTML editor? MAKE UP YOUR MINDS). However, coming up with small, ruthlessly efficient software entities sounds like UNIX, which he says sucks by definition B of his rant.

    As for his ideas that programming languages and interfaces should be humancentric, let me put it this way - computers process DISCRETE SYMBOLIC pieces of information, humans process PATTERNS and CONVOLUTIONS. I don't expect my shovel to shovel my walk for me, why should I expect my computer to respond to me drawing out what I want with magical icons and lines and all other forms of strange ideas when it comes to PROGRAMMING? (Visual Language?) Any machine that can accomplish such a feat would have so much software bloat by definition it sucks by definition A. A computer is a tool, not a mystical genie that's going to solve my problems for me. If I want a secure Internet connection, it behooves me to either learn how TCP/IP works, or hire someone who does. The answer is not to have a big red button that says "secure my system" cause I can assure you, on a system like that, someone's working on a big GREEN button that says "hack this system."

    Most software sucks because people don't want to take the time to figure out what it should do or who wants it. Marketing seems to think that rather than research what a product should do and who to sell it to, it's just there to listen to every potential customer ("I want a minivan". "I want a sports car." "I want a quarter ton pickup") and spit back every ludicrous request ("We've got to come up with a sports quarter ton minivan!"). Management seems to think that rather than getting specific specs by a specific deadline and then staffing the needs of the project, giving the engineers and testers the tools, and then getting the hell out of the way, it's all about constant "meetings" and Microsoft Project bar charts.

    --

    --- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
  201. You cant have it both ways by Ratteau · · Score: 2


    Its a sad commentary for the industry but certainly a good one for a quickly-growing economy. If you take the time to carefully plan, stick to the guidelines initially laid out, and test thoroughly enough that you are 99.44% bug free -- guess what -- you release and fail. Why? Because 3 or 4 other companies released months ago and dominate the market. No matter how good your product is, youre going to have an extremely difficult time getting people to switch if they are used to another product.

    Now with the Internet, it is even more important than ever to be the first. That is the reason so many companies are willing to take huge losses their first couple years as they build up to a "critical mass of users", the point after which, they should, in theory, start to receive increasing economic returns to scale. (Yes, many are failing, but if you look closely, they are the me-too companies. Even amazon got caught up in this, and they should do better having pared their toys and other depts they added because they just could.)

    Unfortunately, the reality of the times dictates that the only good choice is to develop a pretty good app, release it, and hopefully gain the name recognition and market share. Once you have market saturation, you can concentrate on making your product the best and upgrade to make your customers really happy, and then beat the other 2 or 3 companies out there doing the same thing.

  202. This article is pretty ironic. by AFCArchvile · · Score: 2
    The article criticizes the direction in which software is heading (not up), and in the HTML source, I found 5 (count 'em, FIVE) pieces of JavaScript(TM). Those five turds made the webpage lag when I scrolled it down. The JavaScript(TM) alone partially invalidated his stance on software; how could he sell out to the jovial group of JavaZealots(TM) on upside.com?

    DISCLAIMER: Java(TM), JavaScript(TM), and JavaZealots(TM) are trademarks of Sun Microsystems, Inc., LLC, CRAP, etc.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
    1. Re:This article is pretty ironic. by JohnCub · · Score: 1

      on a windows machine:
      press and hold the alt key
      on the keypad, type 0153
      release the alt key.
      (TM)

      --
      -= Why can't I add 'Anonymous Coward' to my list of Foes? =-
  203. Re:If only project management was an honourable ar by zooey_glass · · Score: 1

    "Why Software Sucks" isn't saying that the "software" out there isn't/can never be quality... He's saying that we're going about it all wrong, that we have a misconception of what "software" is/should be and we perpetuate that misconception by the very way we talk about "software".

    Talking about the quality of current software is a good example of this misconception and why it's so hard to see out of it.

  204. Why hardware is good and software is bad? by xdeadbeef · · Score: 1

    Hardware is so much amazingly more simple than software. The tasks it accomplishes are much more specific, much more defined.

    Software is more of an open book. Many applications/OSes/etc do MANY things, and the overall number of states the application can be in is millions of times more than the states a CPU can be in, for example.

    Just my thoughts..

    -Justin

  205. Re:If only project management was an honourable ar by StormyMonday · · Score: 2

    Yup. I've seen too much of it, too. Don't forget that the programmers (the guys on the bottom) get blamed for anything that goes wrong. The managers (at all levels) have their Teflon suits on.

    Now go back and assume your project is a bridge instead of a program. Nobody within hollering distance of their right mind would put up with this kind of crap. Build a bridge that way, and it will collapse. Very publicly.

    What's the difference? Only about 4000 years of experience. People in the management chain have a feel for what is needed for a bridge to "work", and know that they can't interfere in the process without risking disaster.

    Software is newer and much harder to quantify. A bridge either falls down or it doesn't. A computer system has zillions of "degraded" modes that it can get into and still sorta work. It can be really hard to tell if a program is meeting its goals.

    Because of this, managers can get away with all manner of crap. Software engineering will not be a real engineering field until a typical "software engineer" can say something to his manager like "Testing is going to take six weeks, period. I don't care if you miss Comdex, it doesn't get released until it goes through Test, and that will take six weeks." *AND HAVE IT STICK*.

    I'm not holding my breath.

    --

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  206. Speech Shell? by crucini · · Score: 1

    OK, so you've got this computer that triggers on your saying "computer" in a commanding voice. Now you're on the phone with tech support. Whenever you try to turn on the lights, the computer is launching one of the lifeboats.
    "I said, um, you know, turn on the lights!"
    "Sir, you need to say computer! turn on the lights."
    "I DID say computer! turn on the lights! Oh no!"
    Or how about,
    "Computer! tell the hull repair robot, 'Computer: tell the tailfin computer, "Computer: shutdown now!" ' "
    "Computer ... Computer??"
    How do you handle escaping issues?

  207. Re:Software as a fragmented profession by crucini · · Score: 1
    you're just not allowed to ask an electrical engineer to build a bridge.
    Not true. The jurisdictions I'm familiar with in the US lump all licensed engineers into one category. Most licensed engineers are mechanical - a few are electrical. It is the engineer's responsibility to avoid work that's outside his competency. Licensed electrical engineers frequently have to approve drawings of mechanical assemblies for power substations and stuff - remember every EE is forced to take some ME in college. And medicine works the same way - any medical doctor can legally practice any kind of medicine. Restrictions are self-imposed.
    If you looked hard enough, I think you'd find a bridge carrying ductbanks across a creek that was stamped by an EE at the power utility.
  208. yup, they do pay for code snippets by ddent · · Score: 1

    Generally, they are called SDKs, or software development kits. You are right about one thing: people won't pay for uber-simple stuff. But people WILL pay for complex stuff, or stuff they might not be able to do themselves. To use your metaphors, people will pay for ICs (integrated circuits).

  209. Ballantyne's Law: by Nopaca · · Score: 1
    You never have karma when you need it.

    This post explains exactly the problem. Managers who act in such a manner that their software is of poor quality have the only hopes of becoming wildly successful in the software business. They are lauded as geniuses and heroes. Meanwhile, people who do things in a manner that takes account of good engineering principles have their code trivially emulated or their formats trivially embraced, and end up making no monopoly rents. Usually they go out of business, despite the geek crowd looking back fondly on their work as visionary.

    Sound familiar to anybody? Mark the previous post up to 5 please.

    "We will compete with anybody."

    - Michael Risse, general manager at a company that complains that all antitrust complaints are instigated by competitors

  210. Mac coding by pictures possible in Prograph by Colin+Simmonds · · Score: 1
    Oh, and if your system isn't built on a CLI, as mentioned above... consider how the programming tools are constructed. Do you code a real Mac application by drawing pictures?

    You can if you use the Prograph programming language. It lets you build real Mac applications using the Classic Toolbox by dragging and dropping icons to construct dataflow diagrams.

    It's been recently ported to Windows from its origins on the Mac, and I encourage programmers who like learning different languages to download the demo and try it out. It's literally unlike any other programming language I've used.

  211. Re:File attributes / mime types by Azog · · Score: 2
    The solution is to analyze the contents of the objects. Like the Unix "file" command, which runs rules that examine the starting bytes of a file to determine what it is. The advantage here is that when the file is copied somewhere, it's "type" is preserved, because it is part of the data.
    I don't completely agree. Yes, in some ways it would be better if the information was embedded directly into the file. But there are too many predefined file formats which don't allow any easy way to recognize them. The Unix "file" command uses heuristics to examine files. It works surprisingly well, but doesn't work well enough to be totally reliable. And every time someone invents a new file type (or even subtype!), you would have to update the file command to recognize it.

    On the other hand, the problem with keeping the "file type" data (or any other data) in the filesystem as I suggested is that then you have to update dozens of programs to deal with it properly - at least tar, gzip, bzip, cp, mv, etc, etc. And as soon as you ever put one of those files on a filesystem that didn't support it, you would lose all that data.

    But if you bit the bullet and started putting that stuff in the file system, there's a lot of other data that would be nice to track. The mime-type is just one. My argument is basically: We already track a lot of this stuff in the file system, so why not track more? Ext2 and every other Unix I know tracks the following:
    • File owned by (user id, group id)
    • File last modified on (some date)
    • File size
    • File name
    • File permissions (read,write,execute for user,group,all, and suid)
    It would be great if file systems also tracked the following data:
    • File created by user (real user id) acting as (effective user id) using program (X)
    • File last modified by (real user id) acting as (effective user id) using program (X)
    • Mime-type (X)
    I'm sure there's lots more. Unfortunately, this may be a case where backwards compatibility with the existing installed base of Unix systems will doom us to the limited capabilities that were designed into the BSD filesystem twenty years ago or more.

    Torrey Hoffman (Azog)
    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  212. You do both. by torpor · · Score: 2
    When you get home at night, and you MOTAS/roomies ask how your day was, do you

    A. Draw pictures and icons of how your day went. B. Tell them in words how it went.

    You do both.

    You draw a picture of the events in your head, and sequence along as you go. And then you describe the pictures of each step in that sequence in words. If your friend doesn't get it, you back up and use other words, until finally the message has made it across space and time to the other side. Sometimes, you might even fall back to drawing a picture - certainly, this is how most linguists worked when encountering foreign members of other races, and it's an effective process of achieving communication, when needed.

    Words function as a means of communicating significances and concepts. Pictures also function as a means of communicating significances and concepts.

    They are not mutually exclusive of each other, and usually the better computer science types, and thus the better programmers, producing quality software, can function with either communications methodologies just fine.

    It's the guys that get stuck on one method, and one method only, that produce crap software...

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  213. Re:Why does it suck? by Maserati · · Score: 1

    Quote from back in the day: "Want a copy of Mondo2000 ? Lift any garbage can lid in the East Bay". I never considered it worth so much as a 'nice try'.

    --
    Veteran, Bermuda Triangle Expeditionary Force, 1992-1951
  214. Software does not suck by johnburton · · Score: 2
    We do a damn good job of software development considering how difficult it is. In any other field of work, some mistakes can be tolerated. If a doctor gives a patient 1 percent too much drug, nobody will ever notice most of the time. If a civil engineer builds a bridge 1 percent too weak, the chances are huge that it will stand up anyway. If a salesman hits 99% of their sales target it will seem pretty good. If a builder builds a wall a few millimeters too short they can always fill it a bit extra. If a car engine designer aims to build a 100hp engine and it turns out to be 101 then so what?

    But if a programmer gets a single line out of millions wrong it can prevent the whole program for working. There may be thousands of faults in big software systems, but they are by far the most complex things we build, and have by far the least tolerence for mistakes of any field of human activity I can think of.

    I think that considering how difficult a task it is we do damn well and should feel proud that we do.
    Of course none of this means that we shouldn't do everything in our power to make software even more reliable and free of mistakes. Software is tens or hundreds of times as complex as it was ten years ago. Modern techniques and the right disciplin help, but I don't believe that software development in general has a bad record at all.

    If anyone can think of another field where a mistake of a single mistake in hundreds or thousands of hours work is considered a bad record, I'd be suprised.

    </rant>

    --
    Sig is taking a break!
  215. The No.1 reason software still sucks.... by M@T · · Score: 1


    Money... Companies want to make money more than they want to spend it... even if spending money will likely make more money in the long run.

    The have a market, they need a product.
    Noone has ever sold a %100 finished product
    when it comes to software. The market tolerates
    %70 and thats what it gets. %100 finished means you missed the boat.

    --
    'sapientia potestas est'
  216. Re:If only project management was an honourable ar by denshi · · Score: 1
    I agree with you that to a user, OS crashes and app crashes aren't very distinguishable. As for X, you should use ctrl-alt-bksp to dump the X server and go back to the command line - I have to use it all the time when WindowMaker crashes on me. But I take issue with:
    When running Linux instead of windows however you run the risk of doing quite a bit of damage to the file system during a reset.
    I've been doing work with both OS's for 5 years now, and I've never had an ext2 filesystem problem so bad fsck couldn't fix it. Obviously, head crashes don't count. Windows, on the other hand, has required quite a few reinstalls for corrupted fs - and I wonder if the MS tools even find all the problems, considering the bit-rot I see on my windows box (I'm probably just paranoid).

    In summary, Windows can still corrupt a filesystem, does a pretty poor job of keeping it consistent even when it's running, and doesn't offer the caching and lazy writes of ext2. How is that a good thing?

  217. Re:If only project management was an honourable ar by aschlemm · · Score: 1

    I remeber going through this back when I worked at a place that used Roque Wave libraries. The nice thing is that we had the source and keep all of the Rogue Wave source in Clearcase and appied our own fixes as well fixes supplied by Rogue Wave. I do agree it's not a pleasent situation to be in when your using COTS and don't have the source code to patch it yourself when you get burned by a bug that's not your fault.

  218. Start Trek World by marcop · · Score: 1

    From what I understand his viewpoint he doesn't say that software programmers are doing a bad job but rather the entire software industry's model is currently inefficient. I think that he longs for days when we will be able to use eclectic object oriented languages and visual programming to magically piece together programs using advanced building blocks. In the land of make believe (i.e. Star Trek) programs are put together simply by moving building (or function blocks) around. No messing with actual code (or so it seems).

    Problem is current level of hardware also limits this level of complexity too. In order to make software efficient some software must be written in assembly. An example of this is the Linux kernel. Another example is MFC. A Win32 program is far more efficient and elegant but harder to write for newbies.

  219. The reason software sucks is because of dumb ppl by Mayday · · Score: 1

    I can prove my point in this too! Look at freshmeat.net or sourceforge and look at all the bad open source projects people try to do and either figure it out they they do not have the talent to complete the projects or they put something out there that doesn't even work. Don't get me wrong, I still believe in Open Source, I just think you need to pass the mental exam before you can hop on the band wagon. Yes, people do make mistakes, but if some people put a little thought into their projects and read a few white papers and howtos, there would be a huge improvement! Imagine if everyone used their brain... wow.

  220. Exist by redhog · · Score: 2

    Oh, those groupings allready exist! At least there are names for the persons creating different type of "software":

    Webslave - Person creating HTML, JavaScript and PERL CGIs and perheaps some database bindings. "Software" with high user-expressive (I won't use the term expressive power as the author, since IMHO, even a sorting algorithm contains a lot of such) content.

    Sysadmin - high-level programs merely interconnecting big entities. Not so high user-expressive-power, not so high engineering-power neither. This is more like the person planning where to bild the bridge, what islands to connect with bridges, etc.

    Script-kiddie - like sysadmin, but with different big buildingblocks, and different intentions...

    KDE-hacker - programmer creating everything in one place, low-level low-user-expressive and themes and widgets all in one place.

    Forgot someone?

    Yes, this is meant to be a troll, but a funny one, at least :)

    --
    --The knowledge that you are an idiot, is what distinguishes you from one.
  221. We know how to make high-quality software by Tomster · · Score: 1

    Good coding, development, and management practices are known. Know how to use them and apply them, and your project has a good chance of meeting its requirements.

    Good developers are 5-10 times more productive than poor developers; good teams are 2-5 times more productive than poor teams. What makes such a great difference? It's not "native intelligence" or "talent" or "luck". It's knowing how to work effectively. Training.

    The trouble is we're still in the dark ages of software development. Ignorance is the norm, and there seems to be an underlying assumption that we're stuck with death marches, cost/schedule overruns, and poor quality; and the idea that using good techniques and best practices is somehow more expensive. Until these assumptions are removed, software will continue to suck.

  222. Huh? what did he say by KevinMS · · Score: 2


    I cant figure out it its a bad article or he has nothing really interesting to say.

    He says software sucks, but I'm not sure if he's addresses the quality (bug wise) or the quality (user interface wise). I'm inclined to think he's addressing the suckyness of user interface since he's into VR.

    Now, anybody who is complaining about the ability of humans to design user interface should not be even mentioning unix. If your going to complain about user interface complain about the best interfaces developed, MacOS, BeOS, etc, not the worst (in terms of the general user)

    If he's complaining about the quality of the user interface of unix (shell, X, etc) then I think he is making the wrong point. Can I complain about the quality of a BMW or Lexus because it doesnt fly? It does what it does, and it does it quite well. As far as I can tell, being an administrator for a web site mentioned in my sig, linux/unix does what it does perfectly.

    Now, if he's complaining about the quality of software in terms of bugs as compared to hardware, I dont think this is a fair comparison. Although I'm not an expert of hardware/chips/etc I'm pretty sure that the "paths" that execution can take through hardware is much smaller than through software. Hardware is a low level sub set of the way to execute logic, software is above this and necessarly has more complexity and variablity. Software is also often cranked out a lot faster, and can be patched a lot easier, and microsoft doesnt make chips :) I'll bet if you hardcoded windows, or netscape navigator into a chip it would be just as buggy.

    --
    Sneakemail is to spam filters what an ounce of prevention is to a pound of cure.
  223. Software sucks because... by MOBE2001 · · Score: 1

    ...it takes way too long to develop and it is prone to bugs. This is such a big problem that, just a couple of days ago, NASA and Carnegie Mellon University announced a consortium to find a solution to the problem, even though pundits like Frederick Brooks and Jeff Voas assure us that there is no silver bullet.

    http://www0.mercurycenter.com/svtech/news/indepth/ docs/bug121200.htm

    IMO, the problem has nothing to do with designers or programmers. It has to do with the linguistic tools that we use to build software. We use languages to create sequential algorithms. The problem with algorithms is that their sequential nature makes it hard to predict the timing of events. It is the unforseen event that causes the nasty crashes.

    Software will not come of age until we realize that computer science is really a subset of communication science. It can all be done with sensors and effectors and other objects sending signals and messages to each other. In hardware it's easy to to time events because of the parallelism. This is why hardware is so reliable: events arrive at their proper time. Not so with software. We need to emulate this parallelism in our software. We need to think in terms of *signals* and parallel objects.

    MOBE2001

  224. Intelligent machines and software development by DeusExPenguin · · Score: 1

    So Lanier thinks that "Humanity" in general doesn't know how to write software. He believes that it will be 50 years before any good laws are passed regulating software development. If intelligent machines are a foregone conclusion within the next 20-30 years, who says the machines will be letting humans write any code at all in 50 years?

  225. Sucks because of BUCKS by flyfisher · · Score: 1

    All of the comments about engineering are generally well put, but the biggest problem is in the user and business community. Until engineering software is rewarded and hacking software (I mean just getting it running so it can go to market) is NOT rewarded, software will continue to suck. Rewarding good programming will only happen when the people who buy software stop accepting crappy software and rewarding businesses that market crap with money.

    It doesn't take a rat long to realize that stepping onto an electrified plate is an unrewarding behavior. Even business and marketing types (they may have more brains than rats) will stop creating and selling crappy software if it doesn't make money. Competition in the hardware arena forces good engineering behavior by compensating those that produce good product. Who would buy a new CPU that crashes after 56 hrs or that requires you to pull it from the socket and re-insert it after any periferal chip changes? Even a relatively obscure bug in the floating point circuitry can cause a massive recall.

    As long as users are willing to pay for crappy software, there will be no improvement in software quality.

    --

    d4,...,Nf3, or maybe I should use a Ratfaced Mcdougal?
  226. Re:File attributes / mime types by spitzak · · Score: 2
    I actually think all the information should be moved to the "data" of a file, if at all possible. This means the date, owner, permissions, etc, are all embedded in a common format of parsable text at the start of the file. Even the file name would be imbedded.

    The problem is that this introduces all kinds of back-compatability problems in that any file format that cannot have an arbitrary-length comment imbedded within the first 4 characters or so would have no attributes or name (it could be opened by using the correct index into the directory).

    There are also obvious security problems with a system where anybody can change the owner and permissions of a file. Permissions would have to be an "and" of those in the file and of all parent directories leading to it.

    I think the ResierFS has talked about things like this. The problem they are having with their "many tiny files" design is that the required file attributes is far larger than the size of the files themselves.

    An intermediate form is to have such a system, but have all "back compatable" files be directories. Inside this directory is a "name", "data", "permission", "date", etc.

  227. Open source is making it better, not worse by marick · · Score: 1
    OK, fine, so open source software projects tend not to have regression test suites. I'll give you that.

    On the other hand, OSS's main benefit is huge amounts of code review. In my years of software engineering experience, I've never even seen ONE closed-source company that has a regime of code review even half as developed as Mozilla's, for example. And that's just one example. Almost all OS projects have code reviewed by SOMEONE. At most development houses, you're lucky if your design is reviewed. Code is assumed to be well-written.

    So, yes, Open Source Software has flaws as a development model. No regression testing is just one of them. But that doesn't mean it's making software worse.

    -marick

    p.s. yes, I know there are closed source companies that have code review! There are plenty of others that do not, and it is those that I am referring to!

  228. try this scenario by rebelcool · · Score: 1
    hm..okay scenario:

    At a car parts company in japan, a worker forgets to turn on the electrode system that initiates a chemical reaction that makes a protective coating for gasoline tanks in cars. The tanks are then shipped overseas, exposed to salty air, resulting in slight unnoticable corrosion. Cars are built, sold with the gas tanks. Time goes by, corrosion continues. One car gets in a wreck. Corroded tank spills gas, catches on fire, burning occupants alive. Senators then declare that all car parts from japan are unsafe, put tariffs on it. Japan gets pissed, trade war, real war happens.

    Check out the book Debt of Honor by Tom Clancy, as this is exactly what happens.

    So yes, one mistake can indeed be disasterous.

    --

    -

  229. Brendan Eich invented Javascript at Netscape by alienmole · · Score: 2
    Search for Javascript and Brendan on Google and you'll see plenty of references. You're correct that it was originally called LiveScript. Sun and Netscape did a deal at the time Java was being integrated into the Netscape browser, and the scripting language was renamed to convey the its intention of being used to script Java objects within the browser.

    As for Microsoft, they just created their own clone, and called it JScript.

  230. It's not about computer science. It's about $$$. by nerpdawg · · Score: 2

    Software sucks because you make more money with the first software to market than with the ideal product. It's a proven business strategy to come out with the first thing, and throw quality to the wind. Operating systems suck because computer scientists don't design the operating systems... companies with $$ invested in a couple different directions do. Companies are not in the business of making software. They're in the business of making money. Microsoft is a good example of this. They're an excellent company. They make lousy software. A good operating system could be made, they could play well with others, fantastic new standards and protocols could be developed, open to all, and beautiful software could be built that makes us all proud to have CS degrees. But if the money's in keeping the OSs the way they are and shipping software that breaks, but shipping it before anybody else and making buckets of money, well, that's what's going to happen. And although I'd like decent software, I don't know that I could blame them for picking the $$$ being that I've never had to make that choice. Whee. But since I posted this late, two people will read it.. hmm.. oh, well. I feel better anyway.

  231. INTERNET 2??! by Anonymous Coward · · Score: 1

    Lanier has managed to stay active in the technology game, working on such cutting-edge projects as the Tele-Immersion Initiative and Internet 2, an experimental, high-bandwidth successor to the current Internet.


    How many people are working on seperate replacesments for the internet? I don't think I want to use an internet2. I have a feeling it will be more commercial and less anonymous. Bigger tits and smaller ... anonymous.. uhh.. (I dunno i'm dumb) BIGGER BANNER ADS AND SMALLER...... shit i'm in the same position I couldn't get out of 5 minutes ago..

    My point is this: I will not stand by and watch this bullshit errupt. I'm gonna close my browser and open xchat. Goodday sir.

  232. JavaScript != Java !! by kyz · · Score: 1
    For goodness sake.
    • Java(TM) © Sun Microsystems
    • JavaScript(TM) © Netscape Corporation

    --
    Does my bum look big in this?
  233. Specializing: Yes! by NineNine · · Score: 1

    One great point he made was that software should be more fragmented by who develops it. Everybody shouldn't try to develop everything. As a database developer, I see this every day. C++ hacks or web people try to develop database apps that are an absolute mess. All software is NOT the same. Just because you can write device drivers does NOT necessarily mean that you can also design a database, or produce a decent web page, or write a good game. Developers need to realize this. The world of 'software' is much too huge for everybody to be trying to do everything. Do you go to one doctor for everything? Heck no! Would any self respecting podiatrist accept a job as a heart surgeon? Heck no! Why are software developers still trying to do this, and in turn, make a total mess when developing outside of their specialties? And, I'm not advocating sticking to a language, but at least one type of software, along the lines of the ones I've already mentioned: device drivers, games, databases, web pages, embedded devices, client-server apps, OS, etc.

  234. Whereas with sucky software. . . by kfg · · Score: 3

    They are annoying, time destroying, silicon paperweights.

    Much, MUCH better.

  235. suckiness by taarok · · Score: 1

    When presented with the option to select two items from the list

    cheap
    fast
    good

    Guess what you end up with.

  236. My toaster won't do my dishes! by medscaper · · Score: 2

    You have to admit, he has some certainly good points.
    He wasn't ripping on Unix except to comment on the inherent complexity of trying to get anything NON-unix done on it. That's like saying I am having a bitch of a time getting my toaster to do the dishes. It's the best damned toaster I could find, I read all the manuals forward and backwards, but I want to get my dishes done.

    And you have to admit, for a 30+ year old interface, it's not only held ground, it's advanced considerably. Funny how english is like that.

    What I can wholeheartedly agree with is his comments on software sucking. It does. Duh. How many pieces of software have you used that a) do exactly what you want b) never crash or even participate in the cascade crashes any OS is susceptible to and c) costs what you like it to cost AND d) is available when you want it. I've worked for several software companies and everyone knows what goes on behind the scenes.

    But, he's not taking into account the fact that software designers are all working on limited resources and limited budgets and time crunches. Hardware is cool. (Generally) it either works or it doesn't. It's not, "Hmm, I wonder what happens if a user jacks this into 220? Ooooo. Smoke. Let's build a safety into this. I wonder what happens if they throw the toaster into the house that's on fire? Will their toast be ok?" There's so much common sense in hardware. If you plug it in in the bathtub, be prepared for a shock. Everyone knows that. What people don't understand are the intangibles that software designers take (and are sometimes FORCED to take) for granted. If you are running 17 instances of Oracle on a 16 meg machine, don't expect your data to have any integrity. If your OS goes tits up, don't expect your letter to your grandson to still be there when you get back.

    I guess I'm rambling. I mean, in short, that there are too many intangibles and too much that is hard to control in the software industry. We're trying to sell something epheremal to people who don't understand the basic concepts. You can't explain what ipchains is to someone and have them be satisfied with it unless they understand ALL of these other things - about IP about networking about NAT about firewalls about ruls about... But with a car, it's simple. You grow up with it. It's there. It goes. It stops. It guzzles fuel. No fancy crap and you don't expect anything more of it because you know the limits. But with software... ok, now I'm getting a headache.

    --The statistical likelihood of your existence is so small as to render you impossible.

    --
    Any sufficiently well-organized Government is indistinguishable from bullshit.
  237. perhaps "most commercial" software sucks by ph0rk · · Score: 1

    Is easier to swallow.

    I mean, like anything else, after marketing, and rushing out the door, don't most commercial products suck just a little bit?

    I don't see how anyone say that a 6 month or 2 year labor of love "sucks", but then, that isn't what we are usually doing at work, is it?

    I liked his point about needing to differentiate different types of software, but i'm sick of people bashing linux or M$ or anything else without also suggesting a viable alternative. Any one can bitch, but it takes thought to try to solve problems.

    #bitchmodeOFF#

    --
    semantics are everything!
  238. Poor Guy by rsimmons · · Score: 1

    Its obvious that he has never used FreeBSD. That might change his views on UNIX in general.

  239. Umm (slightly OT)... by cr0sh · · Score: 2

    I believe you are thinking about the Virtuality system from W Industries, Ltd. Lanier had nothing to do with this system directly (ie, he didn't develop it - he probably only inspired the developers). On another note, W Industries became Virtuality, Inc (or Ltd?), they are now known as CyberMind, Ltd.

    Lanier developed high-end VR systems (ie, the VPL dataglove was a very expensive piece, on the order of $8000 US - they were also instrumentive in the design of the Mattel Powerglove for the Nintendo), with gloves, bodysuits, HMDs, and software, running on SGI workstations (IIRC - someone correct me if I am wrong). High res, high speed (for the time), and highly immersive.

    Jaron Lanier is far from an idiot - though his latest views have me a little stumped. Why he doesn't like *nix and such - he kinda clears it up in this article, but I still get the feeling he hasn't really played with it much. Back when he was doing his VR stuff, there wasn't any form of real-time *nix (real-time OS's are nearly mandatory for immersive VR work), now there are several available, many free.

    I don't think we should discount everything he has to say just yet - it might just be a case of "throwing the baby out with the bathwater"...

    Worldcom - Generation Duh!

    --
    Reason is the Path to God - Anon
  240. Plus you are shamed into writing good code. by cpeterso · · Score: 2

    Since you know someone is watching you code, you cannot fool yourself that some lame hack will be OK because the other person will (presumably) call you on it! ;)

  241. I believe you are wrong... (OT) by cr0sh · · Score: 2

    I don't think JL had much of anything to do with a-life - besides, much of a-life can trace its origins back to John Conway's LIFE "game" (a ruleset based primitive a-life).

    Did JL bring us VR? Well, he wasn't the inventor of it - like many "inventions", VR was developed by a long series of independant inventors and inventions - ranging way back to the Victorian-era stereoscopes and panopticons, possibly even further, as people tried to bring and recreate an artificial or real world, via an external interface.

    Prior to JL, was Sutherland and his "Sword of Damocles" (sp?), years later NASA and thier pilot training and simulation HMDs (big ugly things, but all off the shelf). JL saw this, and thought that he could do it too, and became the first to popularize and market HMDs, Datagloves, and Virtual Reality in general. In the end, his venture failed, and most (or all?) of the patents were bought up by Thompson - and sat on. Someday (actually, it should be someday soon - maybe in 10 years), those patents will expire, and alternate interfaces may take off then (VPL, JL's company - had patents that virtually blocked off all alternate implementations of the glove interface, at least the ones that were most flexible, easiest to use, and easiest to wear and adjust)...

    Worldcom - Generation Duh!

    --
    Reason is the Path to God - Anon
  242. OT - Troll... by cr0sh · · Score: 2

    Actually, he was right in blaming *nix, at the time - since there wasn't any good form of a real time *nix available then (mid-late 80's).

    I agree with your sentiment that he should get off his butt and do something - but his VR ideas are not terminally flawed - immersive VR is a different interface for a computer, one no better or worse than, say, a CLI - both have their purposes and applications.

    Q3A could easily be imagined as a desktop-based VE (virtual environment) - where the principle use is to run around, have fun shooting at others, and maybe - between frags - talk to another player. Wrap an HMD on your head, allow the software to detect you looking around and aiming your gun with the 6DOF tracked wand - think about it now...

    Worldcom - Generation Duh!

    --
    Reason is the Path to God - Anon
  243. Why Software Sucks by drummer_1 · · Score: 1

    Mr. Lanier might want to take a look at methodologies such as Extreme Programming, or object oriented analysis, design, and programming, before he judges the human race as being too stupid to develop quality software. He might also might want to take a look at the SEI's Capability Maturity Model (CMM). Or maybe he's never really built any software bigger than a couple hundred lines, or maybe he just craves attention by making brave but baseless claims.

  244. Consumers expect software to suck. by hackstraw · · Score: 1

    I have yet to meet an average/above average computer user that expects software to work properly or consistantly. Its quite normal for the average office/home user to have their OS and/or applications crash because they have never experienced anything different.

    One thing that really scares me is that when I see science fiction things (Runaway comes to mind), it really freaks me out how "junky" (ie, buggy) all of the cool electronic toys, robots, etc are.

    In summary, I completly blame the consumer for the state of software suckiness. I would guess that it is due to ignorance of how software is supposed to behave, and their willingness to sacrefice consistancy and reliability for "ease of use" by applications "thinking for them". Most computer users feel pretty powerless over software and just take what they get. These same people would leave their car on the side of the road if their car behaved like their OS/applications.

  245. Read the original paper before commenting! by Junks+Jerzey · · Score: 2

    Lanier's paper, One Half of a Manifesto, is actually several months old. The article referenced at Slashdot is a fluffy interview with the author which includes out-of-context fragments of the original paper. Please read the full paper rather than posting about how shallow the article is.

  246. Software as a fragmented profession by RichDice · · Score: 2
    "Basically, if you heard your brain surgeon also had a tattoo parlor, you'd probably demur. Right now we think of them as the same thing. We think it's perfectly all right for people to go back and forth. I don't think it is."

    I agree that this was the most important single statement in the article. However, who is/are "we"? Perhaps I'm kidding myself, but I think that practitioners of the technology appreciate the differences quite well. Sure, I sysadmin my own few Linux boxes... badly. I have a lot of respect for professional sysadmins, who don't really aspire to coding apps (or much else for that matter), but they sure manage a heterogenous network...

    Thisn't isn't to say that someone can't be multitalented as an individual, either. (For instance, just try to categorize Larry Wall. :-) ) But the disciplines within IT are certainly very identifiable.

    Maybe the "rest of the world" has a tougher time figuring out that software-based IT is multi-faceted. Sure, we all know that doctors and lawyers and engineers each have specialties, and as soon as you need something else done, you have to go to a different one. So why isn't this realization out there in the publics' mind with IT as well? Maybe it's because the public doesn't deal directly with software people -- it deals directly with their software, but not with the people who create it. On the other hand, people do deal directly with lawyers and doctors. So there's a lack of opportunity for education in that sense.

    Another possibility is that the legal structures that have built up around the other professions (assuming you can call software a profession) virtually mandate specialization, so that risks can be controlled and liability assigned: you're just not allowed to ask an electrical engineer to build a bridge. Until legal needs enforce structure upon software producers and their profession, software producers won't admit that there are professional categories that need to be maintained... at least, not when such an admission can lock you out of that next juicy contract or product you're aiming for...

    Yet another possibility might have to do with the general nature of the people involved in software production: they're young, and likely introverted. They don't handle human-human confrontation well. So, when your boss cows you into being X for a day, then you try to be X, even when you're really Y. The bosses of the world, as all us Dilbert readers know, are thick as bricks and therefore a) come up with dumb requests, and b) don't know any better from their own personal experience. If the "software guy" can't point out the error in their thinking, then why should anyone expect them to figure it out on their own?

    Cheers,
    Richard

  247. It is all three by PhiznTRG · · Score: 1
    Though the article had very little about poor software and the reasons for it, there was one point that it came up:

    Regardless of the approach, however, Lanier says his purpose in writing essays such as the "One Half of a Manifesto" is to force engineers in both the proprietary and open source development camps to recognize that the issue of software quality has taken a back seat during the past decade. Whether this is due to sheer laziness on the part of programmers in response to faster and cheaper hardware systems or simply a fundamental blind spot in the software design community, Lanier isn't sure.

    I say that the problem is all three combined.

    One problem I did have with the article is the part about software being expression. Stop this nonsense. Software is a tool, a means to get something else done. Sure, there are some cases (such as the Perl Poetry) that are truly expressions but for the most part the software is written, not for the sake of writing software, but to get something else done. When we realize that the point is not writing the software but getting the work done, efficiently and without problem, then we will be so much closer to where we need to be that we will stop seeing articles like this.

  248. Headline: command line shell != unix by Anonymous Coward · · Score: 2
    The "unix" he appears to hate is actually whatever login shell he ran, be it sh, csh, ksh or whatever. You can't judge the OS by that. The OS provides a rudimentary set of system services as any OS should do. But the user necer sees it unless he writes code.

    Look at Bob vs. Windows 3.11 vs. DOS 6.22. All are interfaces to the same thing (DOS OS services). They interact with the user in totally different ways. The user cannot possibly judge the real OS inside because he never sees it.

    If someone built OpenBob for Linux with click and go for various major apps (WP, spreadsheet, draw prog, etc.), that people like the author would hail it as great.

    And while Linux is often slammed for its difficult installation process, who, among those complaining, actually installed windows on their PC? It came pre installed fer crying out loud? You're comparing pre-installed WinOS to the Linux installation process? That's clueless.

  249. Re:If only project management was an honourable ar by lizrd · · Score: 2
    The ctrl+alt+bksp combo is what I usually use to recover from an X crash. However, X does grab the keyboard and mouse interface and a sufficiently violent crash can render them useless.

    I'm not going to disagree with you that FAT is a really bad filesystem, but it is a little more tolerant of improper unmounting than ext2. The obvious solution is to use ReiserFS. It seems to be quite good at recovering from improper unmounting and resumes normal operation very quickly upon reboot. I had the opportunity to try this out last week when I accidently pulled the wrong cord out behind my desk.
    _____________

    --
    I don't want free as in beer. I just want free beer.
  250. Open Source Sucks by Anonymous Coward · · Score: 1

    ...I just have to ask this question... What do you guys do with all this "open software". Doesn't it suck just as much, if not more than commercial offerings? I understand the hacker appeal, and the appeal of tinkering with the software your machine is running. And I understand the appeal of the underdog, and getting free stuff. But seriously, what good is it? What do you do with it? I guess that has always been an issue for me -- the hacker that I am -- just what good are these computers anyway? I like using them to play on the internet, and to play games, and occasional intellectual pursuits (ie, playing with Fractint), and I get paid for hacking at work, but what advantage does some "open source" solution have over, say, Microsoft's? You'd have to be a total idiot, vision clouded by "open source" narcotics, to not agree Microsoft's OS work fine. You complain about crashes? Well, show me something open sourced, with same functionality, that doesn't crash, or that even exists? Can't do that, can you? In my mind the only enticing open source think would be the Linux/Apache combination... a good server on a good OS, good track record. But seriously, why would I want Linux on my desktop? I make a living as a Windows developer; the complexity of windows attracts me as a hacker, and the complexity will ensure my employment for a long time. But, again, no one in their right mind would claim Unix/Linux/BSD are "simpler" than Windows. You've got to be kidding -- Unix puts the complexity up-front and just doesn't have a much crap as Windows. Windows hides the complexity and probably has more crap than you need. Caving into corporate interests isn't cool, either, but if what you build isn't useful, then why bother. Don't get me wrong - I use and love open source code like expat, zlib, and blowfish.

  251. the problem with open-source user feedback by Zignal11 · · Score: 1
    you won't have users that demand quality until the software can be demonstrated to have sufficient quality - to be usable on a daily basis - to begin with. until then, those demanding users (i'm not talking about benevolent fellow programmers, i'm talking about real lusers) will avoid your software like the plague.

    i know i do.

  252. unbiased testing? by jafac · · Score: 2

    There is no such thing as unbiased testing.

    Let engineering test a product, and they make sure that it has no serious functional flaws.

    Let Support test a product, and they make sure that there are no issues that could generate a phone call (personally, they have the best stake, but I'm a support person).

    Let marketing test a product, and they'll make sure that all the splash screens and icons look pretty.

    Let customers test a product, and they'll make sure it gets the job done.

    NONE of these groups is qualified to fully test and debug a piece of software to what you'd consider traditional "engineering" standards. The closest you can come is if you get them all together to design a standard suite of tests to run a product through. With all of these subgroups having a stake in software design, all pulling in different directions, it's no wonder everything's coming apart at the seams.

    --

    These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  253. Re:Why does it suck? by SlaterSan · · Score: 1

    This may be true if most designers WERE approaching software issuses with a real a plan. For the most part software is produced just to "scratch an itch". While this is a great way of getting more programs and programmers, it doesn't improve the quality of what is out there.

  254. software will still suck until ... by Alien54 · · Score: 2
    I can remember when Apple first came out with a computer that had some sort of speech capability built into it. I can remember this couple looking like children who had candy taken from them when they were told that "it was not ready for Star Trek" yet.

    Bottomline, when it reaches some sort of Uber Utopian Ideal(tm), where there is no learning curve, when there is no effort needed to use it, when it does it all for you and anticipates your every need (including *those* needs too), then maybe software will not suck.

    this sortof goes against the main premise of what it means to be a geeks or something.

    It is a road to laziness and slavery of the mind due to incredible mental limpness. (We will do all of your thinking for you, etc.)

    But it seem that this is something that certain Large Software Companies(tm) are aiming for.

    --
    "It is a greater offense to steal men's labor, than their clothes"
  255. Hardware and software cannot be compared! by NSParadox · · Score: 1

    It's funny that the author wants to somehow modify the concept of software so that not all current programs or utilities are considered software, and yet he keeps on comparing hardware to software, two COMPLETELY different things.

    Hardware HAS to be re-analyzed and re-engineered because hardware exists in a very real world of electron migration, clock skew, and timing delays as parasitic resistors and capacitors hold back electrons from flying through pathways we construct using circuits, and these electrons occasionally jump out of the circuit because we think of the entire circuit as behaving in a linear fashion when it really behaves in a quantum fashion. Talk about poor engineering! (Note: this is sarcasm. I'm merely pointing out that hardware isn't as fail-proof as we all think). Also, hardware implements only the most basic of functionality. In the time it takes a coder to make an implementation of the RSA algorithm, a hardware engineer might only be able to make a very primitive implementation of a 32-bit Arithmetic Logic Unit that can now add or apply logical operations to numbers. That takes a long time to do a lot less, and is far easier to test. Some things need to be developed quickly, and are complicated nature.

    A lot of the stuff in hardware can be logically proven correct, and a lot of software simply cannot. Even then, hardware still runs in to unforseen failures. I can't remember if it was a poster or the author, but someone stated that hardware engineers are less prone to mistakes because they know that once their circuit is printed, it's all over. That's not entirely true. Many complex microprocessors and other pieces of hardware include BIOS functionality that can be updated via flashing. Who knows if Intel could have ever gotten the Pentium 3 to perform with as few errors as it has without microcode updates.

    Sorry, but the author just doesn't convince me about anything here. I believe both the quality of hardware and software have greatly improved. Nowadays, we have a Microsoft operating system that doesn't crash all that much (Win2K), an accessible UNIX (Linux with KDE or GNOME), applications I can teach my mother how to use easily (Microsoft Hotmail, Microsoft Word, Solitaire), and development tools that are far superior to what we had in the 1970's that allow us to make more error-free code. Sounds like progress to be, and it doesn't sound like "suckage". NSParadox

    --
    Unless mankind redesigns itself .... robots will take over our world. (Stephen Hawking)
  256. Was Jaron's beef with OS OSes? by user+flynn · · Score: 1

    (Open Source Operating Systems).

    He seemed to have something against open source programmings lack of standards. I believe Lanier would like a specific programming language standard set, so that all code could be created in a uniform manner (All code being written in C++ for example). His desire seems to be for an overlanguage that sums up the abilities of all of the other languages out there (java/C++/Fortran/HTML...) in an artistic poetic way(he did say literature :).

    Another thing I noticed about the writing on the Edge (http://www.edge.org I think) was a focus on the evolutionary aspect of software/ the global consciousness (internet connectivity)/ hardware. This lead me to believe he also desires people to specialize into certain fields of software design such as: graphics driver specialist, OS directory structure specialist, cool easter egg in excel that looks like spy hunter specialist....

    We are supposed to break up software R&D the same way Science branched out into different areas (physics/chemistry-genetics/ biology).

    Software could branch eventually - every branch of every field of thought becomes more specialized as time goes on.

    --
    In the distance you hear an ominous moo.
  257. Why does it suck? by Greyfox · · Score: 2
    I get the impression dude thinks software sucks because it doesn't work the way he thinks software should work. It's not that it's badly designed or poorly tested or any of the reasons software actually does suck. All the software in the world could be perfectly designed and implemented and he'd still say it sucks. It's not a quality issue, it's a behavior issue.

    I've read a lot of similar rants by a lot of similar VR Hippies in the past and I get the feeling that they want the computer to magically do all their work for them. No matter how advanced this field becomes, I can't ever see that happening, so the VR Whiners will continue to whine about how much software sucks, no matter how much the development process and the designes themselves improve.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  258. I disagree. by Junta · · Score: 1

    Software engineering is not going downhill. It is true that many many open source projects do not undergo sufficient testing, but the biggest ones do. But this is not the point I think he has completely off base..
    His statement that 30-year old technology has no place in modern software engineering is a really stupid generalization. Akin to saying that wheels are stupid because they have been around so long with little different about them.
    Linux/FreeBSD/Solaris demonstrate that the market is quite willing to work with UNIX systems, and with projects like GNOME and KDE, more and more of what he considers obscure and user unfriendly are hidden from view. That is not to say that it is to the point of hiding things as much as windows, but it is rapidly getting there.
    For now, a clear niche for UNIX systems is for people who want more power and flexibility with their systems and know what they are doing. Windows UI does make things easier for the typical user, but it also restricts in many ways power users who want to do some really interesting stuff. NT/2000 go a way to correct this, but if you are UNIX savy, it is hard to give up that power and flexibility, and it is because of this that UNIX is still around today, it is a proven technology.

    --
    XML is like violence. If it doesn't solve the problem, use more.