Talk:Imperative programming

Misc
Mav, why did you remove the history and title page text? It's required under the GFDL for making a modified version, in this case from Nupedia. You said "see copyrights", but I can't tell to what you refer. Martin 16:10, 15 Feb 2004 (UTC)


 * He's under the delusion that the convoluted interpretation of the GFDL given on copyrights is the only interpretation that can be made. Anthony DiPierro 16:19, 15 Feb 2004 (UTC)


 * On Wikipedia the title page is the article itself and the history section and list of authors are combined on the article's history page. So moving the author note from the start of the article to the references section and indicating that the history section you wrote was on this talk page, is above and beyond what is needed. --mav

If so, the point is that just because Wikipedia has a certain interpretation of the GFDL when others use our work, doesn't mean that we're allowed to use the same interpretation of the GFDL when we use the work of others. Now, if the authors of the Nupedia article in question to indicate that they share our interpretation, then that's great. However, if they do not (and they have not yet to date, AFAICT) then we should follow a comparatively strict interpretation to ensure that we are not violating copyright. Martin 16:38, 15 Feb 2004 (UTC)


 * Maybe this discussion should be continued at village pump? I copy'n'pasted it to the appropriate section there ... -- till we *) 18:41, 15 Feb 2004 (UTC)


 * From whence it will probably shortly be moved back to keep the size down. Now I'm not sure where to post my opinion. Ah well, I'll do it at the Pump section for now, but feel free to overwrite this if/when that becomes a pointer in the other direction. - IMSoP 18:49, 15 Feb 2004 (UTC)


 * RickK wrote "(delete MyRedDice's odd licensing claims)"

Rick, I'm sorry that you find it odd, but I'm simply reading the GFDL, and creating a page that conforms to its requirements. Perhaps you could explain exactly what in my interpretation of the Text of the GFDL you are questioning? Martin 21:15, 15 Feb 2004 (UTC)


 * I've contacted Stan and asked him for permission to use a short line at the bottom of the article instead. And if anyone tells me that this isn't allowed under the FDL, I will slap them around with a complete printed copy of the emacs user manual.&mdash;Eloquence 21:27, Feb 15, 2004 (UTC)


 * That sounds like a sensible thing to do. There are a few other articles from Nupedia that we should do the same thing with, in due course.
 * Of course, if Stan consents, there's no reason for us to mention either him, or Nupedia. But that would be up to Stan. Martin 21:40, 15 Feb 2004 (UTC)

Date: Mon, 16 Feb 2004 14:35:52 +0000 From: volsung at mailsnare dot net To: Erik Moeller Subject: Re: Nupedia article

Quoting Erik Moeller :

> are you the author of the original Nupedia article > http://en.wikipedia.org/wiki/Imperative_programming ? > > Basically our problem is that the FDL requires these ugly "title page" > and "history" sections in the article which we would like to avoid for > Wikipedia style reasons. Would you be OK with a short line under the > article that says > > "Originally based on the article 'Imperative programming' by Stan > Seibert, from Nupedia, licensed under the GNU Free Documentation > License' ?

Hi! Yes, I'm the author of that article. I would be OK with the modification you suggest.

--- Stan Seibert


 * Thanks Stan. :) Martin 19:50, 16 Feb 2004 (UTC)

Moved anonymous comment from the top of the article to talk, Everyking 07:13, 13 Mar 2004 (UTC):

"I'm sure the following makes perfect sense but it does not explain anything meaningful about imperative programming. All I get from this is that an imperative language tells a computer to do something... OK, I'd never have guessed that on my own ;) but it would be even more helpful possibly to compare imperative and declarative side by side so that we can see exactly why one language which tells a computer to do something is different to another language which tells a computer to do something."

GA reference critiera
i'm concerning that these references do not actually indicate what exactly their referencing, while both seem capable of referencing the entire article, a reader wouldn't know this. It appears to of been added as a GA a very long time ago, and the GA criteria have changed several times, if anyone could, please try to use inline citations for this article or at least hyperlinks or something. Homestarmy 19:10, 14 September 2006 (UTC)

I have delisted this article as a GA, as it clearly fails the criteria → Aza Toth 03:53, 19 March 2007 (UTC)

Removal of Example Languages section
I couldn't fit my entire rationale in the edit summary field... I removed this section because it's unnecessary: the entire article is about imperative programming, and lists plenty of example languages. The "The canonical examples of imperative programming languages are Fortran and Algol" statement was unsourced. The "Others include..." sentence just offered a place for additional languages to be tacked on (see e.g. the edit that only added "Perl" to the list,) when a link to the procedural programming languages category suffices. WalterGR 23:53, 4 November 2007 (UTC)

Opinionated language about other programming styles
This article contains language that expresses strong negative opinions about functional programming languages, and makes unsupported claims to back up these opinions. For example: "A more radical application of this approach..." "more room to do things in a suboptimal way..." "harder for the programmer to control the performance of programs..." "some tasks are difficult to specify in a purely functional way..." Actually, those claims are false, but that's not the point. The purpose of these paragraphs is to help the reader understand better what imperative programming is by comparing and contrasting it with functional and logical styles. All that is needed is a brief, objective definition of the other styles, and a few words explaining how that is different than imperative style. This section is not the place for a religious language war.

So I'm rewording this section to tone it down, make it objective, and remove unproven and unreferenced claims. StormWillLaugh (talk) 02:37, 6 November 2008 (UTC)

Non-imperative computer hardware?
From the Overview:

The hardware implementation of almost all computers is imperative; nearly all computer hardware is designed to execute machine code, which is native to the computer, written in the imperative style.

Does anyone have a reference to a non-imperative computer? I'd be interested to find out how that works... —Preceding unsigned comment added by 216.227.91.166 (talk) 21:12, 10 January 2009 (UTC)
 * I'm bumping this question, as I came to this talk page for raising the same question. --Abdull (talk) 15:42, 11 August 2010 (UTC)

I've modified the statement so it doesn't sound like there is non-imperative hardware. If some can show that there is non-imperative hardware, feel free to add it. Noldoaran (talk) 18:28, 23 September 2010 (UTC)


 * A Programmable logic device is an inherently non-imperative (declarative) machine that can be used for computing. See Reconfigurable computing. --Kvng (talk) 20:13, 23 September 2010 (UTC)

This statement is either misleading or needs clarification
Many imperative programming languages (such as Fortran, BASIC and C) were abstractions of assembly language. This seems to imply that there are programming languages that aren't in any way abstractions of assembly language. I'd argue that this is untrue, that all programming languages designed for computers are in some way abstracting assembly/machine code. If I'm wrong, this sentence at least needs to be clarified. It's fairly orphaned and could use some elaboration anyway. --68.32.37.109 (talk) 22:40, 19 March 2010 (UTC)

Where's Smalltalk?
Smalltalk preceded C++ by almost a decade, yet it's not mentioned in the section on object oriented programming. Should be. -- Dougher (talk) 23:06, 29 April 2010 (UTC)

Why is Visual C++ mentioned?
Visual C++ is mentioned explicitly in the history of imperative languages, but it made no significant contribution to imperative programming languages nor the C++ language, apart from currently being very popular. GCC made (in my opinion) a larger contribution, being a common testbed for new language features, but is not mentioned. Thus the reference to MSVC++ should be removed imho. --Evertw (talk) 07:42, 23 October 2012 (UTC)

the definition too jargon-esque
I find the definition unhelpful to laymen. Experts who can understand the first paragraph will undoubtedly know what an imperative programming language is. Any thoughts on this? — Preceding unsigned comment added by 165.228.230.183 (talk) 11:38, 2 August 2014 (UTC)
 * I've added a layman's summary to the introduction. Dudecon (talk) 08:27, 3 August 2014 (UTC)

Please remove C++
If you write an endless loop (while(true);), the compiler may optimize it away. The computer does no longer do what the programmer told him. Therefore C++ is not imperative. --84.188.149.238 (talk) 11:38, 12 November 2017 (UTC)

The introduction remains unclear
A lot of articles link here as part of their description of various languages. However, I'm finding it difficult to understand whether this is a description of a certain style, or encompasses a wide collection of other styles that are more accurate descriptions.

A penguin has wings, but you wouldn't describe it as "a bird with wings" because that distinction is useless, all birds have wings. One is much better off using a more specific category. "A flightless bird" gives the reader much more useful information at a glance, as it associates it with a much more specific class.

The description on this page does not make this distinction. The description is:

"In computer science, imperative programming is a programming paradigm that uses statements that change a program's state... an imperative program consists of commands for the computer to perform."

Ok, so I'm not a language guru, but this could every computer language I've used. I cannot figure out if this is trying to say "practically every language ever" and thus is "bird with wings", or if the definition is "a language in which algorithms are expressed directly without structure" (or similar), that is, a very specific subset of languages, most of them early ones.

Let's ask this another way. C# uses "uses statements that change a program's state". So does Dartmouth BASIC. Yet these two languages, in normal usage, are very very different. One is highly structured, generally OO, and hides implementation. The other is just a word salad of statements. Does this article describe both, or is most correctly referring onto to the later?

Please do not get hung up on specific terminology or examples. The point is whether languages are "imperative and only imperative", or if this is a superclass that refers to such a broad category that it's like saying "birds with wings"?

Maury Markowitz (talk) 11:51, 15 October 2019 (UTC)

Misleading terms used in defining imperative programming
The current here given definition of imperative programming is "a programming paradigm that uses statements that change a program's state" [no source is quoted, BTW]. In my opinion, saying in the above definition that what is changed is the program's state, as it is common to all programs, makes no differentiation between imperative programming and other programming paradigms. I suggest to say, instead, "... change the state of some of its variables" (BTW, in conformity with ISO/IEC 2382:2015 Information technology — Vocabulary)--Vittorioolivati (talk) 11:34, 14 September 2020 (UTC)

Art
i am huma 786 q from pakistan.i work natural paint 🎨 for people who I like this Huma786q (talk) 17:10, 9 October 2023 (UTC)

Remove the long C++ example
There's a long ugly C++ example at the bottom of the page. It serves no purpose, it's not in a modern style and it's overly long. I say remove entirely. 86.29.96.40 (talk) 17:28, 24 October 2023 (UTC)