Talk:Computer programming

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Same text repeated[edit]

This sentence seems to be repeated twice in section 1.2 (the first usage has a few words added which are different from the second):

FORTRAN, the first widely used high-level language to have a functional implementation which permitted the abstraction of reusable blocks of code, came out in 1957[11] and many other languages were soon developed—in particular, COBOL aimed at commercial data processing, and Lisp for computer research.

Here's an image of it. I'm not sure how to go about fixing it. Is it fine to just completely remove the second usage? —  Melofors  TC  08:57, 21 February 2021 (UTC)[reply]

Wiki Education assignment: Linguistics in the Digital Age[edit]

This article was the subject of a Wiki Education Foundation-supported course assignment, between 22 August 2022 and 7 December 2022. Further details are available on the course page. Student editor(s): Yokutjon (article contribs).

— Assignment last updated by Yokutjon (talk) 23:24, 25 September 2022 (UTC)[reply]

Wiki Education assignment: Linguistics in the Digital Age[edit]

This article was the subject of a Wiki Education Foundation-supported course assignment, between 11 January 2023 and 11 May 2023. Further details are available on the course page. Student editor(s): Stephintomson (article contribs).

— Assignment last updated by Nurbekyuldashov (talk) 01:52, 9 May 2023 (UTC)[reply]

Conflicting statements regarding the first programmer[edit]

The history section features an image with the caption:

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

However in the history section it states:

The first computer program is generally dated to 1843, when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers, intended to be carried out by Charles Babbage's Analytical Engine. However, Charles Babbage had already written his first program for the Analytical Engine in 1837.

It seems like there are contradictions:

  • The image caption states Lovelace designed the first algorithm for the Analytical Engine, however the article states that Babbage already wrote a program for the Analytical Engine
  • The image caption states that she is often recognized as history's first computer programmer, but this also conflicts with above

I am not sure which is correct here. According to Ada Lovelace it is contested. Perhaps the text should be rephrased in the article and image caption to reflect this. Lightbloom (talk) 19:42, 10 September 2023 (UTC)[reply]

This article is terribly inaccessible to laypeople[edit]

Can someone please rewrite at least the lead section, with an eye toward helping laypeople (e.g. high school students with no computing background) to make sense of it? The current version gets way too far into the weeds about the details of how computers work, and barely talks about what computer programming is. It consists almost entirely of unexplained jargon, for which mere wikilinks don't cut it. Try to put yourself in the shoes of a total novice, and write using ordinary English, possibly with a few jargon words explained parenthetically. This is too fundamental a topic to be left with such a summary. –jacobolus (t) 15:35, 19 October 2023 (UTC)[reply]

@XOR'easter – I think we want to wikilink computer program ASAP, but I'm afraid I've bungled the first few sentences again. Care to take another crack at it? –jacobolus (t) 03:15, 20 October 2023 (UTC)[reply]
I don't see the need to wikilink computer program immediately, and a sentence that basically says "computer programming is the writing of computer programs" is redundant. Writing the text around the links seems like the wrong way to go about it. XOR'easter (talk) 15:40, 20 October 2023 (UTC)[reply]
I wasn't trying to "write around the link" per se: I really do think "computer programming is writing computer programs" is the basic definition, and is not necessarily redundant. In some other kind of context "programming" might be something like picking the order kids should play in a piano recital or deciding when to schedule each show on a broadcast television network, and it's not a priori obvious that the action here is fundamentally different. To someone who does not know what programs or programming are, I think this kind of explicit link between the two is necessary, but perhaps there's a more artful phrasing. Perhaps following Knuth we could say something like "Computer programming is the art and science of writing computer programs". Or more precisely perhaps something like "Computer programming is the composition of formal texts, called programs, which a computer can interpret and put into effect to perform tasks."
But then quickly defining a computer program is its own challenge: "What then is a computer program? A particular form of expression of a flowchart or algorithm? An instruction manual for human beings? A process for controlling or bringing about a desired result inside a compurer? A machine part or completion of an incomplete machine? A circuit diagram or blueprint for a circuit board? A compilation of data? A coded writing? A "phonograph record," or perhaps "sheet music?" A mere pattern of symbols or a nonsense writing? All of these things, some of them, or something altogether different? When you read the first sentence of this article, you were probably sure you knew what a computer program is. Perhaps now the answer is not so obvious." (JSTOR B2320464)
jacobolus (t) 17:49, 20 October 2023 (UTC)[reply]
I think "Series of instructions" (or "set" of instructions) is a good basic definition. Frankly, I'm not sure this article even needs to exist when I look at others, like Computer Program and Programmer, which include practically the same information. DonFB (talk) 18:21, 20 October 2023 (UTC)[reply]
I do think there are meaningful distinctions of concept between program, programming, and programmer, and there could plausibly be distinct material targeted at all three topics (though some of them could also plausibly be combined or sliced in other ways). The scope of the various current articles has not ever been too carefully considered though, from what I can tell. –jacobolus (t) 18:26, 20 October 2023 (UTC)[reply]
They never are. XOR'easter (talk) 03:53, 21 October 2023 (UTC)[reply]
To elaborate a bit: in my experience, clusters of articles on closely related topics are seldom deliberately coordinated with any kind of plan. They each just do their own random walk, accumulating redundancies and sometimes even contradictions. Sorting out the resulting tangle is a passion project that few editors have the passion for.
I'm fairly content with the opening paragraph of this article now. XOR'easter (talk) 16:10, 21 October 2023 (UTC)[reply]
I have no problem with substantial redundancy per se, so long as the scope of each article is clear, the articles in combination cover the subject, and readers can easily find the answers to questions they have. Indeed redundancy is often inevitable, and straining to avoid it often does more harm than good. But it can definitely also be the case that renaming, merging, splitting, reorganizing, etc. can improve the overall organization of clusters of related articles, and better serve readers. –jacobolus (t) 16:21, 21 October 2023 (UTC)[reply]
Yes, "sorting it out" involves deciding which overlaps are good. XOR'easter (talk) 17:33, 21 October 2023 (UTC)[reply]