Talk:Computer program/Archive 1

Conforming to Guide to Layout,
 * first paragraph should be short and to the point, with a clear explanation of what the subject of the page is.'''

See to current fist definition pagraph:

A computer program (often simply called a program) is an artifact that describes computations, and possibly actions that are to be carried out based on the results of those computations. A computer program can be manifested in several forms: The last of these usages is the one most strongly associated with the term "computer program", and in fact the term "program" is often used as a synonym for "software". When manifested in the appropriate hardware or software, a program becomes directly executable; that is, the program's embodiment can compute and act autonomously, without human intervention.
 * It can be written down on paper, like a cooking recipe.
 * It can be used to guide the fabrication of a piece of computer hardware.
 * It can be realized as computer software, i.e. data stored in the memory of a computer.

It is not short. Contains a lot of out of topic text. Explanation are not clear. What does mean "and possibly actions that are to be carried out based on the results of those computations"? IMHO, I see in the paragraph usefull for definition only phrase "A computer program describes computations". All other text better to move to one of other paragraph.

It is not complete. I propose, first paragraph after definition should associate program with Instruction, Algorithm. It should to mention goals of running program (Data processing, Data). It much more important than cooking, fabrication.

Please compare with one of professional copyrited trusable definition, from webopedia: Program is "An organized list of instructions that, when executed, causes the computer to behave in a predetermined manner.". IMHO, I like this definition. Of cource, it could be some improved.

I don't know why we should trust the Webopedia definition. Wikipedia seeks to be better than Webopedia. What are the qualifications of Webopedia's editors? They don't say. I suspect if you got any half-dozen Ph.D.s in computer science into a room, they would not come up with Webopedia's definition of "program". For example, a computer program written in a purely functional language like Haskell cannot, in any respect, be said to contain an "organized list of instructions". A functional program describes a computable function, which has nothing to do with an organized list of instructions. And what about constraint programming, or logic programming, or any of the plethora of declarative programming paradigms? Do you seriously think a Prolog program can be described as a "list of instructions"? Webopedia's definition is silly on the merits. I don't trust Webopedia and frankly appealing to its authority only lowers your credibility in my eyes.

I have inserted a paragraph break in the first paragraph. It's short now. If you want to move some mention of algorithm to the first paragraph, then go ahead. Don't muck up the definition by saying a program is a "list of instructions" though.

BTW, the reference to cooking is not trivial --- the "program as recipe" metaphor is a good one that helps laypeople understand intuitively what a program is. In fact, for a general-interest encyclopedia I think it's more important to give laypeople such intuition in the first paragraph than it is to mention the term algorithm, which is a technical term that is mostly of interest to computer scientists. k.lee 00:54, 11 May 2004 (UTC)

Cleanup
I have listed this article as requiring cleanup, because it is currently pretty vague and rambling. --HappyDog 17:30, 15 Feb 2005 (UTC)
 * I must heavily agree the article is in sad state, is biased, does comprise of a broad enough subject matter to include all the aspects of a computer program. No relevant sources.--Kim Nevelsteen 19:08, 20 August 2005 (UTC)

I understand and applaud the author of the existing first paragraph's intent -- but I think the confusion stems from a premature introduction of representational methods -- an important topic, but not for the first para.

I suggest:

A computer program is a set of instructions which, when carried out by a computer, achieve some result. One of the simplest theoretical programs consists of a single instruction that causes the computer to power down. A more typical example might be a series of instructions that direct the computer to calculate and display something on a computer screen in response to an input event like a mouse click.
 * I don't consider that the simplest program. From who point of view? Definetely not a programmers. And from the perspecitive of machine language, it isn't either. More concise would be better.--Kim Nevelsteen 17:06, 20 August 2005 (UTC)
 * Agree. There was once a zero-byte entry in IOCCC, that did nothing. It was also a computer program. A rather silly one, sure, but a program. TERdON 22:38, 21 August 2005 (UTC)

Go on to describe the concept of subprogram, since "commputer program" in its strictest sense usually refers to some collection therof.

Neural Networks
Sorry, I think the section about Neural Networks is rubbish for this article. Neural Nets have to be programmed as well. The section about Neural Nets should be removed entirely or reduced to a one liner with a reference to that article. IMHO --Kim Nevelsteen 17:14, 20 August 2005 (UTC)

Peanut and Jelly sandwich
Peanut butter and jelly sandich is a tribute to my school grade teacher who taught me just how difficult it is to convey to another person exactly how to make a peanut butter and jelly sandwich. "Do you use your fingers to scope the peanut butter or a knife? Did you forget to mention to remove the lid? etc..." --Kim Nevelsteen 22:08, 21 August 2005 (UTC)

Interpreted and executed?
Under "Program Execution", a program is said to be "loaded..., interpreted and then executed...". Interpreted? If you consider that the hardware interprets the machine code, well, fair enough, but then what's execution of not exactly that? I vote for removing ", interpreted", but perhaps this needs more work than just that. --Mike Van Emmerik 01:13, 3 October 2005 (UTC)
 * Interpreted refers to parsed, analysed. It's textbook. --None-of-the-Above 23:52, 5 November 2005 (UTC)

Definition of program is too restrictive
Restricting a program to be those bits that are loaded into memory is too restrictive. Is a Java program then not a program? (since Java bits are interpreted by a program that is loaded in memory).
 * Those Java bits are loaded into memory as well. Be it by the virtual machine or directly by the operating system running the JIT code. --None-of-the-Above 23:57, 5 November 2005 (UTC)

Most of this page seems to confuse the term "program" with "executable binary program". --Serge 01:24, 4 November 2005 (UTC)
 * What do you mean by that? SR - RE 19:29, 22 December 2005 (UTC)


 * A "program" is an abstract concept. Consider a simple program that outputs the numbers 1 to 10, written down on a napkin.  Is that not a program?  Of course it is.  A program may be represented in human-readable "source code", for example, or it maybe represented in "binary bits" that are interpreted by hardware or software.  But to equate program with one particular type of representation is confusing the term "program" with "executable binary program".  That's what I mean by that. --Serge 23:20, 22 December 2005 (UTC)

Programme
According to my knowledge, the British also use the program spelling for the computer-related sense. Am I right? - 81.182.81.36 12:10, 16 September 2006 (UTC)
 * I've always thought so. I'm from the UK, and I can't remember reading anything that referred to "computer programmes", even though that's the spelling used for every other use of the word. -- Nick RTalk 12:19, 24 September 2006 (UTC)
 * Yes - In the UK, we use 'program' for a computer program and 'programme' for most other uses, e.g. a concert programme. --HappyDog 01:14, 13 November 2006 (UTC)

Reverted Vandalism, but...
I looked at the diff and saw that there were repeated occurences of the use of a signature on the actual article. I reverted. Then when I looked at what I reverted, there was litteraly NO change in the diff. I'm very confused, so feel free to correct me if I have messed something up. GofG undefinedundefinedundefined Contribs 15:08, 12 November 2006 (UTC)


 * Your diff looks good to me. Dicklyon 16:26, 12 November 2006 (UTC)

First Paragraphs
I notice that there has been a little flurry of activity on the first couple of paragraphs since my edit last night. In general, they are an improvement (I think), however I'm sorry to see that my initial sentence has been lost. It was "A computer program is a collection of instructions that describe a task (or set of tasks) to be carried out by a computer.". I think (and this is true of all articles) that it is important to have a simple jargon-free sentence to start the article, so that someone completely unfamiliar with the subject can get a basic definition that they can understand. Anyone object to my restoring this sentence before the more detailed explanation that is already there? --HappyDog 15:52, 13 November 2006 (UTC)


 * I agree. And technical details like whether the programming language is declarative or imperative or functional or something else certainly do not belong anywhere near the lead.  I reverted the restoring of that "junk" that came in with a misrepresented edit summary. Feel free to improve the lead, leaving the tech jargon out. Dicklyon 16:18, 13 November 2006 (UTC)

I agree about the imperative/declarative usage, but it was there so I left it in. Programs are not always a list of instructions, so that first sentence is inaccurate. Why the infatuation with Commonwealth English? The spelling computer programme tends to be used by Arts& Humanities academics (before they are corrected) Derek farn 17:12, 13 November 2006 (UTC)


 * You agree, but you keep putting it back in? What's that about?  I had already toned down to commonwealth thing to "sometimes" but I'm fine with taking it out, since several Brits have told us they spell it as "program". Dicklyon 18:41, 13 November 2006 (UTC)


 * By 'agree' I meant I agree with use of the technical terms in the first sentence. The definition is now more or less technically correct.  I guess it could be reworded in terms of programs that specify the what and programs that specify constraint on the set of possible answers.  There probably are some people who use the spelling programme, but putting this information in the first sentence overplays its importance.  Derek farn 19:21, 13 November 2006 (UTC)


 * I'm not sure what you're saying, but I've taken another stab at it. Took out some junk again, and put the imperative/declarative bit in there, but not in the first sentence. Dicklyon 06:56, 14 November 2006 (UTC)

I was tempted to change the wording at the end of the first sentence to "control the behavior of a computer", but it sounded a bit too nebulous. The term program may refer to the source or the executable. No need to get involved in technical details about interpreters. Derek farn 09:32, 14 November 2006 (UTC)


 * That is so much better. Well done everybody! --HappyDog 04:15, 16 November 2006 (UTC)

Let's Dump the Term Software Program
Computers run software. Software refers to computer programs and only to computer programs. So a software program is a program program, i.e. internally redundant. You can call it software. You can call it a computer program or them computer programs. But you shouldn't call it a software program.--151.200.244.58 02:51, 7 December 2006 (UTC)


 * Over a million web pages and tens of thousands of book pages disagree that they're never called "software programs". Dicklyon 03:46, 7 December 2006 (UTC)

Grammatical issue
There is a grammatical problem in the third paragraph, but I don't know enough about the subject to fix it. Here is the sentence:

another form of computer program lists the characteristics of the required data and leaves algorithm selection to the computer (usually another program running on the computer) to deduce the output, if any.

If you remove the parentheses, you get:

another form of computer program lists the characteristics of the required data and leaves algorithm selection to the computer to deduce the output, if any.

The problem is in "leaves algorithm selection to the computer to deduce the output, if any" - I'm not sure what this is trying to say, but the way it says it is clearly incorrect. Can someone please fix. --HappyDog 14:08, 9 December 2006 (UTC)

The statement is sufficiently broken and obscure that I've removed it (twice now) and replaced with just a mention of the names of the different programming styles. I'm in favor of having something explicit about what these styles mean, but this sentence is not it. Is there a source for this, or is it just made up? We should be able to find better. Anybody have a book on programming? Here are some:. Dicklyon 01:56, 10 December 2006 (UTC)


 * Yeah - I removed it once as well. I wonder if the person (people?) who keep reinstating it can perhaps explain what it means? --HappyDog 08:02, 10 December 2006 (UTC)

Definition of declarative
Please read articles on declarative and imperative programming. select specifies what is needed, not how to obtain it. —The preceding unsigned comment was added by Derek farn (talk • contribs) 00:27, 11 December 2006 (UTC). Sorry, forgot to sign it. Derek farn 04:09, 11 December 2006 (UTC)


 * I presume you mean the article on declarative programming; looks like they had quite a controversy there, too, about listing SQL as an example. An old version said that SQL has a declarative part for specifying queries, which makes a lot more sense than saying that the select command is declarative.  It's an imperative with a declarative data specification as an argument.
 * By the way, wikipedia is never a "source". So I'm still wondering if you have a source for the statement of how declarative works, or what it is, or SQL select as an example, or anything like that.  If not, let's take it out and replace by something that satisfies WP:V. Dicklyon 00:37, 11 December 2006 (UTC)


 * The purists would argue that parts of SQL are not declarative. While it might not be a perfect example, SQL has the advantage that readers might have heard of it.  There are plenty of obscure (well they are to most developers) we could choose.  I liked the original wording that included a description along the lines of what was recently there + links to declarative & functional programming.  One or two people objected to these links and they got taken out, now somebody wants to put them back in.  Either is ok with me, but let's keep the brief explanation.  Derek farn 04:09, 11 December 2006 (UTC)


 * I think you should both be aware that your recent (current?) edit warring on this page is sufficient to get you both temporarily blocked from editing Wikipedia. Please read WP:3RR and if there is still disagreement please resolve the issue here before making any further changes to the article. --HappyDog 01:07, 11 December 2006 (UTC)


 * We're not quite there yet, but I'll take that as a 3RR warning. I've tried several times to provide alternative improvements, and maybe at some point he'll like one. Dicklyon 01:11, 11 December 2006 (UTC)


 * OK, Derek bit on that one and improved it. The "system" there was better than leaving it to the "computer" I thought, since it's clearly not a hardware issue, and invoking "another program" seemed at least as squirrely.  Better ideas are welcome. Dicklyon 04:46, 11 December 2006 (UTC)