Why Buggy Software Gets Shipped 422
astonishedelf writes to mention an article in the Guardian about the hard reality of why buggy code is sold on retail shelves. From the article: "The world's six billion people can be divided into two groups: group one, who know why every good software company ships products with known bugs; and group two, who don't. Those in group 1 tend to forget what life was like before our youthful optimism was spoiled by reality. Sometimes we encounter a person in group two, a new hire on the team or a customer, who is shocked that any software company would ship a product before every last bug is fixed. Every time Microsoft releases a version of Windows, stories are written about how the open bug count is a five-digit number. People in group two find that interesting. But if you are a software developer, you need to get into group one, where I am."
Windows Software Shop :-) (Score:5, Insightful)
Anyway, I do agree with the author for the most part (its all pretty 101 risk assessment stuff). It is inevitable that software will have bugs in it (especially commercial software shipped to a schedule). This is not really news tho'.
What I would like to see is some vendor honesty. How about making a list of known bugs available to your customer prior to purchase? (I know, I know, fairly warning a customer is madness, etc etc).
Re:Windows Software Shop :-) (Score:3, Interesting)
Re:Windows Software Shop :-) (Score:4, Insightful)
Nonsense. Every major open source project has a complete list of bugs for all versions of their product for all to see, usually right on their Web site, which you can read prior to downloading. For instance, if you click on the Release Notes for Firefox, linked to from the front page [getfirefox.com], you'll see not only a list of known issues in the current production release, but there's a link to their Bugzilla database so that you can read bugs that have recently been filed against it.
If people would really not buy a software product if they knew about all of it's bugs, then why would they download and install any open source applications? Because they don't have pay for them? Just because you don't pay for a piece of software, that doesn't mean it costs the user $0 to install and use.
Re:Windows Software Shop :-) (Score:3, Funny)
And yet you can't work a 'preview' button? :)
Re:Windows Software Shop :-) (Score:2, Interesting)
It is NOT inevitable that software will have bugs in it.
By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.
This whole fucking "tinkerer" mentality that self important developer assholes have foistered on the rest of mankind, is no different from the self important tinkerer mentality that steam engineers foistered in the 1800's.
Take solace in the fact that the software development world w
Re:Windows Software Shop :-) (Score:2, Insightful)
It is the job of the engineer (whether for bridges or software) to make sure that the mistakes that ARE made are not the critical ones - the ones that make the bridge collapse or the software crash.
Until the human race as a whole attains God-hood (wh
Re:Windows Software Shop :-) (Score:3, Insightful)
That whole article sounds more like "We, in group one, are the cool kids. All the cool kids accept bugs. Why aren't you a cool kid?" It is loaded with the underlying tone of "I'm smarter than you because I accept bugs as normal"
After the condescending beginning, which assumes that every single person in the world has an opinion on software bugs, the loser then goes on to make excuses.
"Bugs are inevitable, so w
Re:Windows Software Shop :-) (Score:5, Insightful)
I didn't say all software will have major bugs that lead inevitabley to the collapse of the software. Just that all software will have bugs.
All bridges have defects too you know - the suspension cables will be slightly uneven, or some features of the fascade will be unsymetrical. Bridge engineers make damn sure there are no structual problems that will lead to collapse (but even they fail sometimes).
I wish software engineers would be more like bridge engineers as well, but the cost of failure (and the cost of fixing in the event of a failure) are so different between bridges & software that its not likely to change.
Re:Windows Software Shop :-) (Score:3, Funny)
According to TFA, in their software shop failure isn't an option there either.
It's standard equipment.
Buh dum ching!
Re:Windows Software Shop :-) (Score:3, Interesting)
What you Want vs Ask For; and hopes for the future (Score:3, Insightful)
I share your vision of hope for the future. But I would first like to digress for a moment on your statement before fleshing out how I DO agree with you, too. (BTW it is currently 4 AM so I apologize if this rambles a bit. I've tried to go back and edit it to make it clearer, but I seem to keep making mistakes. That in itself seem
Foolishness (Score:5, Insightful)
Normally, those bugs have low Severity or Frequency (or both). Sometimes they have catastrophic severity.
Did you know that the twin towers were built to withstand a direct impact from a 707? [punjabilok.com]
Bugs are a fact of life. They follow from the mantra 'nothing is perfect.'
Re:Foolishness (Score:2)
In three different positions where I've written software for internal corporate consumption, I've never released code into production with known defects, and I don't see why the fact that a program happens to be shrinkwrapped should make any difference. Our stuff is millions of LOC also, and I'll bet our development times are shorter than most shrinkwrapped software vendors.
A lot of it comes down to (1) experience
Re:Foolishness (Score:3, Insightful)
This is directly analogous to the discussion of bug severity in the article. The engineers decided that the severity / frequency of risk coupled with the cost of further upgrades did not warrant the improvements. Either they underestimated the severity/frequency
Re:Windows Software Shop :-) (Score:2)
Yes, for any non-trivial software system, it is inevitable. How would you go about testing every-single logic path within a large system? There are tools that do a good job at estimating test-coverage, but it can only be an estimate. For example, if you have a loop that contains even one simple
Re:Windows Software Shop :-) (Score:2)
Re:Windows Software Shop :-) (Score:3, Insightful)
Re: Vendor honesty (Score:5, Funny)
Re: Vendor honesty (Score:2)
What do you mean? Release a list of bugs in my next post prior to posting it?
I'm not a software vendor!
Vendor honesty doesn't pay... (Score:2)
Let us suppose that WidgetWorx version 1.1 gets shipped. Inside the package is a list that says, "at the time of shipment, these are known bugs/shortcomings/issues."
An ambulance service that uses WidgetWorx for their dispatching service, and something goes wrong that leads to a patient dying. Said patient's estate could hire a savvy lawyer who would make a wrongful death claim against the ambulance service for "using a software package with
Re:Vendor honesty doesn't pay... (Score:2)
I'm not sure either of your legal premises hold up.
Firstly, as soon as the ambulance services comes under fire for using a version of WidgetWorx with known problems, they could line up a dozen expert witnesses to testify that pretty much all software has bugs, and it takes someone of the calibre of Don Knuth to produce a complex program that (probably) doesn't (any more). It is therefore unrealistic to expect that any software wouldn't have bugs, even if they weren't disclosed ahead of time.
Secondly, if
Re:Vendor honesty doesn't pay... (Score:2)
What they didn't do was purchase the X-Widget product from a rival developer, which was released with only one page of known bugs, none of which had any impact on their daily ambulance operations. That's clearly negligent and shows that the ambulance service doesn't care about their clients lives at all.
The
Yeah how about those examples? (Score:3, Insightful)
Read: we got embraced and extended all to hell. What do to? Blame SQL! That's right, the language itself! It "isn't portable". Also blame users! "People who refuse to use SQL Server can't use Vault."
And here's some typical MS morality for you: "I'd probably even patent this algorithm even though, in principle, I believe software patents are fundamentally evil."
I don't expect bug-free software of any real
The numbers are too big (Score:3, Insightful)
The problem is with a number that large, no matter how small the proportion is to code size, the backlash would be huge. No potential customer could hear that number and then actually want to buy a copy. I believe they should disclose as much information as possible. But from their perspec
Re:Windows Software Shop :-) (Score:5, Insightful)
There are several reasons not to do this. Not the least of which is simply that most customers don't want to know what's going on inside the application. They want to click "Button A" and have "Box X" pop up and start flashing - or whatever. They don't know that 300 lines of code went into making that happen and they're fine with not knowing that. They certainly don't want to be forced to actually understand what each of those 300 lines of code are doing. Try to explain it to them and watch their eyes glaze over in a hurry. You can try to simplify the explanation for them, but it'll never be enough because they can't grasp the problem without understanding what goes in to making it work; a necessity in understanding why it doesn't.
The point is that when you get into listing bugs, you have a number of caveats. First of all, in their eyes, you're telling them that the application you're selling them is broken. Sure, those bugs may never actually affect them. They may even be in parts of the code that aren't even used yet because it's part of a feature not currectly activated. But hey, you're selling them a broken program. Remember the Pentium floating point fiasco Intel had to suffer through? What was wrong with their processor? Nothing that isn't wrong with anything ever manufaturered: minor defects that rarely or never manifest under normal operating conditions. What happened when the news got out about the floating point bug that didn't affect more than a hundreth of a percent of buyers - if that? The 'public' went ballistic about it and Intel was eventually forced to do a recall of CPUs that were perfectly functional. Nevermind the fact that AMD and Intel routinely publish a long (and growing) list of 'errata' for their processors that are chock full of bugs. The moment the public got news of a single errata (which, again, didn't even affect them), they demanded replacement "working" products. Are you, as a company, going to expose yourself to that kind of liability?
Basically, the customer doesn't understand the inner workings of your application, doesn't want to understand the inner workings of your application, and if you try to make them understand anyway, bad things will likely happen to you. People can handle unexpected behaviors (bugs) when they're discovered and a promise is made to make it right (patch, updates, etc). But if/when they get wind that you knew the bug was there, and that there were others? That's a receipe for disaster.
What geeks/coders need to understand is that we make up a vastly small minority of software users. Unless and until a vendor is selling products to, and only to those who are informed, knowledgable, and intelligent about computer code, you will never see a list of known bugs right on the box. If it's there at all, it'll be made as obscure as possible so that your average Joe can't find it. Why? Because average Joe will go nuts regardless of how inconsequential the bug is, or how much it would push back the release of the product to stamp out all the (known) bugs.
Personally, I don't blame developers and vendors one bit for obscuring the known problems. When I run into a bug in something like MySQL or PHP, I can find out about it, whereas slightly-above-average Joe (beginner PHP page creator) would have a heck of a time. I find that to be ideal, as I can find the information I need and Joe's not taking up the vendor/developer's valuable time whining about 10,000 bugs he'll never see in his life.
Not all companies release software with KNOWN bugs (Score:3, Informative)
Customers were also made aware of the outstanding issues, but in our case all customers also had the source code to the application (mainframe software in
Re:Windows Software Shop :-) (Score:5, Insightful)
"All the reasons are tied up in one truth: every time you fix a bug, you risk introducing another. Don't we all start out with the belief that software only gets better as we work on it?"
Holy shit! I can't imagine being on a team with that attitude? Do you people write tests? There are dependable ways of insuring that changes don't re-introduce old bugs, and if you can't fix one thing without causing a seemingly unrelated problem, you're working with some pretty smelly code.
There's definitely truth in the statement that the need to use software and the need to eliminate bugs can be at odds with each other once the bugcount is low enough that the product is usable. But... isn't that obvious? How many open source projects out there (without version numbers approaching a known irrational number that is...) can really brag of being bug free?
BUT this article is a good reminder of why I'm glad the boxed-software days are coming to a close. Software should either be written with a client present or by people who intend on using the product themselves. Trying to come up with a featureset for some vague "target market" is a horrbile way to write software. Software is unique because it is both engineering and design at every phase of its creation... and without set feature requirements and feedback, there's really no way to know if what you're making is well engineered or not. Anyway, don't work in a closedsource / many customers environment... it's bad for the brain.
Re:Windows Software Shop :-) (Score:3, Insightful)
You're new to this aren't you.
If you can find a way to PROOVE that a less than trivial fix hasn't broken something else, you'd be too busy sailing the world in a multi million dollar cruiser to post to
And lo, there was much rebuking (Score:3, Insightful)
And do we really need that much whitespace [linuxvirus.net] on a news page? I know about that whole '10 words per line' usability mantra, but it looks fucking ridiculous. Why can't all the other website owners just think exactly like me?
Wow, look at all that rebuking. Do I win Slashdot?
(IAJAFSS (I Am Just Another Fucking Smartass Student))
Re:And lo, there was much rebuking (Score:2)
Re:And lo, there was much rebuking (Score:2)
A separate question (Score:5, Insightful)
The idea of QC/testing/beta/whatever the heck you want to call it is that you get as many bugs as you can fix while accepting the ones that will remain behind. That's absolutely correct. However, there are companies - like Microsoft - that are notorious for either being sloppy and not getting bugs they should have, or just straight up not caring at all and rushing a product to market that legitimately shouldn't be there.
The argument can even be extended to good coding practices, like worrying about security fron start to finish rather than after you've entered beta (another well known Microsoft flaw, though they're getting better at it). That reduces the number of bugs to begin with, which in turn gives a better product.
Re:A separate question (Score:3, Insightful)
Anyway, yes, most people don't care about software, but you also have to look at what the application is trying to do and what you need it to do.
1) Rules of thumb: The last 50% of a project is spent taking it from 95% to 100% (or really 99% as the case may be...)
2) Is the software used for medica
Re:A separate question (Score:2)
But the consumers speaking with their wallets doesn't really tell us very much in the software case. There are far more productive and reliable ways to develop software than those typically used in the mainstream. However, until the mainstream catches up and lots of developers are familiar with better techniques and using better tools, all the big name commercial offerings will be as bad as each other, so there's not much for the consumer to vote between.
Here's an example: I reported a way to crash Paint
Member of Group 1.5 Confused (Score:2, Funny)
Re:Member of Group 1.5 Confused (Score:2)
No idea (Score:4, Funny)
Buggy code is sold because it is demanded (Score:2, Insightful)
Re:Buggy code is sold because it is demanded (Score:5, Informative)
In a previous life I was in charge of software development for a smallish company whose business was scientific software and systems. To my repeated horror, the CEO and the Sales & Marketing VP would get together and decree - perhaps for reasons that were very compelling to them - that major software packages would be released to customers with no testing whatsoever. Stuff went straight from the compiler to the customer, sometimes even without a cursory walkthrough of functionality. For objecting, we, the software people, were branded as troublemakers and criticized for not being "team players". Once labeled in that way, I would be pretty much ignored any time I had to report that a new product or an update was not ready to ship. Needless to say, I left that company in a hail of bullets.
To this day, I still laugh when I hear people say that Open Source software can never measure up to "commercial standards". Depends on whose commercial standards you're talking about...
The Reason: PHBs (Score:4, Interesting)
Re:The Reason: PHBs (Score:4, Interesting)
That's always fun. When I was the lead tester for DBZ: Buu's Fury GBA at Atari, the producer revised the schedule without informing us and I didn't find out until two months after that happened. On top of that, Nintendo insisted that we put in wireless multiplayer capability because the title was coming out the same time as the new wireless adapter was being released. That was a disaster in the making since the wireless API was unproven (even Nintendo had a hard time with it), we didn't get the wireless adapters until a few weeks before we were supposed to code release, and I was planning to leave the company because my boss thought I wasn't working hard enough (I worked 28 days straight before I left, BTW).
I made extensive arrangements to be the fall guy if this blew up after I was gone so my team wouldn't get fired in my absence. Since I was leaving the video game industry, I wasn't concern about my reputation if I had to take the blame. However, everything turned out as I expected. Nintendo rejected the title for wireless multiplayer bugs, the wireless capability was pulled from the US version (the European version shipped with it a month after the US release), and no one on my team was fired. Well, not immediately. Within a year after I was gone, all my team members were picked off one by one even though they were the most experienced people in the department. I guess my boss found out I reported him to HR for an ethical violation.
In my experience, here's the reason (Score:3, Insightful)
Managers.
Specifically, managers who don't know enough about the project (whatever it may be) and make unreasonable promises to their superiors about shipping dates. It seems that the way most businesses are set up reward managers who complete projects on time or early, rather than the quality of the product. As a result, managers tend to rush development teams through their tasks and the end result is a buggy release. And a manager with a bonus check.
If software shops could change their focus to creating a better release product but with a flexible time schedule...say for instance, rewarding managers for fewer bug reports and service calls rather than completion dates, you'd have an entirely different picture.
Nature of Competition (Score:5, Insightful)
Regardless of the nature of the software development team, the nature of competition remains the same.
Stagnation is costly - delaying a product launch drives people to the alternatives (both due to the alternatives updating faster, and due to the lack of progress seen by the outside world).
Of course, buggy software is costly in terms of reputation, as well, so the end question becomes at what point will the delaying of the release cost us more market share then the remaining bugs will.
Unfortunate from a purists eyes, but it's just the way things go.
Software can be shipped without known bugs (Score:2)
Re:Software can be shipped without known bugs (Score:2)
And there are open source versions [sf.net] of those code analysis tools, too!
bugs, so what? (Score:2, Insightful)
So what's the big deal?
I understand shipping something like bad tires that will eventually kill people should not be done, but anything that does not cause harm or major finantial distress should just be dealt with during the normal lifetime of a product.
I am an embedded systems developer. We take care of the functionality problems before shipping and work on the corner cases as we move along.
Th
Re:bugs, so what? (Score:5, Interesting)
And if our IT staff had the same intelligence, competence, and vision as our management team, we'd kill over 10,000 people a week.
Re:bugs, so what? (Score:2)
Are you saying there aren't any mistakes in the data you publish?
Re:bugs, so what? (Score:3, Informative)
Re:bugs, so what? (Score:2)
The author of the article... (Score:2)
I don't care about quirks/annoyances. (Score:2)
If you knowingly ship code that causes data loss, you are morally responsible for that loss, especially if you don't warn anyone about it.
Disabling that dysfunctionality is always preferable to destroying customers' work.
Real reason (Score:5, Insightful)
In those cases where it does; e.g. medical/aviation software, usually embedded people take the time. If aviation software designers cut the same corners (w.r.t. bugs vs. features) that office software designers do, planes would fall out of the air and people would die. So they write well engineered software, in well engineered, fault tolerant languages (lika Ada). (Yes, yes, Ariane, but thats the exception that proves the rule)
The real reason buggy software is shipped, is because buggy software is accepted by the market, and people will keep buying it, and continue to roll their eyes when it crashes, because they're completely inured to it, and many of them have reached the conclusion that its literally impossible to write robust, stable software.
It's not, but the profit margins are narrow, and no-one seems to mind (or rather they mind, but keep forking over their money anyway). So no-one bothers to.
Face if folks, we're enablers.
Re:Real reason (Score:3, Insightful)
The problem is, computers are so useful, that customers would (for now) rather put up with bugs than do without. Just as in the early days of the automobile, people would put up with the danger of having the hand-crank break your arm if the car backfired while you started it. Cars were new and had b
It's the three M's (Score:2, Interesting)
Articles like these make me sad.. (Score:2)
Luckily Ric's wikipedia article suggests a textual equivalent..
"Determining which bugs to fix should take into account some manner of cost-benefit analysis?! Thank you, Captain Obvious!"
Five digit bugs are wrong for what reason...? (Score:2)
Re:Five digit bugs are wrong for what reason...? (Score:2)
If you find anything good, post it to your blog
Known undisclosed broken features (Score:2)
because we want it NOW! (Score:5, Insightful)
Product ships late because of bug fixes. Why is it taking so long.
Product ships on time with bugs. Why didn't you fix the bugs before shipping.
You just can't win
Profitability Uber Alles ... (Score:2)
In the Free Software/Open Source world, that excuse doesn't exist, so what is it? Laziness? Hubris? Apathy?
Re:Profitability Uber Alles ... (Score:2)
Re:Profitability Uber Alles ... (Score:2)
Laziness? Hubris? Apathy?
The Holy Trinity is Laziness, Hubris, and Impatience. No patch-pumpkin pie for you.
All kidding aside, though, impatience and apathy are two sides of the same coin. If you're releasing software out of impatience, you typically don't care about the consequences of not "finishing" the job, as if a software project is ever truly finished.
If at first.... (Score:2)
My experience (Score:4, Insightful)
Now, as to why bugs don't get quashed quickly:
I see each of these every day!
Re:My experience (Score:4, Funny)
Hang on...I'm just trying to spot the difference between them and about half the programmers I've ever worked with...
Because they can (Score:2)
Ideally they do it because the trade offs are acceptable.
In software there is some that is very buggy, some that is nearly bug free. This is mostly driven by what the customer is willing to tolerate.
I don't think this is what he meant but... (Score:2)
So, if all the known bugs were fixed, then the product would ship but be full of surprises (since we assume it has bugs we don't know about).
But if you don't fix the known bugs... the product would ship full of bugs and surprises?
hmmm...
Real Reason: Bad Design Leads To Unfixed Bugs (Score:2)
For example, Mr. Sink's two bugs that he cited show two things:
1. Improper design of the business logic to database connection by locking themselves into a closed-source, expensive, proprietary database system and usi
The problem's not that there's always bugs... (Score:2)
Would you ship a doorknob for an outside door that could have the lock so easily breached that it's as simple a matter as inserting a slot screwdriver into the keyhole and turning?
That's what gets shipped by many companies- those sorts of flaws.
And it's the mentality of the first group (The "there's always going to be bugs" crowd he's talking about..) that causes the stuff to ship that way. Sure, there's going to always be
Re:The problem's not that there's always bugs... (Score:2)
Bad example. The house I bought last year came with high-end doorknob hardware that failed a few months after I moved in. The knob was probably a couple years old, and I had no receipt for it, but I figured I'd call the manufacturer to see if they'd replace the broken part. They said that there was a recall of that part due to
How about Group 3? (Score:4, Interesting)
The personal computer software culture in the United States is much like that of automakers in the United States circa the sixties, who insisted that the low quality of U. S. autos was the result of the best and wisest judgement... and that public toleration of low quality, as reflected in good sales and profits, validated their judgement.
Good sales and high profits, that is, until overseas competitors began to ship high-quality cars to the U. S.
Gears of War (Score:2, Interesting)
The problem is that of perception (Score:2)
There's a logic error going on (Score:2)
Yes, products should ship with bugs. Creating a bug free product isn't worth the time/investment. If you get 95% of the way to done, and the remaining 5% is going to occupy 70% of your budget, don't bother.
At the same time, software engineering is NOT more sophsticated than, say, aerosp
The ONLY reason companies ship buggy software (Score:2)
Do you remember back to a time when virtually NO software / games had major bugs? Yeah, that's because patching software by snail mail with floppy discs was a costly and unpractical nightmare, so you had to get it right the FIRST time.
It's called Software Engineering for a reason (Score:3)
One thing which immediately struck me was that the author seems unaware of a key software engineering principle: Reducing design complexity reduces the number and severity of bugs. By now, we all know that there are tradeoffs between complexity, time, and features. However, all other things being equal, some people and organizations consistently produce better software than others. Consider, for example, Linux and Windows. The key reason Linux is more stable and more reliable than Windows is that the process which produced Linux is inherently better at catching and correcting flaws than the one used to produce Windows. Anyone who has ever had to commit a patch to the kernel team knows that design changes are thoroughly vetted before being accepted into the source tree.
Even I have completed some rather large projects without a producing a single bug. It wasn't a matter of coding skill, but rather, that I designed the software such that:
Even very complex software can be written virtually bug free if good software engineering principles are followed. Something as simple as adhering to the Unix design principles [faqs.org] can drastically reduce the number of bugs in a shipping application.
Generally speaking, the old adage about "failing to plan is planning to fail" holds true with software as well. The core idea behind software engineering is that quality is improved not by doing more testing, but rather by improving the process by which software is written. Consider the following two, widely used approaches to software:
With the second model, changing requirements do not require a complete rewrite or complicated analysis of the entire system. It is a flexible model. The key problems is that it is a hard sell - the design requirements phase takes more time, but it ultimately provides the flexibility that management and marketing require.
One of these models addresses the fact that requirements frequently change; the other does not. One of these models takes into account the fact that complexity is hard for a single person to manage, and one does not. One model limits the amount of damage that a single, bad coder can inflict, and one does not.
Yes, we may not fix every bug, but we can at least use sound design processes to minimize the impact of bugs. BTW, the fact that Source Gear can't interoperate with other databases is not merely a bug, but a design flaw. Had it been properly designed, using a
Re:Welcome to Group One (Score:3, Funny)
> Theoretically, there is no language that is more or less prone to bugs than any > other language as understood in Turing Completeness. Without delving too much
> into this, it simply states that all languages emulate a Turing machine to some
> degree and therefore should be capable of everything a Turing machine is capable
> of (although I don't think this says anything about time/space efficiency).
If you understood Turing Completeness you
Re:Welcome to Group One (Score:2)
I have a theory that most software written today is written by human beings, or is generated by computers in a very predictable and straightforward manner given human input. Actually, this isn't a theory, it's an empirical observation, and I doubt many people would contest its truth. There are differences in debugging languages using different programming paradigms. Non-monad
Re:Welcome to Group One (Score:2)
You can't? Gee -- isn't that a bug in the program, open source or not?
Re:Welcome to Group One (Score:2)
Hint: it doesn't
Re:Welcome to Group One (Score:3, Funny)
ON, I did that. Where's my damn easter egg?
MS Word Easter Egg (Score:2)
Re:MS Word Easter Egg (Score:3, Funny)
You bastard! When I typed this, my PC froze! But since it's also a server, it rebooted itself, mailed a Nigerian scammer my home address, started a DDOS on the local authorities and blew itself up, taking half of the data center along with it. When I came home, the Nigerian scammer had raped the dog and the cable guy from the ADSL company who had showed up at my house. When I told my wife, she replied that she didn't care since the le
Re:MS Word Easter Egg (Score:5, Funny)
At least that Nigerian scammer doesn't have your address anymore...
Re:Welcome to Group One (Score:5, Insightful)
Re:Welcome to Group One (Score:5, Informative)
Re:I Thought It Was Relevant (Score:5, Insightful)
I've probably spent about equal time writing C and writing in higher level languages, and I can promise that I make fewer errors in higher level languages, doing equal tasks. I think anyone with a lot of code under their belts can make similar statements. The closer to the machine a language makes you work, the harder it is to keep higher level details in the back of your head. In a high-level language, you're much less likely to make a low-level error (and any you make will almost certainly be caught by a warnings mode on the compiler, and this leaves you to keep more of your neurons working on, for instance, keeping your database and its wrapper classes working together correctly -- a task that is, perhaps, a simple afternoon's work in Python, Perl, Ruby etc. two days in C# or Java, and a week of hair-pulling in C... and well... I doubt such a thing has ever been done in assembler.
Anyway, drop the semantic B.S. this is a debate about practicalities.
Turing machines (Score:3, Informative)
Re:I Thought It Was Relevant (Score:4, Insightful)
Why do you dismiss a complaint which speaks to the very heart of the problem? A large class of bugs simply would not exist were a different language used. This is not pie in the sky stuff; it's a real phenomenon.
If one language is less error-prone than another, then an application written in that language will have less bugs.
If an error-prone language is being used to write software, then this surely has to be a reason why buggy software gets shipped. Why are you dismissing people who complain about error-prone languages?
Re:Welcome to Group One (Score:2)
Each bit can be on or off meaning that for the amount of memory my browser occupies now, there are 2^398163968 different possible states for any similar sized application running.
That's not true at all. First of all, a lot of that memory is the program itself, which isn't going to change, and some of it is probably your OS counting shared library code, which also isn't going to change. Even then, you can't take the variable segments of memory and assume that the application could by its own operation pot
Good Testing Strategy! (Score:2)
Are you implying that libraries are incapable of having bugs inside them? I find that particularly naïve in that a lot of the libraries I use are never introspected by myself. I assume they have the functionality of a tiny blurb written in English by the original author (who may or may not h
Re:Welcome to Group One (Score:2)
Just because the language is turing complete does not mean that it produces processor complete binaries. In Java there is no way to refer to an illegal address, so you can emulate a tape machine and you can produce a binary with gcj, but that binary w
Re:Welcome to Group One (Score:2)
For example
C++ programs tends to have a both a large number and a wide verity of pointer issues.
Java still has pointer issues but most of them are NULL pointer issues.
Granted they both have casting issues. However, for the same memory foot print you are not going to end up with the same number and type of bugs.
The real reason why mo
Re:Welcome to Group One (Score:2)
If we think about a binary executable program (machine language consisting of ones & zeros) then we must recognize that the program's memory space has many many states. Open up your favorite word editor. Type in a sentence you're thinking about. Highlight part of it and bold it. Highlight a different part and hit escape seven times. Do you think that this scenario was tested?
At some point in Russia software was called "mathematical equ
Re:Welcome to Group One (Score:2)
Please do delve into this, because it makes no sense whatsoever to me. Turing Completeness has nothing to do wi
Re:This is why (Score:3, Funny)
Re:What a load of crap (Score:4, Interesting)
The real world is all about risk/benefit analysis. The only places that ship guaranteed bug-free code are those where human life is directly affected by the output of that code. For anything other than trivially simple systems the cost/benefit analysis will rule out formal code proof in anything but the most necessary of circumstances.
Re:What a load of crap (Score:2)
Mod Parent as Flamebait (Score:2)
As he or she is in group 2.
I remember attending a meeting at a conference held by one of my previous companies. The head of marketing had this to say. All software has bugs. If it doesn't have bugs, then it isn't software. So true.