![]() | This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Critic of:
Computer software (or simply software) is the manifestation of a computer program in the form of data stored in the memory of a computer. This data can be executed (i.e., can perform the task of the program it embodies), either by the hardware of the computer directly, or by interpretation by another piece of software on the computer. |
Content added by Kenny sh, which I am moving here because
Computer software is kind of information stored in computer memory and processed by computer.
From a point of view of computer hardware computer software devided to computer program and data.
Computer software could be called as software or SW.
Many peoples mix up Software with computer program. Computer program is just instrctions for CPU, while Software is much more wide range of compuer informatin, includung data, text, databases, html, media etc. Computer program is main part of computer software. Computer software without computer program is just set of data. Example: database is SW, but not program, DBMS is SW and programm.
OK, now I will expand on why I believe Kenny sh's definition is incorrect. First, Kenny wrongly assumes that a computer program contains only "instructions" and not "data".
The distinction between the two is not clear at all.
Have out read books of Nikolaus Wirth, Donald Knuth?
There is a lot of different types of data. Some of kind of data is part of programm, another not (like DB) but still part of SW. Kenny sh 08:27, 5 May 2004 (UTC)
A program is an abstract concept, like an algorithm. A program may indeed contain "data" (in the form of hardcoded constants, for example). Conversely, mere "data" may contain "instructions", or may itself be a program when viewed at a different level of abstraction; consider the following:
Are these instructions or data? The distinction is nearly meaningless. But it is clear that all of these implement "programs" in some sense, and therefore must be considered "software".
Because of Program is subset of Software, definition of Software based on Program is wrong. Kenny sh
Kenny: In comments elsewhere you have even disputed the obvious fact that software may be executed by other software, not by hardware.
Furthermore, your edits and comments have been rude.
You have already admitted that you are not an English speaker; please consider the possibility that you do not know the English definition of "software", and your edits here are mistaken.
Regarding your example above that an HTML file with no scripts is not a program, I disagree. Here is where you are fundamentally wrong: the question of whether a piece of data is a program or not is in the eye of the beholder. A piece of HTML file can be viewed as "dumb data", or it can be viewed as a complex constraint-based specification of a graphical rendering. (Are you familiar with Prolog and the CLP family of languages, and declarative programming in general? Something tells me you are not, and that your notion of "programming" is strongly informed by a handful of imperative languages.) All software is therefore a program of some kind.
I will concede this entire argument if you can answer the following question: is the following line of text a program, or not?
"Hello, world."
Have at it. k.lee 00:09, 11 May 2004 (UTC)
Lastly, Kenny, please invest some effort in checking the grammar of your edits before posting them, and use the talk pages (not the article itself) when you want to talk about the article. k.lee 00:36, 5 May 2004 (UTC)
p.s. Not all computer software executes directly on the CPU. Software that is interpreted or executed on a virtual machine does not depend on the CPU at all.
k.lee 00:38, 5 May 2004 (UTC)
Dear k.lee, please usage your usage of word manifestation. It seems me not sutabe. Kenny sh
Sometimes (especially in older texts) software denotes all the data that a computer processes, including "inert" forms of data that do not implement programs. For example, some dictionaries [1] list a meaning like the following:
Definitions like this one are less commonly used in modern times, and can cause confusion where they are used (e.g., in the Debian Social Contract). On the other hand, this definition arguably remains useful because the distinction between "inert" data and "active" programs is not always clear.
Hey guys, following a request on Wikipedia:Cleanup I've taken the liberty of re-writing the introduction in plain English for the benefit of non technical readers, with a specific link to this page to alert people to these various discussions. I hope you may find this an acceptable work around - perhaps even good enough to remover the disputed tag????
top of page
regular definition Computer software (or simply software) is a collection of programs and data held in the storage of a computer for some purpose. .................. |
Software's relationship with hardware is two-fold. Firstly, software is stored in memory (either RAM or disk or otherwise; it does not matter). Secondly, software runs on hardware, which is a colloquial term meaning that the hardware interprets the program, as it resides in memory, by reading instructions, which it then executes. The important point is that software, like other kinds of programs, is made up of a series of instructions. Computer software is developed and written by programmers, often aided by pre-existing software tools, for a particular digital computer or operating environment.
The bulk of the instructions in a software program can be grouped into general types: loading data from and storing it to memory, mathematical operations (most of which reduce down to addition and subtraction), bit manipulation (working directly on the binary representations of numbers: changing or re-ordering the actual bits which make them up), logical operations and control flow. [This should be made into a list.]
On modern computer systems, software programs have to satisfy various compatibility requirements, including using the correct instruction set architecture (ISA) and application binary interface (ABI). The former ensure that the CPU can understand the program, and the latter that the operating environment can properly load the program into memory.
Until a program is run on a computer, there is no relevant distinction between it and generic binary data. Technically, all data in memory is noise except in the case where it is comprehensible by some process. For more on this, see information theory. Thus, the most important aspect of any true program is that it can be read and understood by a computer (specifically, the CPU) as a sequence of instructions to be executed. In this way, a software program can be specifically defined as a special case of a program or algorithm, in this case, one which can specifically be understood by a real computer in practice. This is only possible because the CPU inside a computer is specifically designed as a general purpose data processor, with a published ISA and the ability to communicate with memory.
The work of creating software is called software development. Whether this is in fact the same as software engineering [the same article appears for both terms] is regularly debated.
All computer software is written using a programming language of some sort, and is then either compiled to native code (in other words, to a form recognizable by a particular computer platform) or is interpreted by a virtual machine or interpreter. The interpreter itself is usually a native program. There are many kinds of software programs in existence, but those which do not run natively on a digital computer may be considered to be a different class than those which do. The distinction is, admittedly, blurred, because it is possible (and nowadays quite common) to virtualize existing hardware to allow software intended for one computer, either real or virtual, to be run on another computer. In fact, many virtual computers have no actual hardware counterpart.
It can be arguedIt can be argued that software written for interpreters is, in fact, not software proper, any more than a program written in any high level language is software. Both require translation to native form, either in advance, or inline with execution, before they can be used. In addition, it is a fact, as opposed to an opinion, that at any moment in time, a given program can either be processed natively by an existing computer system, or not, and thus the distinction is objective, whether or not it is considered especially relevant to the average user.
Also to consider -- brief intros or at least links to (to make this article the top of the computer software tree):
Initially, computer software was written monolithically, that is, as one program which ran directly on hardware and without the support of an operating system or libraries (see below). This quickly became untenable as programs grew in complexity. Various strategies were invented to alleviate this, including the creation of sub-routines, then software libraries, and more recently the idea of object oriented programming. Other strategies undoubtedly exist, and more will be created, by necessity, as a means to reduce the workload on programmers and to improve software reliability by focussing effort on improving existing software, instead of re-writing it from scratch.
Modern systems utilize software re-use principles ubiquitously, primarily through the use of the operating system and software libraries, but also through the general idea of software services, which nowadays regularly span multiple computers.
Operating systems provide a number of benefits to computer programmers and users. In addition to code re-use, they enable platform portability by providing an abstracted software interface to hardware features. In the case of native programs, it is theoretically possible to abstract all features except the CPU. CPU compatibility can exist, but it is a feature of the CPU, not the operating system. For example, programs written for Windows NT 4 targeting the Intel 80486 processor can reliably run on Windows NT 4 running on a PC using AMD Sempron processor (because the AMD provides ISA compatibility with the 486), but not on Windows NT running on an Alpha processor. However, the original PC can replace most other hardware, such as the video display and graphics adapter, keyboard, mouse, and audio circuitry, in the event that those are supported by operating system, and the software will likely still operate as expected.
Device drivers are a component of operating systems which use the concept of modularity and code re-use to allow operating systems to be extended to support additional hardware without re-compiling the operating system. This is important, because it allows an operating system to support hardware devices that do no exist at the time the software is delivered to end users.
A software library is a collection of general purpose program code which can be used by multiple software programs, thereby removing the requirement that the program include the functionality inside itself, consequently saving the program's developers having to perform the work of creating it. Most operating systems include a large number of software libraries for common tasks, over and above hardware abstraction. In addition, many software libraries are produced and marketed separately, and software developers often create their own libraries, for purposes of modularity and to allow simultaneous development of different portions of the program.
I think, this paragraph sould to be like this. Classical division of software in computer science is system and application software. I don't understand devision to platform, user software in top level of classification. Conan 21:05, 7 Nov 2004 (UTC)
In computer science all software divided to two big classes:
See the rest of this discussion page for explanation and references. As far as I can tell, there cannot be any dispute over the fact that there are *many* kinds of software. The real debate is about what the "computer software" page should say. If this page is about "computer software" then it should openly discuss all kinds of computer software, rather than limiting it to jsut the CS point of view. At least that is what I believe. If you want to create a separate page for the narrow-minded CS concept of software, that would would be fine by me. -- The phantom avenger for software engineering
Since this article has such a general title, perhaps it should focus more on the difference between software and hardware than the various different ways of classifying software.
Computer science does not make a distinction between operating system software and application software. This is a practical distinction made in the software industry, for organizational, conceptual, reliability and security reasons, but is of little interest to computer science proper. Operating systems enable abstraction of a hardware interface to a software interface, allowing two things: portability of application software, and software re-use. These are engineering issues, not scientific ones.
I very surprised to see more top SW classes, except system and application. Who can explain me nature of others classes? Kenny 12:52, 2004 Oct 25 (UTC)
I do not understand how the facts and arguments regarding software classification have much bearing on the description of "Computer software", or how it enlightens readers. Far more important is what computer software is and how to distinguish it from what is not computer software, for example other algorithmic processes, or algorithms themselves.
If such classification were relevant, it would be much more important to use better classifications than one based on who produced the software, since generally that is not immediately evident from the inspection of a program on its own, say, without benefit of the programmers' names or other information. A program on its own can be distinguished primarily based on the operating environment in which it runs. Some software runs on PCs. Some runs on embedded systems. Some runs in directly on the hardware or "standalone", while others run in virtual machines or interpreted environments. Some software runs in "batch mode" without user intervention, while other software has a user interface. Some user interfaces are light-weight and use only text for input/output. Others are heavy-weight and use GUIs and multiple hardware input devices. Some software runs over the Internet through a browser or other intermediary client. Some software runs on multiple machines simultaneously. These are real, sensible differences. The experience and purported skill level of the programmer is irrelevant when considering the software itself.
The most widely used programming language in the world is Visual Basic. It is used for all sorts of scripting work and custom programming. Spreadsheet templates and scripts encompass as much development every year as all other applications. That is reality.
User programming is a huge third branch of software.
This matters, because computer software is used on software engineering as the main definition of software. (Kenny did that). Anyways, applications tend to be written by SE people while users software is written by everybody. This distinction must be made clearly to define SE properly. If this page does not want to define all software, then the SE page must use some other page as the main definition.
CODE TITLE Number in 2002 15-1021 Computer Programmers 457,320 15-1031 Computer Software Engineers, Applications 356,760 15-1032 Computer Software Engineers, Systems Software 255,040
In computer science all software divided to two big classes:
System Software
Application Software
What about embedded software? I'm not sure it fits into either system or application. Perhaps computer science should be split up into three classes:
System Software
Application Software
Embedded Software
The usual convention is to have the link to the disambiguation page at the top, and not at the end of the first section. Also, the trend is to use the following template:
{{ redirect|Software}}
-- surueña 17:11, July 22, 2005 (UTC)
"As computational science becomes increasingly complex, the distinction between software and data becomes less precise." Is the quoted sentence the opinion of one of the authors of the article, or does it describe an issue brought up in the literature? Personally, I would argue that the distinction is not so difficult, but is one of context. That is, since programs are generally not self-modifying, any data processed by the program can be contextually called data, even in the case of a program which produces or processes other programs (compilers and interpreters). Even allowing for the existence of self-modifying programs, it is usually possible to distinguish between the portion(s) of the program which modify other parts of the program, but which themselves are not modified, and thus keep the distinction contextually intact.
In an actual program as found on disk, the distinction between actual code and data is in fact very explicit, and are frequently called the "text" and "data" segments. So I feel that the assertion as quoted is not tenable.
Computer
Although I go way back to the days when self-modifying code was considered the mark of a real programmer, lets concede that we will no longer consider that acceptable. Nevertheless, in recent years, to increase the flexability and minimize the impact of obsolescence of software, more and more of the 'structures' we had come to accept as 'hard' programmed are now input as, or modified by, data. This particularly applies, for example, to the format of input or output 'applications' data. And, since subroutines may be compiled as separate subprograms, and need not be bound (or linked) until run time, unknown future features may be added by simply adding such subprograms to the environment and using execution time calls which are input as data (shades of SNOBOL!).
Your comment, "I would argue that the distinction is not so difficult, but is one of context" puts me in mind of a very famous Jurist, who so famously remarked of pornography, that it was damned difficult to define, "but I know it when I see it!"
Needless to say, I concur with the earlier quoted statement. I have trouble enough defining data, without having to distinguish it from code. That latter distinction is usually a purely arbitrary one made on the basis of when the code or data is introduced to the transaction and how it is processed. It makes no difference to the computer, for example; its states may be changed by either code or data (which is a distinction with little difference).
Example: Does a branch on zero occur because of the coded instruction to do so, or because the data set the register to zero!?! normxxx 04:35, 1 January 2006 (UTC)
In its introduction, the article credits Alan Turing with the concept of software. Though he originated the theoretical framework for most software, the concepts of a sequence of instructions to be executed by a mechanical device precedes Turing. To my knowledge, the first person to have the idea was Charles Babbage in the form of his analytical engine. If you extend the concept beyond computation to simply as sequence of instructions to control a mechanical device, then Babbage was preceded by Joseph Marie Jacquard who invented a loom that was controlled by wooden punch cards.
I believe that Saying that Turing came up with the concept of software is wrong. I am hoping for feedback before changing the article. —The preceding unsigned comment was added by Mgrand ( talk • contribs) .
The term "lite" version shows up quite a bit, but I can't find any page that describes it. Usually it's just a feature-reduced version, but as it may or may not be free it doesn't necessarily fall into any of the shareware cateogies ( Crippleware, Demoware, etc.) Anyone know where I find information about this? Thanks! Ewlyahoocom 07:40, 8 April 2006 (UTC)
The section on patents is dangerously short--it steps close to (and possibly crosses) the POV line due to its brevity. Its contents are overall fairly legit, but at a quick glance seem biased. It definitely needs to be expanded. 141.149.206.197 03:32, 17 June 2006 (UTC)
Somebody made what appeared to be some very significant changes to the article, today. It didn't look like vandalism, but I'd like to encourage discussion before such serious changes are made. These diffs may prove helpful: [3], [4], [5]. Thanks for your time and efforts, and if you are the editor in question, you have my apologies for the intrusion. Thank you. Luna Santin 08:26, 21 June 2006 (UTC)
Our article on Intelligent Machines Research Corporation says that the word was coined by William Lawless, Jr. of IBM, not by Tukey. Which is right? -- Heron 20:46, 11 July 2006 (UTC)
The software governs the behavior the machine. The meaning and state of each bit in program memory is the link between the software and the hardware worlds. The medium on which the software resides can be any number of conceivable things: punch card; scantron; photograph; dipole matrix; brain; heterogeneous polymer. Just name it. If only I could explain the essence of code. The machine lives by the code and dies by the code. The program is the machine's way to providence.
-- LGWJ 17:34, 15 September 2006 (UTC) circa
This needs to be translated to comprehensible English before being returned to the article.
It's pretty extraneous and redundant with the second paragraph (which is not serving as the article's lead). The Transhumanist 06:22, 16 November 2006 (UTC)
The English have had somewhat of a history of being intrinsic and in essence transhuman like cultures long gone or with great longevity. In an ideal world "comprehensible" and "abstract formal" would be one in the same. If comprehensible explanation is more marketable then it should perhaps be the best choice. I will try to bridge the gap between purity and comprehensibility later. On this, we can choose to work together or to work estranged, but not in contradiction.
ATTEST,
-- Lindberg [18:49, 1 December 2006; 13:49, 1 December 2006; 06:00, 2 December 2006 (UTC)]
The choice of action regarding the removal of the "incomprehensible lead paragraph" was a rather preemptive, but the idea of a wiki is that readers have the option of being editors too. No one who makes a sensible contribution should have to ask for permission first, which is a respectable option if one so desires.
I am not sure if a problem was solved by the removal of this "incomprehensible lead paragraph." If one is not apt and not bold enough to perform correction, then one should consult prior to complete removal. I should assume that The Transhumanist, as a most active contributor to Wikipedia, did consult someone (an experienced professional and theorist perhaps).
-- Lindberg 06:47, 2 December 2006 (UTC)
what is a software monitor? —The preceding unsigned comment was added by 206.48.0.60 ( talk • contribs).
I propose to merge this article with/into Computer program. There are many topics in each article that either should be, or are, covered in the other article. Therefore, I think these articles ought to be merged, to stop any further duplication of effort.— greenrd 12:40, 15 April 2007 (UTC)
Perhaps, rather than merging, we could take software to be something higher up the hierarchy than computer programs. Something along the lines of: "Computer software consists of computer programs, libraries, configuration and data files, and their associated documentation."
I know I suggested simply redirecting this page in an earlier thread. I can almost see myself being willing to go along either direction.
The hardware/software discussion completely misses the point and should be relegated to a subsubsection or a footnote. Derek farn 01:22, 23 April 2007 (UTC)
Against Merger Completely different things John Cameron 10:07 (PST) —The preceding unsigned comment was added by 189.173.48.228 ( talk • contribs) 05:07, 14 Aug 2007 (UTC)
Redirects here, but there really isn't any obvious discussion of this term... Since I was simply trying to learn what it meant specifically, I'm left in the same posisition as before coming to this page. Crocadillion 18:46, 7 May 2007 (UTC)
On a paper entitled "Uncovering the epistemological and ontological assumptions of software designers" (2004), David King a Research Student at the University of York discusses the object-oriented and formal design method of successful (and unsuccessful) software design projects. www.cs.york.ac.uk/mis/docs/AIM15.pdf He describes how recent work in software design has often lost sight of the original foundations leading to a blurring of the distinction between the term’s ‘software’ and ‘programs’. In his paper, he characterise-es the term's and distinctions and the reasons why the differences are important when designing programs or software. I think the distinctions are important also. Martrn 00:19, 20 May 2007 (UTC)
Just to point out I have found some vandalism in the article. We might want to lock editing for a few days. (suggestion) September 6, 2007 6:44 PM (Eastern)
hey joe —Preceding unsigned comment added by 170.177.24.11 ( talk) 16:37, 15 October 2007 (UTC)
Unfortunately, the majority of literature uses the terms "software" and "program" as synonyms!!! But, the term "SOFTware" (by itself) connotes that it is the COMPLEMENT of "HARDware". All agree what hardware is. Then "software" is "anything, PART of a computer, that is NOT hardware, i.e. the programs AND the data a computer processes and produces". With this definition, we can avoid the contradiction in such often used statements that "a computer is comprised of hardware and software". Here, if we mean software = program, then an image which is neither hardware nor program, is NOT part of a computer. -- Kaseluris, Nikos 18:35, 3 December 2007 (UTC)
I think Nikos would like to say that everything inside a computer is either hardware or software. Since a web page is inside a computer, but it is not hardware, then a web page must be software. And so I think Nikos would like to revert this edit: "a web page is not software".
Given that computer programs are one kind of software, what are the other kinds of software? Is a web page a kind of non-program software? -- 68.0.124.33 ( talk) 14:31, 8 October 2008 (UTC)
- Software is a general term for the various kinds of programs used to operate computers and related devices. (The term hardware describes the physical aspects of computers and related devices.) Software can be thought of as the variable part of a computer and hardware the invariable part. Software is often divided into application software (programs that do work users are directly interested in) and system software (which includes operating systems and any program that supports application software). The term middleware is sometimes used to describe programming that mediates between application and system software or between two different kinds of application software (for example, sending a remote work request from an application in a computer that has one kind of operating system to an application in a computer with a different operating system).
An additional and difficult-to-classify category of software is the utility, which is a small useful program with limited capability. Some utilities come with operating systems. Like applications, utilities tend to be separately installable and capable of being used independently from the rest of the operating system. By; Michael D-5 —Preceding unsigned comment added by 125.60.241.19 ( talk) 03:42, 23 July 2008 (UTC)
I think such a category is needed and missing from Category:Software. Thoughts? -- Piotr Konieczny aka Prokonsul Piotrus| talk 23:37, 25 October 2009 (UTC)
Once a user searches for software, it redirects to computer software. But today, software pertains to computers as well as PDAs, Mobiles, Electronics, etc. Having the entire topic be based on just computer software is just not right. I had made a separate section for software for the very purpose hoping that would happen, but it was reverted. I propose that a separate page be created defining what a software is and the remaining be made as sub classifications. It would then be much more well organised as well as informative.
I have finished my program that will compress forever without error. "Bottomless Data Compression" or "Infinity to one" compression, so to speak. Who do I demonstrate this to so that I may be sourced here without loss of the intellectual property rights? —Preceding unsigned comment added by 71.114.2.163 ( talk) 17:35, 10 February 2011 (UTC)
fa:نرم افزار کامپیوتر — Preceding unsigned comment added by 31.56.40.230 ( talk) 06:46, 6 July 2011 (UTC)
Ah, compressing by a factor of infinity is easy. Just take all the data in and produce none in return (for example, crash). I have written some programs like that, as I suppose every early student in computer science. The hard part is getting the data back out! Does make a good joke, and might mention if there is a source. W Nowicki ( talk) 17:40, 6 July 2011 (UTC)
I propose to merge this article into Software. They are the same stuff.-- Kittyhawk2 ( talk) 01:12, 10 January 2009 (UTC)
Has the merge been undone? I don't understand why the article is called 'computer software' Can there be any other kind of software important enough to require the word 'computer' added to 'software' in the title? It seems nonsense to me. If no one oposes in a reasonable time, I will transfer this article to software, and redirect 'computer software' to software. -- Jasón ( talk) 02:37, 29 December 2011 (UTC)
The result of the move request was: moved to Software. Favonian ( talk) 18:41, 5 January 2012 (UTC)
Computer software → Software – Is there any other kind of software important enough to require the word 'computer' added to 'software' in the article's title? (I don't thing that clothing qualifies). As already mentioned in this talk page, software requires a computer to run, so there is no need to explicitly mention it. But most important of all, nobody talks about 'computer software' but rather about 'software'. The current name seems quite awkward and unjustified to me. Am I missing any rationale for NOT changing it? Thanks. Jasón ( talk) 14:53, 29 December 2011 (UTC)
The history section is totally unsourced, redundant, and contains factual errors. Not sure if we should just remove it for now. W Nowicki ( talk) 19:09, 5 June 2010 (UTC)
From my point of view this section is very poor, specially if compared to the articles about the history of free and open-source software and the history of computing hardware. In logic terms, free and open-source software are a subset of software, and there should be a full article on software history which also included the history of free and open-source SW. Unfortunately I'm not an expert to carry out the task, but I'm sure there is enough expertise out there.-- Jasón ( talk) 18:51, 27 December 2011 (UTC)
I agree, the history section seems totally wrong. It seems to claim that software was only available from OEMs until
the advent of the PC. However, I believe games were available for the AppleII and similar, and programs like Unix and Emacs pre-date the IBM PC (just checked!) My prof says he used a package such as SPSS or something on the mainframes, and it was sold by the software vendor, not the OEM. — Preceding
unsigned comment added by
Snydersware (
talk •
contribs)
19:15, 22 April 2012 (UTC)
The article reads:
"It is hard to imagine today that people once felt that software was worthless without a machine."
This may be true for some people -- but equally, it maybe be untrue for other people. In any case, the phrase "hard to imagine" is highly subjective and un-encyclopedic, and should be re-written or removed.
Karl gregory jones ( talk) 20:38, 13 December 2011 (UTC)
Done --
M4gnum0n (
talk)
10:22, 12 June 2012 (UTC)
This article was really bad and read like a mismash of several different textbooks, some from the 1990s - the lead was too long, certain statements were outdated or simply wrong, and there was an amazing amount of repetition, the like of which I've never seen anywhere else on Wikipedia. I am presently rewriting and reworking parts of the article.-- greenrd ( talk) 18:22, 21 September 2013 (UTC)
Might I suggest a "Theory" subcategory under software topics? Software has now evolved to exist as a part of technology that is currently being studied in-depth by academics. Wendy Chun's "On Software, or the Persistence of Visual Knowledge" is one such example. She writes, "Software perpetuates certain notions of seeing as knowing, of reading and readaibility that were supposed to have faded with the waning of indexicality. It does so by mimicking both ideology and ideology critique, by conflating executable with execution, program with process, order with action." Another work of hers, "Invisibly Visible, Visibly Invisible", is also of note. Taylor Bohl ( talk) 18:53, 7 March 2013 (UTC)
I see that a previous merge request for this article with Computer program was rejected. However the article starts out by saying that software is also known as computer programs, and the computer program article does the same in reverse. If they are the same, then the articles should be merged, and if they are not the same, then the articles shouldn't say that they are. It seems to me that the difference is that software includes libraries, which aren't programs because they don't have a single entry point. However other files types such as documentation files and audio files, are not computer software, even if they are shipped as part of an operating system. Horatio ( talk) 10:44, 20 May 2014 (UTC)
According to the definition of software in the article, "ANY set of machine readable instructions that directs a computer's processor to perform specific operations" qualifies as software. This would make computer programs a subset of software, only if they direct the processor of a computer to perform specific operations. According to the definition, documentation files, audio files, as well as computer programs can only be considered as software if they direct a computer's processor to perform specific operations. However, if they don't direct a computer's processor to perform specific operations, the set of machine readable instructions is not software. This means, according to the definition, that a compact disc that contains binary values in a machine readable format, that thanks to our pervasive von neumann architecture, can be considered to be software when it actually directs the cpu. It is important to keep in mind that software can exist in these types of binary blobs, and that these binary blobs can be positioned to direct the cpu to operate according to the instructions provided. If we fail to keep in mind that a specially crafted data file can exploit a buffer overflow in the code that handles the data, causing what we normally think of as data to become instructions, we will find ourselves rooted by those who do keep this in mind. — Preceding unsigned comment added by 23.126.215.162 ( talk) 10:29, 23 January 2015 (UTC)
I just noticed that a large section of this page is a direct rewrite of a passage from the book "Information Technology in Business", by Amir Manzoor. The section on the "three layers of software" (platform, application and user-written software) is basically this text: https://books.google.co.uk/books?id=b5x_NHo5g2oC&pg=PA144&lpg=PA144&dq=%22three+layers%22+of+%22user+software%22&source=bl&ots=rc7NCLACoS&sig=S6OluKj4eERI6sh4Ybkosol806U&hl=en&sa=X&ei=NxPBVL39IYOL7Abo7IGIAQ&ved=0CDAQ6AEwAg#v=onepage&q=%22three%20layers%22%20of%20%22user%20software%22&f=false
This section specifically:
"User-Centric Software Classification-Layered Approach
People using modem general-purpose computers see computer software differently than a computer programmer. For them, the computer software can be divided into three layers each performing a variety of tasks. 'Fhese three layers are platform, application, and user software.
Platform Software This software allows a user to interact with the computer and its peripherals. Platform software includes firmware, device drivers, and operating system.
Application Software When a common user thinks of the software, it is generally the application software. Application software is independent programs from the operating system. Typical examples of application software are office suites and video games. Application software is generally purchased separately from the computer hardware, but they may be bundled with the computer.
USER-WRITTEN SOFTWARE User-written software is created by users and caters to the specific requirements from the users. Examples of user-written software are spreadsheet templates, word processor macros, scientific simulations, and scripts for graphics and animations."
I am new to Wikipedia, so please be gentle. Shouldn’t this be mentioned in the "References" section? I wanted to do it myself, but don't know how yet.
Michael Beijer (
talk)
15:25, 22 January 2015 (UTC)
Evaluation on the Wikipedia page of Software.
1.There should be more citations included so as to help provide verification and enhance the reliability of the article, so that it can be more widely used among Wikipedia users.
2. There are footnotes included that are accurate and it brings the user to the relevant pages if the users require more information on what Wikipedia has provided them with.
3. References are included and this increases credibility of the information posted in the article.
Evaluation done by Ai Wey and Jass for AB1401. — Preceding unsigned comment added by Jasslimhuimin ( talk • contribs) 11:15, 25 March 2015 (UTC)
Why isn't " Software Management" even mentioned in this article? -- Alien4 ( talk) 16:59, 18 February 2013 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Software is a set of instructions, data or programs used to operate computers and execute specific tasks. Rshaik1993 ( talk) 16:33, 23 May 2019 (UTC)
Kakaka Lipakmu ( talk) 17:59, 27 May 2019 (UTC)
A discussion is taking place as to whether Portal:Software is suitable for inclusion in Wikipedia according to Wikipedia's policies and guidelines or whether it should be deleted.
The page will be discussed at Wikipedia:Miscellany for deletion/Portal:Software until a consensus is reached, and anyone is welcome to contribute to the discussion. The nomination will explain the policies and guidelines which are of concern. The discussion focuses on high-quality evidence and our policies and guidelines.
Users may edit the page during the discussion, including to improve the page to address concerns raised in the discussion. However, do not remove the deletion notice from the top of the page. North America 1000 07:05, 17 August 2019 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
In design and implementation, change: "Computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods." to "Like entertainment media that can be transmitted digitally, computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods. The cost to reproduce is near zero and the cost to create is high, making piracy a serious concern"
In Industry and organizations add the following at the end: Many professional societies have and continue to play a major role in the software industry. Two of the most influential are The Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineering (IEEE) Computer Society which jointly sponsor many world-wide widely attended annual professional conferences. Rich Cohen (Software Eng.) ( talk) 04:33, 17 February 2020 (UTC)
{{
edit semi-protected}}
template. -
FlightTime (
open channel)
04:36, 17 February 2020 (UTC)Software is a set of programs, which is designed to perform a well-defined function. A program is a sequence of instructions written to solve a particular problem.
There are two types of software −
System Software Application Software — Preceding unsigned comment added by 182.74.210.154 ( talk) 03:41, 11 February 2020 (UTC)
JavaScript scripts should be changed to client side scripts — Preceding unsigned comment added by JohnySoko ( talk • contribs) 03:59, 26 February 2020 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
A software is set of programs running as a process on a platform (like OS, often called PaaS in cloud) supported by hardware infrastructure (physical machine, called IaaS in cloud terms). 122.162.29.41 ( talk) 12:28, 11 November 2021 (UTC)
This page has so many missing citations, and I don't know which sources those parts of the article came from. Can you please add more citations? If not, then this article could be deleted through an RFD request. PortalPuppy31 ( talk) 18:29, 25 January 2022 (UTC)
The "Execution" heading was changed to "Executionpammi" on Jan 25. Presume this is a typo. Noumenon72 ( talk) 21:06, 7 February 2022 (UTC)
This article was the subject of a Wiki Education Foundation-supported course assignment, between 21 September 2022 and 8 December 2022. Further details are available
on the course page. Student editor(s):
Kathyljy (
article contribs).
— Assignment last updated by Kathyljy ( talk) 08:19, 10 November 2022 (UTC)
Is there a term that refers to a union of programming languages and artificial neural networks? Wesxdz ( talk) 22:38, 24 August 2023 (UTC)
I feel that the current definition of Software ("a collection of instructions that tell a computer how to work") is a little too similar to that of a Mobile program ("a sequence/set of instructions"). There does seem to be a bit of similarity between the two terms. I've looked at dictionary definitions and the ambiguity left by the definitions I've looked at makes it unclear how either of the terms can be distinguished from each other. Can something be done about this?
The best definition I could find is this: http://www.openprojects.org/software-definition.htm . After reading that, to me it seems like software is used to refer to programs in a much broader sense.
What I take away from this is that, I could classify my browser Firefox as a piece of software, in a broad sense. Specifically, my browser Firefox is located in /usr/lib/firefox/firefox
, that is the location of the program. Firefox spawns a bunch of instances of this program that run in parallel, each called a process. I suppose in this case, the software does not refer to just /usr/lib/firefox/firefox
, it refers to all the programs that come with it (other executables invoked internally like the crashreporter
, as well as other shared object (aka DLL) files).
If what I just said is in fact correct, I don't think the current definition does a good enough job in communicating what software actually is.
Am I onto something?
ZaidhaanH ( talk) 14:07, 18 January 2022 (UTC)
Software = Programs + Data
. I don't intend to get ahead of myself and try to emphasize this more in the article. But I do think it's interesting how both the software and computer program articles (particularly the lead section) are so similar. Maybe this ambiguity is just something we'll have to deal with. It's not too bad though, I do recognize that the computer program article mentions some of the more nitty gritty details of a singular program (ie. languages, cohesion/coupling, even code examples), whereas the software article mentions much broader things (ie. quality, reliability, patents). However, quite annoyingly there is a bit of overlap too (sw: types#application software <-> prog: functional categories#application software). Oh well! My programmer brain is telling me some decoupling needs to be done but maybe things are okay just the way they are.
ZaidhaanH (
talk)
19:24, 18 January 2022 (UTC)
I propose to add two citations to the section:
Desktop applications such as web browsers and Microsoft Office and LibreOffice and WordPerfect, as well as smartphone and tablet applications (called "apps").citation needed
https://www.pcmag.com/encyclopedia/term/desktop-application
https://www.computerlanguage.com/results.php?definition=desktop+application Mcscroogeduck ( talk) 16:20, 27 March 2024 (UTC)
![]() | This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Critic of:
Computer software (or simply software) is the manifestation of a computer program in the form of data stored in the memory of a computer. This data can be executed (i.e., can perform the task of the program it embodies), either by the hardware of the computer directly, or by interpretation by another piece of software on the computer. |
Content added by Kenny sh, which I am moving here because
Computer software is kind of information stored in computer memory and processed by computer.
From a point of view of computer hardware computer software devided to computer program and data.
Computer software could be called as software or SW.
Many peoples mix up Software with computer program. Computer program is just instrctions for CPU, while Software is much more wide range of compuer informatin, includung data, text, databases, html, media etc. Computer program is main part of computer software. Computer software without computer program is just set of data. Example: database is SW, but not program, DBMS is SW and programm.
OK, now I will expand on why I believe Kenny sh's definition is incorrect. First, Kenny wrongly assumes that a computer program contains only "instructions" and not "data".
The distinction between the two is not clear at all.
Have out read books of Nikolaus Wirth, Donald Knuth?
There is a lot of different types of data. Some of kind of data is part of programm, another not (like DB) but still part of SW. Kenny sh 08:27, 5 May 2004 (UTC)
A program is an abstract concept, like an algorithm. A program may indeed contain "data" (in the form of hardcoded constants, for example). Conversely, mere "data" may contain "instructions", or may itself be a program when viewed at a different level of abstraction; consider the following:
Are these instructions or data? The distinction is nearly meaningless. But it is clear that all of these implement "programs" in some sense, and therefore must be considered "software".
Because of Program is subset of Software, definition of Software based on Program is wrong. Kenny sh
Kenny: In comments elsewhere you have even disputed the obvious fact that software may be executed by other software, not by hardware.
Furthermore, your edits and comments have been rude.
You have already admitted that you are not an English speaker; please consider the possibility that you do not know the English definition of "software", and your edits here are mistaken.
Regarding your example above that an HTML file with no scripts is not a program, I disagree. Here is where you are fundamentally wrong: the question of whether a piece of data is a program or not is in the eye of the beholder. A piece of HTML file can be viewed as "dumb data", or it can be viewed as a complex constraint-based specification of a graphical rendering. (Are you familiar with Prolog and the CLP family of languages, and declarative programming in general? Something tells me you are not, and that your notion of "programming" is strongly informed by a handful of imperative languages.) All software is therefore a program of some kind.
I will concede this entire argument if you can answer the following question: is the following line of text a program, or not?
"Hello, world."
Have at it. k.lee 00:09, 11 May 2004 (UTC)
Lastly, Kenny, please invest some effort in checking the grammar of your edits before posting them, and use the talk pages (not the article itself) when you want to talk about the article. k.lee 00:36, 5 May 2004 (UTC)
p.s. Not all computer software executes directly on the CPU. Software that is interpreted or executed on a virtual machine does not depend on the CPU at all.
k.lee 00:38, 5 May 2004 (UTC)
Dear k.lee, please usage your usage of word manifestation. It seems me not sutabe. Kenny sh
Sometimes (especially in older texts) software denotes all the data that a computer processes, including "inert" forms of data that do not implement programs. For example, some dictionaries [1] list a meaning like the following:
Definitions like this one are less commonly used in modern times, and can cause confusion where they are used (e.g., in the Debian Social Contract). On the other hand, this definition arguably remains useful because the distinction between "inert" data and "active" programs is not always clear.
Hey guys, following a request on Wikipedia:Cleanup I've taken the liberty of re-writing the introduction in plain English for the benefit of non technical readers, with a specific link to this page to alert people to these various discussions. I hope you may find this an acceptable work around - perhaps even good enough to remover the disputed tag????
top of page
regular definition Computer software (or simply software) is a collection of programs and data held in the storage of a computer for some purpose. .................. |
Software's relationship with hardware is two-fold. Firstly, software is stored in memory (either RAM or disk or otherwise; it does not matter). Secondly, software runs on hardware, which is a colloquial term meaning that the hardware interprets the program, as it resides in memory, by reading instructions, which it then executes. The important point is that software, like other kinds of programs, is made up of a series of instructions. Computer software is developed and written by programmers, often aided by pre-existing software tools, for a particular digital computer or operating environment.
The bulk of the instructions in a software program can be grouped into general types: loading data from and storing it to memory, mathematical operations (most of which reduce down to addition and subtraction), bit manipulation (working directly on the binary representations of numbers: changing or re-ordering the actual bits which make them up), logical operations and control flow. [This should be made into a list.]
On modern computer systems, software programs have to satisfy various compatibility requirements, including using the correct instruction set architecture (ISA) and application binary interface (ABI). The former ensure that the CPU can understand the program, and the latter that the operating environment can properly load the program into memory.
Until a program is run on a computer, there is no relevant distinction between it and generic binary data. Technically, all data in memory is noise except in the case where it is comprehensible by some process. For more on this, see information theory. Thus, the most important aspect of any true program is that it can be read and understood by a computer (specifically, the CPU) as a sequence of instructions to be executed. In this way, a software program can be specifically defined as a special case of a program or algorithm, in this case, one which can specifically be understood by a real computer in practice. This is only possible because the CPU inside a computer is specifically designed as a general purpose data processor, with a published ISA and the ability to communicate with memory.
The work of creating software is called software development. Whether this is in fact the same as software engineering [the same article appears for both terms] is regularly debated.
All computer software is written using a programming language of some sort, and is then either compiled to native code (in other words, to a form recognizable by a particular computer platform) or is interpreted by a virtual machine or interpreter. The interpreter itself is usually a native program. There are many kinds of software programs in existence, but those which do not run natively on a digital computer may be considered to be a different class than those which do. The distinction is, admittedly, blurred, because it is possible (and nowadays quite common) to virtualize existing hardware to allow software intended for one computer, either real or virtual, to be run on another computer. In fact, many virtual computers have no actual hardware counterpart.
It can be arguedIt can be argued that software written for interpreters is, in fact, not software proper, any more than a program written in any high level language is software. Both require translation to native form, either in advance, or inline with execution, before they can be used. In addition, it is a fact, as opposed to an opinion, that at any moment in time, a given program can either be processed natively by an existing computer system, or not, and thus the distinction is objective, whether or not it is considered especially relevant to the average user.
Also to consider -- brief intros or at least links to (to make this article the top of the computer software tree):
Initially, computer software was written monolithically, that is, as one program which ran directly on hardware and without the support of an operating system or libraries (see below). This quickly became untenable as programs grew in complexity. Various strategies were invented to alleviate this, including the creation of sub-routines, then software libraries, and more recently the idea of object oriented programming. Other strategies undoubtedly exist, and more will be created, by necessity, as a means to reduce the workload on programmers and to improve software reliability by focussing effort on improving existing software, instead of re-writing it from scratch.
Modern systems utilize software re-use principles ubiquitously, primarily through the use of the operating system and software libraries, but also through the general idea of software services, which nowadays regularly span multiple computers.
Operating systems provide a number of benefits to computer programmers and users. In addition to code re-use, they enable platform portability by providing an abstracted software interface to hardware features. In the case of native programs, it is theoretically possible to abstract all features except the CPU. CPU compatibility can exist, but it is a feature of the CPU, not the operating system. For example, programs written for Windows NT 4 targeting the Intel 80486 processor can reliably run on Windows NT 4 running on a PC using AMD Sempron processor (because the AMD provides ISA compatibility with the 486), but not on Windows NT running on an Alpha processor. However, the original PC can replace most other hardware, such as the video display and graphics adapter, keyboard, mouse, and audio circuitry, in the event that those are supported by operating system, and the software will likely still operate as expected.
Device drivers are a component of operating systems which use the concept of modularity and code re-use to allow operating systems to be extended to support additional hardware without re-compiling the operating system. This is important, because it allows an operating system to support hardware devices that do no exist at the time the software is delivered to end users.
A software library is a collection of general purpose program code which can be used by multiple software programs, thereby removing the requirement that the program include the functionality inside itself, consequently saving the program's developers having to perform the work of creating it. Most operating systems include a large number of software libraries for common tasks, over and above hardware abstraction. In addition, many software libraries are produced and marketed separately, and software developers often create their own libraries, for purposes of modularity and to allow simultaneous development of different portions of the program.
I think, this paragraph sould to be like this. Classical division of software in computer science is system and application software. I don't understand devision to platform, user software in top level of classification. Conan 21:05, 7 Nov 2004 (UTC)
In computer science all software divided to two big classes:
See the rest of this discussion page for explanation and references. As far as I can tell, there cannot be any dispute over the fact that there are *many* kinds of software. The real debate is about what the "computer software" page should say. If this page is about "computer software" then it should openly discuss all kinds of computer software, rather than limiting it to jsut the CS point of view. At least that is what I believe. If you want to create a separate page for the narrow-minded CS concept of software, that would would be fine by me. -- The phantom avenger for software engineering
Since this article has such a general title, perhaps it should focus more on the difference between software and hardware than the various different ways of classifying software.
Computer science does not make a distinction between operating system software and application software. This is a practical distinction made in the software industry, for organizational, conceptual, reliability and security reasons, but is of little interest to computer science proper. Operating systems enable abstraction of a hardware interface to a software interface, allowing two things: portability of application software, and software re-use. These are engineering issues, not scientific ones.
I very surprised to see more top SW classes, except system and application. Who can explain me nature of others classes? Kenny 12:52, 2004 Oct 25 (UTC)
I do not understand how the facts and arguments regarding software classification have much bearing on the description of "Computer software", or how it enlightens readers. Far more important is what computer software is and how to distinguish it from what is not computer software, for example other algorithmic processes, or algorithms themselves.
If such classification were relevant, it would be much more important to use better classifications than one based on who produced the software, since generally that is not immediately evident from the inspection of a program on its own, say, without benefit of the programmers' names or other information. A program on its own can be distinguished primarily based on the operating environment in which it runs. Some software runs on PCs. Some runs on embedded systems. Some runs in directly on the hardware or "standalone", while others run in virtual machines or interpreted environments. Some software runs in "batch mode" without user intervention, while other software has a user interface. Some user interfaces are light-weight and use only text for input/output. Others are heavy-weight and use GUIs and multiple hardware input devices. Some software runs over the Internet through a browser or other intermediary client. Some software runs on multiple machines simultaneously. These are real, sensible differences. The experience and purported skill level of the programmer is irrelevant when considering the software itself.
The most widely used programming language in the world is Visual Basic. It is used for all sorts of scripting work and custom programming. Spreadsheet templates and scripts encompass as much development every year as all other applications. That is reality.
User programming is a huge third branch of software.
This matters, because computer software is used on software engineering as the main definition of software. (Kenny did that). Anyways, applications tend to be written by SE people while users software is written by everybody. This distinction must be made clearly to define SE properly. If this page does not want to define all software, then the SE page must use some other page as the main definition.
CODE TITLE Number in 2002 15-1021 Computer Programmers 457,320 15-1031 Computer Software Engineers, Applications 356,760 15-1032 Computer Software Engineers, Systems Software 255,040
In computer science all software divided to two big classes:
System Software
Application Software
What about embedded software? I'm not sure it fits into either system or application. Perhaps computer science should be split up into three classes:
System Software
Application Software
Embedded Software
The usual convention is to have the link to the disambiguation page at the top, and not at the end of the first section. Also, the trend is to use the following template:
{{ redirect|Software}}
-- surueña 17:11, July 22, 2005 (UTC)
"As computational science becomes increasingly complex, the distinction between software and data becomes less precise." Is the quoted sentence the opinion of one of the authors of the article, or does it describe an issue brought up in the literature? Personally, I would argue that the distinction is not so difficult, but is one of context. That is, since programs are generally not self-modifying, any data processed by the program can be contextually called data, even in the case of a program which produces or processes other programs (compilers and interpreters). Even allowing for the existence of self-modifying programs, it is usually possible to distinguish between the portion(s) of the program which modify other parts of the program, but which themselves are not modified, and thus keep the distinction contextually intact.
In an actual program as found on disk, the distinction between actual code and data is in fact very explicit, and are frequently called the "text" and "data" segments. So I feel that the assertion as quoted is not tenable.
Computer
Although I go way back to the days when self-modifying code was considered the mark of a real programmer, lets concede that we will no longer consider that acceptable. Nevertheless, in recent years, to increase the flexability and minimize the impact of obsolescence of software, more and more of the 'structures' we had come to accept as 'hard' programmed are now input as, or modified by, data. This particularly applies, for example, to the format of input or output 'applications' data. And, since subroutines may be compiled as separate subprograms, and need not be bound (or linked) until run time, unknown future features may be added by simply adding such subprograms to the environment and using execution time calls which are input as data (shades of SNOBOL!).
Your comment, "I would argue that the distinction is not so difficult, but is one of context" puts me in mind of a very famous Jurist, who so famously remarked of pornography, that it was damned difficult to define, "but I know it when I see it!"
Needless to say, I concur with the earlier quoted statement. I have trouble enough defining data, without having to distinguish it from code. That latter distinction is usually a purely arbitrary one made on the basis of when the code or data is introduced to the transaction and how it is processed. It makes no difference to the computer, for example; its states may be changed by either code or data (which is a distinction with little difference).
Example: Does a branch on zero occur because of the coded instruction to do so, or because the data set the register to zero!?! normxxx 04:35, 1 January 2006 (UTC)
In its introduction, the article credits Alan Turing with the concept of software. Though he originated the theoretical framework for most software, the concepts of a sequence of instructions to be executed by a mechanical device precedes Turing. To my knowledge, the first person to have the idea was Charles Babbage in the form of his analytical engine. If you extend the concept beyond computation to simply as sequence of instructions to control a mechanical device, then Babbage was preceded by Joseph Marie Jacquard who invented a loom that was controlled by wooden punch cards.
I believe that Saying that Turing came up with the concept of software is wrong. I am hoping for feedback before changing the article. —The preceding unsigned comment was added by Mgrand ( talk • contribs) .
The term "lite" version shows up quite a bit, but I can't find any page that describes it. Usually it's just a feature-reduced version, but as it may or may not be free it doesn't necessarily fall into any of the shareware cateogies ( Crippleware, Demoware, etc.) Anyone know where I find information about this? Thanks! Ewlyahoocom 07:40, 8 April 2006 (UTC)
The section on patents is dangerously short--it steps close to (and possibly crosses) the POV line due to its brevity. Its contents are overall fairly legit, but at a quick glance seem biased. It definitely needs to be expanded. 141.149.206.197 03:32, 17 June 2006 (UTC)
Somebody made what appeared to be some very significant changes to the article, today. It didn't look like vandalism, but I'd like to encourage discussion before such serious changes are made. These diffs may prove helpful: [3], [4], [5]. Thanks for your time and efforts, and if you are the editor in question, you have my apologies for the intrusion. Thank you. Luna Santin 08:26, 21 June 2006 (UTC)
Our article on Intelligent Machines Research Corporation says that the word was coined by William Lawless, Jr. of IBM, not by Tukey. Which is right? -- Heron 20:46, 11 July 2006 (UTC)
The software governs the behavior the machine. The meaning and state of each bit in program memory is the link between the software and the hardware worlds. The medium on which the software resides can be any number of conceivable things: punch card; scantron; photograph; dipole matrix; brain; heterogeneous polymer. Just name it. If only I could explain the essence of code. The machine lives by the code and dies by the code. The program is the machine's way to providence.
-- LGWJ 17:34, 15 September 2006 (UTC) circa
This needs to be translated to comprehensible English before being returned to the article.
It's pretty extraneous and redundant with the second paragraph (which is not serving as the article's lead). The Transhumanist 06:22, 16 November 2006 (UTC)
The English have had somewhat of a history of being intrinsic and in essence transhuman like cultures long gone or with great longevity. In an ideal world "comprehensible" and "abstract formal" would be one in the same. If comprehensible explanation is more marketable then it should perhaps be the best choice. I will try to bridge the gap between purity and comprehensibility later. On this, we can choose to work together or to work estranged, but not in contradiction.
ATTEST,
-- Lindberg [18:49, 1 December 2006; 13:49, 1 December 2006; 06:00, 2 December 2006 (UTC)]
The choice of action regarding the removal of the "incomprehensible lead paragraph" was a rather preemptive, but the idea of a wiki is that readers have the option of being editors too. No one who makes a sensible contribution should have to ask for permission first, which is a respectable option if one so desires.
I am not sure if a problem was solved by the removal of this "incomprehensible lead paragraph." If one is not apt and not bold enough to perform correction, then one should consult prior to complete removal. I should assume that The Transhumanist, as a most active contributor to Wikipedia, did consult someone (an experienced professional and theorist perhaps).
-- Lindberg 06:47, 2 December 2006 (UTC)
what is a software monitor? —The preceding unsigned comment was added by 206.48.0.60 ( talk • contribs).
I propose to merge this article with/into Computer program. There are many topics in each article that either should be, or are, covered in the other article. Therefore, I think these articles ought to be merged, to stop any further duplication of effort.— greenrd 12:40, 15 April 2007 (UTC)
Perhaps, rather than merging, we could take software to be something higher up the hierarchy than computer programs. Something along the lines of: "Computer software consists of computer programs, libraries, configuration and data files, and their associated documentation."
I know I suggested simply redirecting this page in an earlier thread. I can almost see myself being willing to go along either direction.
The hardware/software discussion completely misses the point and should be relegated to a subsubsection or a footnote. Derek farn 01:22, 23 April 2007 (UTC)
Against Merger Completely different things John Cameron 10:07 (PST) —The preceding unsigned comment was added by 189.173.48.228 ( talk • contribs) 05:07, 14 Aug 2007 (UTC)
Redirects here, but there really isn't any obvious discussion of this term... Since I was simply trying to learn what it meant specifically, I'm left in the same posisition as before coming to this page. Crocadillion 18:46, 7 May 2007 (UTC)
On a paper entitled "Uncovering the epistemological and ontological assumptions of software designers" (2004), David King a Research Student at the University of York discusses the object-oriented and formal design method of successful (and unsuccessful) software design projects. www.cs.york.ac.uk/mis/docs/AIM15.pdf He describes how recent work in software design has often lost sight of the original foundations leading to a blurring of the distinction between the term’s ‘software’ and ‘programs’. In his paper, he characterise-es the term's and distinctions and the reasons why the differences are important when designing programs or software. I think the distinctions are important also. Martrn 00:19, 20 May 2007 (UTC)
Just to point out I have found some vandalism in the article. We might want to lock editing for a few days. (suggestion) September 6, 2007 6:44 PM (Eastern)
hey joe —Preceding unsigned comment added by 170.177.24.11 ( talk) 16:37, 15 October 2007 (UTC)
Unfortunately, the majority of literature uses the terms "software" and "program" as synonyms!!! But, the term "SOFTware" (by itself) connotes that it is the COMPLEMENT of "HARDware". All agree what hardware is. Then "software" is "anything, PART of a computer, that is NOT hardware, i.e. the programs AND the data a computer processes and produces". With this definition, we can avoid the contradiction in such often used statements that "a computer is comprised of hardware and software". Here, if we mean software = program, then an image which is neither hardware nor program, is NOT part of a computer. -- Kaseluris, Nikos 18:35, 3 December 2007 (UTC)
I think Nikos would like to say that everything inside a computer is either hardware or software. Since a web page is inside a computer, but it is not hardware, then a web page must be software. And so I think Nikos would like to revert this edit: "a web page is not software".
Given that computer programs are one kind of software, what are the other kinds of software? Is a web page a kind of non-program software? -- 68.0.124.33 ( talk) 14:31, 8 October 2008 (UTC)
- Software is a general term for the various kinds of programs used to operate computers and related devices. (The term hardware describes the physical aspects of computers and related devices.) Software can be thought of as the variable part of a computer and hardware the invariable part. Software is often divided into application software (programs that do work users are directly interested in) and system software (which includes operating systems and any program that supports application software). The term middleware is sometimes used to describe programming that mediates between application and system software or between two different kinds of application software (for example, sending a remote work request from an application in a computer that has one kind of operating system to an application in a computer with a different operating system).
An additional and difficult-to-classify category of software is the utility, which is a small useful program with limited capability. Some utilities come with operating systems. Like applications, utilities tend to be separately installable and capable of being used independently from the rest of the operating system. By; Michael D-5 —Preceding unsigned comment added by 125.60.241.19 ( talk) 03:42, 23 July 2008 (UTC)
I think such a category is needed and missing from Category:Software. Thoughts? -- Piotr Konieczny aka Prokonsul Piotrus| talk 23:37, 25 October 2009 (UTC)
Once a user searches for software, it redirects to computer software. But today, software pertains to computers as well as PDAs, Mobiles, Electronics, etc. Having the entire topic be based on just computer software is just not right. I had made a separate section for software for the very purpose hoping that would happen, but it was reverted. I propose that a separate page be created defining what a software is and the remaining be made as sub classifications. It would then be much more well organised as well as informative.
I have finished my program that will compress forever without error. "Bottomless Data Compression" or "Infinity to one" compression, so to speak. Who do I demonstrate this to so that I may be sourced here without loss of the intellectual property rights? —Preceding unsigned comment added by 71.114.2.163 ( talk) 17:35, 10 February 2011 (UTC)
fa:نرم افزار کامپیوتر — Preceding unsigned comment added by 31.56.40.230 ( talk) 06:46, 6 July 2011 (UTC)
Ah, compressing by a factor of infinity is easy. Just take all the data in and produce none in return (for example, crash). I have written some programs like that, as I suppose every early student in computer science. The hard part is getting the data back out! Does make a good joke, and might mention if there is a source. W Nowicki ( talk) 17:40, 6 July 2011 (UTC)
I propose to merge this article into Software. They are the same stuff.-- Kittyhawk2 ( talk) 01:12, 10 January 2009 (UTC)
Has the merge been undone? I don't understand why the article is called 'computer software' Can there be any other kind of software important enough to require the word 'computer' added to 'software' in the title? It seems nonsense to me. If no one oposes in a reasonable time, I will transfer this article to software, and redirect 'computer software' to software. -- Jasón ( talk) 02:37, 29 December 2011 (UTC)
The result of the move request was: moved to Software. Favonian ( talk) 18:41, 5 January 2012 (UTC)
Computer software → Software – Is there any other kind of software important enough to require the word 'computer' added to 'software' in the article's title? (I don't thing that clothing qualifies). As already mentioned in this talk page, software requires a computer to run, so there is no need to explicitly mention it. But most important of all, nobody talks about 'computer software' but rather about 'software'. The current name seems quite awkward and unjustified to me. Am I missing any rationale for NOT changing it? Thanks. Jasón ( talk) 14:53, 29 December 2011 (UTC)
The history section is totally unsourced, redundant, and contains factual errors. Not sure if we should just remove it for now. W Nowicki ( talk) 19:09, 5 June 2010 (UTC)
From my point of view this section is very poor, specially if compared to the articles about the history of free and open-source software and the history of computing hardware. In logic terms, free and open-source software are a subset of software, and there should be a full article on software history which also included the history of free and open-source SW. Unfortunately I'm not an expert to carry out the task, but I'm sure there is enough expertise out there.-- Jasón ( talk) 18:51, 27 December 2011 (UTC)
I agree, the history section seems totally wrong. It seems to claim that software was only available from OEMs until
the advent of the PC. However, I believe games were available for the AppleII and similar, and programs like Unix and Emacs pre-date the IBM PC (just checked!) My prof says he used a package such as SPSS or something on the mainframes, and it was sold by the software vendor, not the OEM. — Preceding
unsigned comment added by
Snydersware (
talk •
contribs)
19:15, 22 April 2012 (UTC)
The article reads:
"It is hard to imagine today that people once felt that software was worthless without a machine."
This may be true for some people -- but equally, it maybe be untrue for other people. In any case, the phrase "hard to imagine" is highly subjective and un-encyclopedic, and should be re-written or removed.
Karl gregory jones ( talk) 20:38, 13 December 2011 (UTC)
Done --
M4gnum0n (
talk)
10:22, 12 June 2012 (UTC)
This article was really bad and read like a mismash of several different textbooks, some from the 1990s - the lead was too long, certain statements were outdated or simply wrong, and there was an amazing amount of repetition, the like of which I've never seen anywhere else on Wikipedia. I am presently rewriting and reworking parts of the article.-- greenrd ( talk) 18:22, 21 September 2013 (UTC)
Might I suggest a "Theory" subcategory under software topics? Software has now evolved to exist as a part of technology that is currently being studied in-depth by academics. Wendy Chun's "On Software, or the Persistence of Visual Knowledge" is one such example. She writes, "Software perpetuates certain notions of seeing as knowing, of reading and readaibility that were supposed to have faded with the waning of indexicality. It does so by mimicking both ideology and ideology critique, by conflating executable with execution, program with process, order with action." Another work of hers, "Invisibly Visible, Visibly Invisible", is also of note. Taylor Bohl ( talk) 18:53, 7 March 2013 (UTC)
I see that a previous merge request for this article with Computer program was rejected. However the article starts out by saying that software is also known as computer programs, and the computer program article does the same in reverse. If they are the same, then the articles should be merged, and if they are not the same, then the articles shouldn't say that they are. It seems to me that the difference is that software includes libraries, which aren't programs because they don't have a single entry point. However other files types such as documentation files and audio files, are not computer software, even if they are shipped as part of an operating system. Horatio ( talk) 10:44, 20 May 2014 (UTC)
According to the definition of software in the article, "ANY set of machine readable instructions that directs a computer's processor to perform specific operations" qualifies as software. This would make computer programs a subset of software, only if they direct the processor of a computer to perform specific operations. According to the definition, documentation files, audio files, as well as computer programs can only be considered as software if they direct a computer's processor to perform specific operations. However, if they don't direct a computer's processor to perform specific operations, the set of machine readable instructions is not software. This means, according to the definition, that a compact disc that contains binary values in a machine readable format, that thanks to our pervasive von neumann architecture, can be considered to be software when it actually directs the cpu. It is important to keep in mind that software can exist in these types of binary blobs, and that these binary blobs can be positioned to direct the cpu to operate according to the instructions provided. If we fail to keep in mind that a specially crafted data file can exploit a buffer overflow in the code that handles the data, causing what we normally think of as data to become instructions, we will find ourselves rooted by those who do keep this in mind. — Preceding unsigned comment added by 23.126.215.162 ( talk) 10:29, 23 January 2015 (UTC)
I just noticed that a large section of this page is a direct rewrite of a passage from the book "Information Technology in Business", by Amir Manzoor. The section on the "three layers of software" (platform, application and user-written software) is basically this text: https://books.google.co.uk/books?id=b5x_NHo5g2oC&pg=PA144&lpg=PA144&dq=%22three+layers%22+of+%22user+software%22&source=bl&ots=rc7NCLACoS&sig=S6OluKj4eERI6sh4Ybkosol806U&hl=en&sa=X&ei=NxPBVL39IYOL7Abo7IGIAQ&ved=0CDAQ6AEwAg#v=onepage&q=%22three%20layers%22%20of%20%22user%20software%22&f=false
This section specifically:
"User-Centric Software Classification-Layered Approach
People using modem general-purpose computers see computer software differently than a computer programmer. For them, the computer software can be divided into three layers each performing a variety of tasks. 'Fhese three layers are platform, application, and user software.
Platform Software This software allows a user to interact with the computer and its peripherals. Platform software includes firmware, device drivers, and operating system.
Application Software When a common user thinks of the software, it is generally the application software. Application software is independent programs from the operating system. Typical examples of application software are office suites and video games. Application software is generally purchased separately from the computer hardware, but they may be bundled with the computer.
USER-WRITTEN SOFTWARE User-written software is created by users and caters to the specific requirements from the users. Examples of user-written software are spreadsheet templates, word processor macros, scientific simulations, and scripts for graphics and animations."
I am new to Wikipedia, so please be gentle. Shouldn’t this be mentioned in the "References" section? I wanted to do it myself, but don't know how yet.
Michael Beijer (
talk)
15:25, 22 January 2015 (UTC)
Evaluation on the Wikipedia page of Software.
1.There should be more citations included so as to help provide verification and enhance the reliability of the article, so that it can be more widely used among Wikipedia users.
2. There are footnotes included that are accurate and it brings the user to the relevant pages if the users require more information on what Wikipedia has provided them with.
3. References are included and this increases credibility of the information posted in the article.
Evaluation done by Ai Wey and Jass for AB1401. — Preceding unsigned comment added by Jasslimhuimin ( talk • contribs) 11:15, 25 March 2015 (UTC)
Why isn't " Software Management" even mentioned in this article? -- Alien4 ( talk) 16:59, 18 February 2013 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Software is a set of instructions, data or programs used to operate computers and execute specific tasks. Rshaik1993 ( talk) 16:33, 23 May 2019 (UTC)
Kakaka Lipakmu ( talk) 17:59, 27 May 2019 (UTC)
A discussion is taking place as to whether Portal:Software is suitable for inclusion in Wikipedia according to Wikipedia's policies and guidelines or whether it should be deleted.
The page will be discussed at Wikipedia:Miscellany for deletion/Portal:Software until a consensus is reached, and anyone is welcome to contribute to the discussion. The nomination will explain the policies and guidelines which are of concern. The discussion focuses on high-quality evidence and our policies and guidelines.
Users may edit the page during the discussion, including to improve the page to address concerns raised in the discussion. However, do not remove the deletion notice from the top of the page. North America 1000 07:05, 17 August 2019 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
In design and implementation, change: "Computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods." to "Like entertainment media that can be transmitted digitally, computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods. The cost to reproduce is near zero and the cost to create is high, making piracy a serious concern"
In Industry and organizations add the following at the end: Many professional societies have and continue to play a major role in the software industry. Two of the most influential are The Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineering (IEEE) Computer Society which jointly sponsor many world-wide widely attended annual professional conferences. Rich Cohen (Software Eng.) ( talk) 04:33, 17 February 2020 (UTC)
{{
edit semi-protected}}
template. -
FlightTime (
open channel)
04:36, 17 February 2020 (UTC)Software is a set of programs, which is designed to perform a well-defined function. A program is a sequence of instructions written to solve a particular problem.
There are two types of software −
System Software Application Software — Preceding unsigned comment added by 182.74.210.154 ( talk) 03:41, 11 February 2020 (UTC)
JavaScript scripts should be changed to client side scripts — Preceding unsigned comment added by JohnySoko ( talk • contribs) 03:59, 26 February 2020 (UTC)
![]() | This
edit request to
Software has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
A software is set of programs running as a process on a platform (like OS, often called PaaS in cloud) supported by hardware infrastructure (physical machine, called IaaS in cloud terms). 122.162.29.41 ( talk) 12:28, 11 November 2021 (UTC)
This page has so many missing citations, and I don't know which sources those parts of the article came from. Can you please add more citations? If not, then this article could be deleted through an RFD request. PortalPuppy31 ( talk) 18:29, 25 January 2022 (UTC)
The "Execution" heading was changed to "Executionpammi" on Jan 25. Presume this is a typo. Noumenon72 ( talk) 21:06, 7 February 2022 (UTC)
This article was the subject of a Wiki Education Foundation-supported course assignment, between 21 September 2022 and 8 December 2022. Further details are available
on the course page. Student editor(s):
Kathyljy (
article contribs).
— Assignment last updated by Kathyljy ( talk) 08:19, 10 November 2022 (UTC)
Is there a term that refers to a union of programming languages and artificial neural networks? Wesxdz ( talk) 22:38, 24 August 2023 (UTC)
I feel that the current definition of Software ("a collection of instructions that tell a computer how to work") is a little too similar to that of a Mobile program ("a sequence/set of instructions"). There does seem to be a bit of similarity between the two terms. I've looked at dictionary definitions and the ambiguity left by the definitions I've looked at makes it unclear how either of the terms can be distinguished from each other. Can something be done about this?
The best definition I could find is this: http://www.openprojects.org/software-definition.htm . After reading that, to me it seems like software is used to refer to programs in a much broader sense.
What I take away from this is that, I could classify my browser Firefox as a piece of software, in a broad sense. Specifically, my browser Firefox is located in /usr/lib/firefox/firefox
, that is the location of the program. Firefox spawns a bunch of instances of this program that run in parallel, each called a process. I suppose in this case, the software does not refer to just /usr/lib/firefox/firefox
, it refers to all the programs that come with it (other executables invoked internally like the crashreporter
, as well as other shared object (aka DLL) files).
If what I just said is in fact correct, I don't think the current definition does a good enough job in communicating what software actually is.
Am I onto something?
ZaidhaanH ( talk) 14:07, 18 January 2022 (UTC)
Software = Programs + Data
. I don't intend to get ahead of myself and try to emphasize this more in the article. But I do think it's interesting how both the software and computer program articles (particularly the lead section) are so similar. Maybe this ambiguity is just something we'll have to deal with. It's not too bad though, I do recognize that the computer program article mentions some of the more nitty gritty details of a singular program (ie. languages, cohesion/coupling, even code examples), whereas the software article mentions much broader things (ie. quality, reliability, patents). However, quite annoyingly there is a bit of overlap too (sw: types#application software <-> prog: functional categories#application software). Oh well! My programmer brain is telling me some decoupling needs to be done but maybe things are okay just the way they are.
ZaidhaanH (
talk)
19:24, 18 January 2022 (UTC)
I propose to add two citations to the section:
Desktop applications such as web browsers and Microsoft Office and LibreOffice and WordPerfect, as well as smartphone and tablet applications (called "apps").citation needed
https://www.pcmag.com/encyclopedia/term/desktop-application
https://www.computerlanguage.com/results.php?definition=desktop+application Mcscroogeduck ( talk) 16:20, 27 March 2024 (UTC)