Talk:Computer software

From Wikipedia, the free encyclopedia

This article is within the scope of Computing WikiProject, an attempt to build a comprehensive and detailed guide to computers and computing. If you would like to participate, you can edit the article attached to this page, or visit the project page, where you can join the project and/or contribute to the discussion.
??? This article has not yet received a rating on the quality scale.
??? This article has not yet received an rating on the importance scale.

Contents

[edit] New Section: Software and Hardware

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.

[edit] New Section: Creating Software

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 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

[edit] Origin of word

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)

Neither appear to have sources confirming either coinage. The OED, 1989, only has its first quotation from 1960. If there is a good source for the earlier usage, then that one could be confirmed. —Centrxtalk • 21:04, 11 July 2006 (UTC)

[edit] Identity of Purpose

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

[edit] Moved from article to here for discussion

This needs to be translated to comprehensible English before being returned to the article.

Software fundamentally is the unique image or representation of physical or material alignment that constitutes configuration to or functional identity of a machine, usually a computer. As a content of memory, software in principle can be changed without the adjustment to the static paradigm of the hardware thus without the remanufacturing thereof. Commonly software is of an algorithmic form which translates into being to a sequence of machine instructions. Some software, however, is of a relational form which translates into being the map of a realization network (see VHDL).

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)

[edit] English

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)]

[edit] Executive Measures

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)

Please reply to other posts by prefixing your comments with a single :. Please do not create unnecessary extra sections, as this is confusing to newcomers.—greenrd 12:40, 15 April 2007 (UTC)

[edit] Software monitor

what is a software monitor? —The preceding unsigned comment was added by 206.48.0.60 (talkcontribs).

[edit] Proposed merge

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)

This article is not particular well written and contains many incorrect assertions. I would propose simply redirecting this article to Computer program. Derek farn 14:36, 15 April 2007 (UTC)
If redirecting is warranted, Software should be directed to the Software (disambiguation) page. Oicumayberight 20:03, 15 April 2007 (UTC)
Yes. I think it could just be a one-line definition:
Any and all useful material from Computer software would then be moved into Computer program and/or library (computing), and possibly rewritten. Any objections?—greenrd 22:16, 22 April 2007 (UTC)
See if my edits can help computer program survive. Computer programs are definitely computer software, and computer software are definitely computer programs. However, computer software is a collection of computer programs, but a computer program is not a collection of computer software. Timhowardriley 21:03, 18 April 2007 (UTC)
My bad; I thought I was in the "computer program" talk. My message remains the same, but think of it as a "computer program" talk subject. Timhowardriley 21:15, 18 April 2007 (UTC)
Well, let's remember that computer software is three things: programs, libraries (including components, classses, etc.) and their associated documentation. (Software documentation has its own article and there's no overlap problem between that article and these ones, so I'll not consider that any further). Actually, I think the amount of material currently in Computer program which is truly specific to programs, as opposed to material which applies both to programs and to libraries, would fit comfortably in one section of the Software article. Most of the material in Software is about software in general, so the Software article definitely should not become a redirect. But yes, clearly both articles need correcting and, in part, rewrites. So, I suggest merging Computer program into Computer software - please ignore my earlier, contrary opinion which I have just put lines through!—greenrd 22:59, 22 April 2007 (UTC)
Ada Lovelace is credited with writing the first computer program, not the first computer software. Timhowardriley 23:33, 22 April 2007 (UTC)
I'll grant you that - but I said there's one section worth of material actually on programs, not that there's no material. Clearly there is some material. That's not disputed.—greenrd 23:38, 22 April 2007 (UTC)
  • Cut and pasted from computer program talk:
If merged, which article would go away? Timhowardriley 19:03, 22 April 2007 (UTC)
Let's keep the discussion on the proposed merge in one place, please.—greenrd 22:11, 22 April 2007 (UTC)
I previously linked an article that read in part, "bla,bla,bla is a computer program that ..." It would sound awkward if it read, "bla,bla,bla is a computer software that ..." Timhowardriley 23:05, 22 April 2007 (UTC)
We deal with problems like that all the time, by using piped links and/or redirects. There would be a redirect created anyway after the merge, so it would be fine as it is.—greenrd 23:36, 22 April 2007 (UTC)
  • I disagree with the proposed murge. computer software and computer programs are not mutually inclusive, neither are they mutually exclusive. They are neither simular nor are they they same. They require seperate definitions. For example one form of system software take windowws as an example, this contains graphical eliments and sound files. (eg a file on a desktop or the windows big ding on boot up). None of these two data files, both contained within system software could ever be described as a Computer program. Another example for reason for me to disagree is a firmware as example of this is a bios chip that contains programs and may contain computer data such as a graphic file logo or something as well as computer programs. However it is not software, it is firmware, which by definition can not be changed on the fly and should require user or administrivte intervention to change the computer program or code. To merge these two topics will introduce ambiguation where there should be none. Martrn 08:27, 18 May 2007 (UTC)
I fully agree that they are not the same thing; however, a computer program is a type of computer software, so it could be a section in the computer software article, and links which previously pointed to the computer program article could be changed to point to that new section. Sorry I didn't make that clear in my original proposal.—greenrd 10:38, 18 May 2007 (UTC)
  • What about Microcode. I belive micro-op-code or Microcode is low level program or a microprogram hardwired into many of todays CPU's to simulate earlier versions of processors and use a lower transistor count. It is not software. Software is changable/re-programmable/patchable. Microcode is a mico-computer program but it is not like software. The merging of software and computer programs feels like re-writing computer history a bit. In the 80's software was defined on occasion as computer programs and its assositated data stored on a floppy. (I am serious). What about punch cards. See Computer programming in the punch card era, where punch card's were not considered software, but they were considered computer programs. Because merging to these two topics, I fear we are introducing ambiguation where there need be none.
Software does not have to be patchable. The BIOS on the first IBM PC was stored in plain old ROM, and therefore could not be updated without upgrading the hardware, but the BIOS has always been considered to be software, as far as I know. Programs and their associated data stored on a floppy - not a problem. As for punch cards, they are a medium for storing software on; the fact that software may have been defined differently decades ago is not really to the point - the point is, are programs on punched cards considered to be software under today's definition? As far as I know the answer is yes.—greenrd 15:15, 18 May 2007 (UTC)
Against merge. I think the Computer program article can be populated with quality information, including historical information about programming, a treatment of the different programming paradigms, a discussion of the layers of abstraction used in modern programming, etc. There's a lot more information that can be added to make it a much better article. If Dr. Knuth wrote a few thousand pages on it, I'm sure we can come up with one article's worth of quality information. SqlPac 04:27, 22 May 2007 (UTC)
Topics like programming paradigms are not specific to programs - they also apply to libraries as well. Are we going to duplicate such coverage in both articles? This is exactly the sort of problem I was getting at.—greenrd 10:08, 22 May 2007 (UTC)
No, we are going to discuss computer programs of which the various forms of software are a subset. If you take a look at it now, the intro. has been re-worked using TAOCP as a guide, and we now have a formal definition of program. I think we can make the Computer program article a good quality stand-alone article. It's already sourced almost as well as this article (2 references vs. 3 references), and that will also change very shortly. I still vote to give it some time, and I am against merge at this time. You might want to consider merging this article into Computer program instead of vice versa. It would make more sense. BTW, libraries have their own paradigms to worry about, such as statically-linked libraries, DLLs, etc. So I'm not overly concerned about the overlap as long as the article stays in its lane. SqlPac 01:59, 23 May 2007 (UTC)
Merge. For no other reason than because they're the same thing. It is impossible to write a single defining sentence which does not rely heavily upon a definition of the other to make sense. That software is technically a superset is a technicality. That we could theoretically write an article on a narrow, mathematical definition of "program" does not mean that this is necessarily a good idea (or indeed that it couldn't be a subset of this article anyway). I'm planning to start work on this, which first of all means eliminating the incestuous redundancy between the two articles. Chris Cunningham 10:59, 13 June 2007 (UTC)
No, Do Not Merge.I do not think http://en.wikipedia.org/wiki/Software need to be merged with Computer Programme. Today Software is a more popular and known term then computer programme. —The preceding unsigned comment was added by 59.144.167.99 (talk • contribs) 11:26, 18 Jun 2007 (UTC)
*It should be merged, programs are basically software so theres no point in making wikipedia more confusing. Just merge it..-Glacerio
  • “Software” and “Program”, these two terms are always confused even by the experts in the subject field. This confusion causes further problems for example in the field of intellectual property, trade or licensing. In stead of merging these two terms we, in Wikipedia, should emphasize that these terms are different from each other and clearly point out the differences.SamirD
Against merge - between microcode (i.e. low level firmware burned onto the die of the CPU to define opcodes and simulate other chips), somewhat higher level firmware in ROM or EPROM on a main logic board (or in a user-replaceable plug in cartridge as once was common), and issues of "software" vs. "program", this is a bad idea. Far better: fix what we've already got.
FWIW, Programming paradigm already has its own article, as does Computer programming.
My personal and professional experience with computing goes all the way back to the days when programming was done using fancy wires and plug-boards (yikes! thank God we outgrew that!), punch cards for data, discrete transistor flip-flops for DRAM and magnetic core memory, the precursor to NVRAM. (That gargantuan machine barely exceeded the power of the basic 4 function calculator, routinely given away to school children these days, coupled with a heart-stopping electric bill.) Programming, debugging, and reverse engineering in raw machine code (Motorola's 6800-series chip sets) was a blessed improvemnet. (One of my all-time favorite tools was the EPROM burner.) Every time I look back, I am astonished by our progress and how easy it is now! I feel I am qualified to say merging is a bad idea.
Badly Bradley 22:36, 30 July 2007 (UTC)
  • No Merge: a computer program "is a set of instructions that controls the operation of a computer" (it can be three lines of code); computer software is "a collection of programs and procedures for making a computer perform a specific task" (that mediate the application). Source: Barnes & Noble's 2005 Essential Dictionary of Science. That makes eight for no merge. Will close this now. --Sadi Carnot 16:59, 16 September 2007 (UTC)

[edit] Perhaps a stand-alone article?

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 (talkcontribs) 05:07, 14 Aug 2007 (UTC)

[edit] Softography

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)

[edit] Differences of Software and Programs

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)

[edit] Noted Vandalism

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)

[edit] Definition of "SOFTWARE"

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)

WHAT is your "point"? What CHANGE to this article ARE you proposing? --Gronky (talk) 20:45, 14 April 2008 (UTC)

[edit] Anyone got a better screenshot?

A blank screen is hardly the way to show readers what Abiword can do. A screenshot showing text with various formatting, maybe some images or tables and a menu open would be more informative. --Gronky (talk) 20:43, 14 April 2008 (UTC)