Modern Computer Bugs, What Is The Cause?

In summary, the conversation discusses the issue of bugs in software and explores the potential causes, such as carelessness, poor development, and lack of knowledge. It also questions the responsibility of software makers and the inconvenience and potential financial burden for consumers. The conversation also touches on the use of updates and legal agreements in the software industry.
  • #1
ScienceQueries
11
0
I would like to know what causes bugs, on the software side. Bug was not at all the term used for software but over time, it has evolved into what I think is the result of carelessness, poor development and lack of knowledge. In modern computing, bugs occur in software all the time. But why does it happen? Do the makers not know what they are doing? I said makers because it all begins with an idea, a concept, upon which, everything rest is built. But when they build upon the idea, it's still said to be in the development phase. So why is it that even after release, there are bugs in all the software that exist today? There is a method to everything. Certain functions need to be performed and there are limited number of ways for that. So do the makers not care? I don't like to and should not have to pay for a broken piece of software which isn't stable. Some may say "don't like it, don't buy it" but that to me is like saying "stop living if you don't like something". When they make a product available to the public, they acknowledge the fact that they cannot dictate the terms regarding people's behavior towards their product. They provide updates but I should not have to go through the trouble to use something that I paid for from my or anyone's hard earned money. Just imagine what it would be like if they started charging for updates. They certainly can! And each and every single legal document you ever sign with these things in the form of agreement do have a clause where it says that by signing this document, you're agreeing to the changes that would be made in the future. So they don't have to give you the update of the document or agreement but they just do it as a notice just to inform you. You get a notification saying Google has made some changes. If you can't dismiss it, you can open it and simply close it without clicking the agree button and the notification will disappear. Does this mean you have accepted their updated terms? You accepted them the very first moment you started using their product. This is how snarky and slick these corporates are. DLCs are like updates, they could be the part of the original idea simply ripped off and stripped down for more profit.

You can buy a house or an apartment when the building is under construction but that does not mean they should deliver unfinished product. And if the construction is not strong and sturdy, the structure may collapse but if that happens, you go after the people involved. Nobody does that when it happens every day with one or the other software they have. They should make sure their program is stable and works without any errors before releasing it to the public.
 
Last edited:
Technology news on Phys.org
  • #2
ScienceQueries said:
I would like to know what causes bugs, on the software side. Bug was not at all the term used for software but over time, it has evolved into what I think is the result of carelessness, poor development and lack of knowledge. In modern computing, bugs occur in software all the time. But why does it happen? Do the makers not know what they are doing? I said makers because it all begins with an idea, a concept, upon which, everything rest is built. But when they build upon the idea, it's still said to be in the development phase. So why is it that even after release, there are bugs in all the software that exist today? There is a method to everything. Certain functions need to be performed and there are limited number of ways for that. So do the makers not care? I don't like to and should not have to pay for a broken piece of software which isn't stable. Some may say "don't like it, don't buy it" but that to me is like saying "stop living if you don't like something". When they make a product available to the public, they acknowledge the fact that they cannot dictate the terms regarding people's behavior towards their product. They provide updates but I should not have to go through the trouble to use something that I paid for from my or anyone's hard earned money. Just imagine what it would be like if they started charging for updates. They certainly can! And each and every single legal document you ever sign with these things in the form of agreement do have a clause where it says that by signing this document, you're agreeing to the changes that would be made in the future. So they don't have to give you the update of the document or agreement but they just do it as a notice just to inform you. You get a notification saying Google has made some changes. If you can't dismiss it, you can open it and simply close it without clicking the agree button and the notification will disappear. Does this mean you have accepted their updated terms? You accepted them the very first moment you started using their product. This is how snarky and slick these corporates are. DLCs are like updates, they could be the part of the original idea simply ripped off for more profit.

You can buy a house or an apartment when the building is under construction but that does not mean they should deliver unfinished product. And if the construction is not strong and sturdy, the structure may collapse but if that happens, you go after the people involved. Nobody does that when it happens every day with one or the other software they have. They should make sure their program is stable and works without any errors before releasing it to the public.
I consider written laws and regulations and constitutions to be software. We have been writing them a lot longer than computer software. They are just as buggy, perhaps more so, considering unintended consequences. Our remedies for buggy laws is worse than for buggy computers.

As long as humans are involved, we will have errors. Out remains to be seen if AI will make it better.

p.s. I once had a job where we had to make software to match tariffs (lawyer language) and make the tariffs match the software. It was eye opening. Like writing each program twice, once in computer language and again in lawyer language. But the double effort did improve quality.
 
  • #3
ScienceQueries said:
I would like to know what causes bugs, on the software side.

People not writing software correctly, not taking into account everything they were supposed to, developers not having all of the information they needed, the time they needed, the money the needed, related software/hardware changing or failing, and the list goes on and on.

Basically software developers fall prey to the same types of things that all people do when creating things. Just imagine everything that can go wrong with the production of a chair, a bag of chips, with construction, and you'll find analogous situations with software developers.

ScienceQueries said:
Bug was not at all the term used for software but over time, it has evolved into what I think is the result of carelessness, poor development and lack of knowledge.

The term 'bug' has been around since before the beginning of the computer. Per Thomas Edison in 1878:

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that "Bugs"—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

Computers have a particularly literal example of a bug dating back to 1946 when Grace Cooper Hopper discovered a moth in one of the relays of the Harvard Mark II.

ScienceQueries said:
In modern computing, bugs occur in software all the time. But why does it happen? Do the makers not know what they are doing?

Sometimes. But most modern software is extremely complex and it is simply impossible to develop perfect software. Especially in today's environment where software often outlasts hardware, making it difficult to predict and correct bugs before they happen as technology changes.

ScienceQueries said:
So do the makers not care?

Some don't, but I would say that the vast majority of software developers care a great deal. After all, if you can't make functioning software then you usually don't stay in business very long. Obviously there are niches for developers that crank out buggy software as fast as they can and move on, but that kind of niche exists everywhere. How many companies out there make cheap or poor quality products that quickly break on consumers yet still turn a profit? Plenty.

ScienceQueries said:
I don't like to and should not have to pay for a broken piece of software which isn't stable. Some may say "don't like it, don't buy it" but that to me is like saying "stop living if you don't like something". When they make a product available to the public, they acknowledge the fact that they cannot dictate the terms regarding people's behavior towards their product. They provide updates but I should not have to go through the trouble to use something that I paid for from my or anyone's hard earned money.

Having the capability of updating your software after it is deployed has almost certainly led to what could be called 'laziness' in software development, but most updates are free and take a minute or two at best to download and install. That's perhaps better than having software that can't be updated after installation. If that fails then you're risking complete loss of functionality instead of merely a few minutes time wasted. Which would you rather have?

Just imagine what it would be like if they started charging for updates. They certainly can!

They could, but that's not a good market strategy for most developers.

ScienceQueries said:
You can buy a house or an apartment when the building is under construction but that does not mean they should deliver unfinished product. And if the construction is not strong and sturdy, the structure may collapse but if that happens, you go after the people involved. Nobody does that when it happens every day with one or the other software they have.

That does happen. Just not for you and I since we don't own any software that costs $100,000 and kills people if it fails, like a poorly constructed house would. Most legal action taken in regards to software happens at the industry level, especially for 'critical' software that actually can kill people if it fails, such as the flight software installed on aircraft. For you and I the legal fees alone are often far more than the cost of the software and the product it is installed on. It's just not worth it for individuals to go to court in most cases.
 
Last edited:
  • #4
Drakkith said:
Grace Cooper

Hopper
 
  • #5
Vanadium 50 said:
Hopper

Can I blame this mistake on a bug in the forum software? :-p
 
  • #6
Drakkith said:
The term 'bug' has been around since before the beginning of the computer. Per Thomas Edison in 1878:

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that "Bugs"—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

Computers have a particularly literal example of a bug dating back to 1946 when Grace Cooper discovered a moth in one of the relays of the Harvard Mark II.

I was referring to computer bugs so the second example is applicable. The first one is an expression of annoyance from English which may have been first used analogous to feeling a twitch.
Drakkith said:
Sometimes. But most modern software is extremely complex and it is simply impossible to develop perfect software. Especially in today's environment where software often outlasts hardware, making it difficult to predict and correct bugs before they happen as technology changes.

The very instance I come across an idea, I look at it from all the possible angles and I consider all the possibilities, both good and bad, inclusive of possible chances of failure and the cause.
 
Last edited by a moderator:
  • #7
ScienceQueries said:
The very instance I come across an idea, I look at it from all the possible angles and I consider all the possibilities, both good and bad, inclusive of possible chances of failure and the cause
How do you know you've examined all possible angles and possibilities? How long do you spend considering whether there are any possibilities you've missed?

Do you test on every single possible hardware configuration? Do you consider every possible combination of software on your target machine? Have you considered every possible sequence of inputs? Bear in mind that you need to consider every possible combination of timings of possible sequences if you are using multi-threading. Have you considered every possible misunderstanding of your instructions that users could have?

If you don't do all of that, you would appear to be falling short of your own standards. Most likely, you do what everyone else does - your best in the time available. One can certainly argue that more time could be spent, but then costs would have to rise - more people to pay and/or for longer. Good, quick, cheap - pick any two.
 
  • #8
Ibix said:
How do you know you've examined all possible angles and possibilities? How long do you spend considering whether there are any possibilities you've missed?

Do you test on every single possible hardware configuration? Do you consider every possible combination of software on your target machine? Have you considered every possible sequence of inputs? Bear in mind that you need to consider every possible combination of timings of possible sequences if you are using multi-threading. Have you considered every possible misunderstanding of your instructions that users could have?

If you don't do all of that, you would appear to be falling short of your own standards. Most likely, you do what everyone else does - your best in the time available.

I will spend my entire life if needed to craft my creation to my liking. And I was only talking about my own ideas, which I have yet to start working on, mainly due to lack of funds. And I don't think crowdfunding is a good idea because if you do that, you set a public expectation and sometimes, you also inadvertently make promises. I keep on re-evaluating my ideas to check for holes so as to make sure that there is no mistake. I believe that if you have the concept nailed down and know what exactly that you want, you will be able to make and deliver the perfect product. Drakkith said something similar, the developers not being fully aware of the software's functionalities and purpose and not having all the information. But they can't be fed any additional information if there simply isn't one.

There certainly are things that I compromise with but before I do that, I do make a note of all the things I wanted to include but didn't. And I don't do it for marketing purpose or anything like that. But there is a big difference between me and a big corporate worth billions of dollars running a business and charging people unreasonable price for a product which would crash and burn, burn you, metaphorically.

I will give you a simple example. Do you find bugs in audio players or text editors? Usually not. And it's because their functionality is fixed and well thought and so, they don't have bugs. You may see updates but not for bug fixes.
 
  • #9
anorlunda said:
I consider written laws and regulations and constitutions to be software. We have been writing them a lot longer than computer software. They are just as buggy, perhaps more so, considering unintended consequences. Our remedies for buggy laws is worse than for buggy computers.

Is there any ulterior motive to say impart wisdom of some kind or is this just the buildup for the following statement?
anorlunda said:
p.s. I once had a job where we had to make software to match tariffs (lawyer language) and make the tariffs match the software. It was eye opening. Like writing each program twice, once in computer language and again in lawyer language. But the double effort did improve quality.

What do you mean by "make software to match tariffs and make tariffs to match the software"?
 
  • #10
ScienceQueries said:
I will spend my entire life if needed to craft my creation to my liking.
And if the time necessary to examine everything and squash any bug is one year longer than you live, what then? Will you release nothing - achieve nothing - or do the best you can in the time available?

I'll reiterate what I said in the bit of my last post that you did not quote - you can always consider changing the balance between having something quickly and having it more nearly perfect. But the change will not come for free.
ScienceQueries said:
Do you find bugs in audio players or text editors?
I had a text editor on my old phone that didn't resize its text pane when the soft keyboard appeared, so if you wrote more than half a page of text you couldn't edit the last half page. That was a bug - there's an option you can set for that behaviour in one of the top level Android GUI classes which shouldn't have been set. Probably the author only tested on hardware with a physical keyboard - so I repeat, will you test on every possible hardware configuration?

Also, it stripped curly brackets when it saved text, which made it useless for editing code. That more or less has to have been a conscious choice, but I can't imagine why it was made. So I will add to my list - have you considered every possible use case for your software?
 
  • Like
Likes jedishrfu and Vanadium 50
  • #11
ScienceQueries said:
The very instance I come across an idea, I look at it from all the possible angles and I consider all the possibilities, both good and bad, inclusive of possible chances of failure and the cause.
From what you said in another thread, you are a high school student or possibly have graduated high school, and have not yet started college. From these I infer that you are young. From your statement you you will look at things from "all possible angles" it appears to me that you have actually written little or no computer code. @Ibix listed a much more comprehensive set of potentially bug-producing situations than your list. His point about multi-threading is especially well-taken. It's easy to debug very simple "baby" programs, but when they get bigger and more complex, debugging them is significantly more difficult. It appears to me that you don't realize this.

ScienceQueries said:
I will spend my entire life if needed to craft my creation to my liking.
So this will be a hobby?
 
  • #12
Ibix said:
And if the time necessary to examine everything and squash any bug is one year longer than you live, what then? Will you release nothing - achieve nothing - or do the best you can in the time available?

I may not or I might do as you say but the most plausible scenario would be that I'll always have a note attached and hopefully, send it off to someone or make it publicly available so that my legacy could be continued. Which path it takes after that, I wouldn't be here to care for that.
Ibix said:
I'll reiterate what I said in the bit of my last post that you did not quote - you can always consider changing the balance between having something quickly and having it more nearly perfect. But the change will not come for free.

True, to a certain degree. But I'll reiterate, one with billions of dollars should not have to worry about resources if he has the people who understand what they are working with and what they need to do. It's probably a useless topic and I've been given to understand that this post isn't helpful so it's best that we stop discussing. My rant isn't going to change a thing.
Ibix said:
I had a text editor on my old phone that didn't resize its text pane when the soft keyboard appeared, so if you wrote more than half a page of text you couldn't edit the last half page. That was a bug - there's an option you can set for that behaviour in one of the top level Android GUI classes which shouldn't have been set. Probably the author only tested on hardware with a physical keyboard - so I repeat, will you test on every possible hardware configuration?

Perhaps a learner's project? Could be. That's just a way to look at it, it may not be the case. Hopefully it was available for free. And no, I may not test it on all the platforms. And the software I have in mind is due, pending for a long time and it might remain that state until I'm sure I want to do it. Currently, my focus is on games. I also planned on making a plugin to implement solid impenetrable surface as the ground and the toolkit would allow users to save lots of time and some memory as they wouldn't have to go through a labyrinth of settings to declare an object as a collider and check for collision in depth. But I'm going off-topic.
 
  • #13
Besides multi threaded race conditions there’s network issues and hardware failures. These can’t be tested easily and they occur very rarely and so programmers being a very pragmatic lot make a decision to ignore those types of errors or at least provide a catch-all for them.

Sometimes one group of programmmers add a new feature to their code which adversely affects another groups code. The bug appears in someone else’s code but is caused by an external source.

I agree with @Mark44 you need some practical experience working with professional developers before you can make statements about programmers and bugs. Until that time your understanding will be incomplete.
 
  • Like
Likes Klystron and Ibix
  • #14
I have seen software that, IMO, is so complicated that even a genius would have trouble with. I certainly could not touch it. So waiting till the software is perfect would be foolish. It's that simple.
 
  • Like
Likes jedishrfu and Ibix
  • #15
ScienceQueries said:
I may not or I might do as you say but the most plausible scenario would be that I'll always have a note attached and hopefully, send it off to someone or make it publicly available so that my legacy could be continued. Which path it takes after that, I wouldn't be here to care for that.

Oh please, no one will want to take a look at a random project from someone they don't know that's been in development for 50+ years. It'd almost certainly be useless thanks to multiple generations of hardware changes by then anyways.

If you want to have a reasonable discussion, I recommend that you make an effort to actually look at how things work in the real world instead of sticking to your idealized version of how it should be. Just remember all the mistakes you yourself have made during your life, especially on-the-job or with a hobby, and you should immediately be able to see plenty of reasons why developers release buggy code. No one's perfect.

Thread locked.
 
  • Like
Likes russ_watters, Tom.G and Ibix

1. What is a computer bug?

A computer bug refers to an error or defect in a computer program that causes it to not function as intended. It can range from minor issues, such as a spelling error, to major problems that can crash the entire system.

2. What causes computer bugs?

There are several potential causes of computer bugs. These can include human error during the coding or development process, hardware malfunctions, unexpected user inputs, or external factors such as viruses or malware.

3. How do computer bugs affect modern technology?

Computer bugs can have a wide range of effects on modern technology. They can cause programs to crash, data to be lost or corrupted, and can even lead to security vulnerabilities and cyber attacks. In some cases, computer bugs can also result in financial losses for companies.

4. How are computer bugs detected and fixed?

Computer bugs can be detected through various methods, including user reports, automated testing, and code reviews. Once a bug is identified, it can be fixed by debugging the code or implementing patches or updates to the program.

5. How can computer bugs be prevented?

To prevent computer bugs, developers can use coding best practices, such as writing clean and organized code, conducting thorough testing, and implementing quality control measures. Regular software updates and maintenance can also help prevent bugs from occurring in the future.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • General Discussion
Replies
5
Views
1K
  • Programming and Computer Science
Replies
4
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • STEM Academic Advising
Replies
3
Views
2K
  • Programming and Computer Science
Replies
8
Views
1K
  • Computing and Technology
Replies
25
Views
3K
  • Programming and Computer Science
Replies
29
Views
3K
  • Programming and Computer Science
Replies
15
Views
1K
Replies
4
Views
347
Back
Top