Software: Difference between revisions
NicoleBarros (talk | contribs) m →Quotes |
|||
| (18 intermediate revisions by 13 users not shown) | |||
| Line 1: | Line 1: | ||
Computer '''[[w:Software|software]]''' is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system. |
Computer '''[[w:Software|software]]''' is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system. |
||
==Quotes == |
==Quotes == |
||
| Line 6: | Line 6: | ||
**[[Bill Gates]], {{cite web|url=http://news.bbc.co.uk/2/hi/business/7142073.stm|title=Bill Gates: The skills you need to succeed|publisher=BBC News|date=14 December 2007}} |
**[[Bill Gates]], {{cite web|url=http://news.bbc.co.uk/2/hi/business/7142073.stm|title=Bill Gates: The skills you need to succeed|publisher=BBC News|date=14 December 2007}} |
||
* One of the difficulties in thinking about software is its huge variety. A function definition in a spreadsheet cell is software. A smartphone app is software. The flight management system for an Airbus A380 is software. A word processor is software. We shouldn't expect a single discipline of [[software engineering]] to cover all of these, any more than we expect a single discipline of manufacturing to cover everything from the Airbus A380 to the production of chocolate bars, or a single discipline of social organization to cover everything from the United Nations to a kindergarten. Improvement in software engineering must come bottom-up, from intense specialized attention to particular products. |
* One of the difficulties in thinking about software is its huge variety. A function definition in a spreadsheet cell is software. A [[smartphone]] app is software. The flight management system for an Airbus A380 is software. A word processor is software. We shouldn't expect a single discipline of [[software engineering]] to cover all of these, any more than we expect a single discipline of manufacturing to cover everything from the Airbus A380 to the production of chocolate bars, or a single discipline of social organization to cover everything from the United Nations to a kindergarten. Improvement in software engineering must come bottom-up, from intense specialized attention to particular products. |
||
** [[Michael A. Jackson]] in: K. De Grave (ed.) ''Formalism & Intuition in Software Development; A conversation with Michael A. Jackson conducted by Edgar G. Daylight and Bas van Vlijmen.'' 2015 |
** [[Michael A. Jackson]] in: K. De Grave (ed.) ''Formalism & Intuition in Software Development; A conversation with Michael A. Jackson conducted by Edgar G. Daylight and Bas van Vlijmen.'' 2015 |
||
| Line 13: | Line 13: | ||
|volume = 14,15 |pages = 27-37 |url = http://doi.acm.org/10.1145/379486.379513 |doi = 10.1145/379486.379513 |publisher = YYYY }} |
|volume = 14,15 |pages = 27-37 |url = http://doi.acm.org/10.1145/379486.379513 |doi = 10.1145/379486.379513 |publisher = YYYY }} |
||
* You can't physically touch software. You can hold a floppy disk or CD-ROM in your hand, but the software itself is a ghost that can be moved from one object to another with little difficulty. In contrast, a road is a solid object that has a definite size and shape. You can touch |
* You can't physically touch software. You can hold a floppy disk or CD-ROM in your hand, but the software itself is a ghost that can be moved from one object to another with little difficulty. In contrast, a road is a solid object that has a definite size and shape. You can touch the material and walk the route...<br>Software is a codification of a huge set of behaviors: if this occurs, then that should happen, and so on. We can visualize individual behaviors, but we have great difficulty visualizing large numbers of sequential and alternative behaviors...<br>The same things that make it hard to visualize software make it hard to draw blueprints of that software. A road plan can show the exact location, elevation, and dimensions of any part of the structure. The [[map]] corresponds to the structure, but it's not the same as the structure. Software, on the other hand, is just a codification of the behaviors that the programmers and users want to take place. The map is the same as the structure... This means that software can only be described accurately at the level of individual instructions... A map or a blueprint for a piece of software must greatly simplify the representation in order to be comprehensible. But by doing so, it becomes inaccurate and ultimately incorrect. This is an important realization: any architecture, design, or diagram we create for software is essentially inadequate. If we represent every detail, then we're merely duplicating the software in another form, and we're wasting our time and effort. |
||
** George Stepanek (2005) ''Software Project Secrets: Why Software Projects Fail''. p. 10-11 |
** George Stepanek (2005) ''Software Project Secrets: Why Software Projects Fail''. p. 10-11 |
||
| Line 27: | Line 27: | ||
:<p>But I don't think you need to think that alchemy is "evil." It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods.</p> |
:<p>But I don't think you need to think that alchemy is "evil." It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods.</p> |
||
:* {{cite web| url=http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=198002077| title=The Torvalds Transcript: Why I 'Absolutely Love' GPL Version 2| date=2007-03-19| author=[[Linus Torvalds]]| accessdate=2008-12-31}} |
:* {{cite web| url=http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=198002077| title=The Torvalds Transcript: Why I 'Absolutely Love' GPL Version 2| date=2007-03-19| author=[[Linus Torvalds]]| accessdate=2008-12-31}} |
||
* I do think we could do a better job of anticipating the software needs of new projects, but it is also important to understand that a lot of needs are not readily apparent a priori. Sometimes we have to try to do things for awhile before we really have an understanding of where the problem points are. |
|||
** [[Jimbo Wales]] in '''[https://en.wikinews.org/wiki/Interview_with_Jimbo_Wales Interview with Jimbo Wales]''' (December 10, 2005) |
|||
* Software gets slower faster than hardware gets faster. |
* Software gets slower faster than hardware gets faster. |
||
** [[Niklaus Wirth]] (1995), cited in: Geoff Lancaster (2001), ''Excel HSC |
** [[Niklaus Wirth]] (1995), cited in: Geoff Lancaster (2001), ''Excel HSC Software Design and Development'', p. 107 |
||
* The leading and the best [https://www.ingic.ae/software-development/ software development company] believes in the quote: Software is a great combination between artistry and engineering. Bill Gates |
|||
== See also == |
== See also == |
||
| Line 38: | Line 40: | ||
==External links== |
==External links== |
||
{{Wiktionary}} |
|||
{{Wikipedia}} |
|||
[[Category:Computer science]] |
[[Category:Computer science]] |
||
[[Category:Software]] |
|||
Latest revision as of 07:25, 4 December 2025
Computer software is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system.
Quotes
[edit]- A solid working knowledge of productivity software and other IT tools has become a basic foundation for success in virtually any career. Beyond that, however, I don't think you can overemphasise the importance of having a good background in maths and science.
- Bill Gates, Bill Gates: The skills you need to succeed. BBC News (14 December 2007).
- One of the difficulties in thinking about software is its huge variety. A function definition in a spreadsheet cell is software. A smartphone app is software. The flight management system for an Airbus A380 is software. A word processor is software. We shouldn't expect a single discipline of software engineering to cover all of these, any more than we expect a single discipline of manufacturing to cover everything from the Airbus A380 to the production of chocolate bars, or a single discipline of social organization to cover everything from the United Nations to a kindergarten. Improvement in software engineering must come bottom-up, from intense specialized attention to particular products.
- Michael A. Jackson in: K. De Grave (ed.) Formalism & Intuition in Software Development; A conversation with Michael A. Jackson conducted by Edgar G. Daylight and Bas van Vlijmen. 2015
- How can it be that we have so much software that is reliable enough for us to use it? The answer is simple; programming is a trial and error craft. People write programs without any expectation that they will be right the first time. They spend at least as much time testing them and correcting errors as they spent writing the initial program. Large concerns have separate groups of testers to do quality assurance. Programmers cannot be trusted to test their own programs adequately. Software is released for use, not when it is known to be correct, but when the rate of discovering new errors slows down to one that management considers acceptable. Users learn to expect errors and are often told how to avoid the bugs until the program is improved.
- Parnas, David L. (Jan 1 1985) . "The Parnas Papers". SIGCAS Comput. Soc. 14,15: 27-37. DOI:10.1145/379486.379513.
- You can't physically touch software. You can hold a floppy disk or CD-ROM in your hand, but the software itself is a ghost that can be moved from one object to another with little difficulty. In contrast, a road is a solid object that has a definite size and shape. You can touch the material and walk the route...
Software is a codification of a huge set of behaviors: if this occurs, then that should happen, and so on. We can visualize individual behaviors, but we have great difficulty visualizing large numbers of sequential and alternative behaviors...
The same things that make it hard to visualize software make it hard to draw blueprints of that software. A road plan can show the exact location, elevation, and dimensions of any part of the structure. The map corresponds to the structure, but it's not the same as the structure. Software, on the other hand, is just a codification of the behaviors that the programmers and users want to take place. The map is the same as the structure... This means that software can only be described accurately at the level of individual instructions... A map or a blueprint for a piece of software must greatly simplify the representation in order to be comprehensible. But by doing so, it becomes inaccurate and ultimately incorrect. This is an important realization: any architecture, design, or diagram we create for software is essentially inadequate. If we represent every detail, then we're merely duplicating the software in another form, and we're wasting our time and effort.- George Stepanek (2005) Software Project Secrets: Why Software Projects Fail. p. 10-11
- When done well, software is invisible.
- Bjarne Stroustrup (2010) on wired.com
- Software is like sex; it's better when it's free.
- Attributed to Linus Torvalds at 1996 FSF conference, cited in Doug Abbott (2006) Linux for Embedded And Real-time Applications. p. 1
Me, I just don't care about proprietary software. It's not "evil" or "immoral," it just doesn't matter. I think that Open Source can do better, and I'm willing to put my money where my mouth is by working on Open Source, but it's not a crusade – it's just a superior way of working together and generating code.
It's superior because it's a lot more fun and because it makes cooperation much easier (no silly NDA's or artificial barriers to innovation like in a proprietary setting), and I think Open Source is the right thing to do the same way I believe science is better than alchemy. Like science, Open Source allows people to build on a solid base of previous knowledge, without some silly hiding.
But I don't think you need to think that alchemy is "evil." It's just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods.
- Linus Torvalds (2007-03-19). The Torvalds Transcript: Why I 'Absolutely Love' GPL Version 2. Retrieved on 2008-12-31.
- I do think we could do a better job of anticipating the software needs of new projects, but it is also important to understand that a lot of needs are not readily apparent a priori. Sometimes we have to try to do things for awhile before we really have an understanding of where the problem points are.
- Jimbo Wales in Interview with Jimbo Wales (December 10, 2005)
- Software gets slower faster than hardware gets faster.
- Niklaus Wirth (1995), cited in: Geoff Lancaster (2001), Excel HSC Software Design and Development, p. 107