Template talk:Programming paradigms

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Response to apparent arbiter of English[edit]

Mathematical Programming is both a paradigm of Mathematics and simultaneously one of Computer Programming and is actually better established as the latter than any of the others in the (current) list as such, being roughly co-eval with the development of electronic computing. I hope I don't have to document this. Lycurgus (talk) 14:45, 10 January 2009 (UTC)

Also, if I were to follow the (relatively lax/sloppy usage) of the rest of the template I could add some subparadigms such as the Informatik approaches to creating information systems as optimization problems on the domain of problem information flows such as those of Langefors, et. al., cost and sizing/estimation paradigms such as those of Barry Boehm, et. al. (talk) 14:50, 10 January 2009 (UTC)
It is nice to know that there are more people interested in improving this template. In my opinion, a good way to proceed to reach consensus about the inclusion (or non-inclusion) of Mathematical programming (or any other element presented here as a programming paradigm) is as follows.
I think we should document here only programming paradigms that were declared as so in the corresponding articles and accepted by a consensus among the editors of the individual article in question. For instance, if Mathematical programming is indeed a programming paradigm, then this should be first documented in the corresponding article (together with the citation of one or more reputable sources) before adding a new entry to this template. This way we will be able to keep in this template only entries which have achieved consensus in the corresponding articles, thus freeing this template from most potential disputes.
As to the sloppy usage of "programming paradigm" for the current entries of this template, the template contents are always open for review. In that case, feel free to create one section in this talk page for each entry that you want to challenge. We are open to listen to you and to collaborate with you in improving the contents of this template. --Antonielly (talk) 16:33, 10 January 2009 (UTC)

Adding the template to the involved pages[edit]

I think we should follow the example of most other "categorical" templates (such as Template:Software Engineering and Template:GUI widgets) and add this template to all the articles referred to by it. However, the current layout of this template is cumbersome for adding it to pages other than Programming paradigm. For instance, I have made two attempts to make it fit an article, but it didn't fit well due to layout issues. I believe we should change it somehow, but the new layout should still preserve the hierarchies of programming paradigms and (if possible) the highlighted contrasts of "opposing/dual" paradigms. How could we remedy this? --Antonielly (talk) 17:07, 21 January 2009 (UTC)

One solution could be to keep {{Programming paradigms}} as it is (as a vertical navigation template), and create a horizontal version perhaps {{Programming paradigms footer}} for use at the bottom of the page. With a horizontal version it might be harder to show hierarchy though. Both templates would also have to be maintained separately, but we could mitigate problems by having notices on both template pages indicating that any changes should be replicated in the other template. Another question-- why shouldn't the vertical template be inserted higher in the page?  LinguistAtLargeMsg  14:25, 24 January 2009 (UTC)
Do we need this rather intrusive box to begin with? Reader would be better served by some overview article that provides this same list, and maybe a sentence or two on each. Jamming this into random articles on random topics just because they have the word "programming" in them isn't very useful, doesn't improve navigation, doesn't make the main article more readable or understandable. It mostly gets in the way, and is distracting. linas (talk) 14:42, 26 May 2011 (UTC)

Yet another paradigm[edit]

Knowledge representation programming should be added. --4th-otaku (talk) 21:38, 6 August 2009 (UTC)

I don't think that's a paradigm per-se. --Cybercobra (talk) 22:55, 6 August 2009 (UTC)

Should stack oriented languages be added to this list? (talk) 00:40, 3 December 2009 (UTC)

Every functional is declarative?[edit]

Functional language which is only typed lambda calculi (only "if" construction and no pattern matching) with random access memory operations and unit type can be considered declarative? —Preceding unsigned comment added by (talk) 18:22, 19 December 2009 (UTC)

Automata based programming should not be subordinate to object oriented[edit]

Automata based programming should not be subordinate to object oriented, it is not dependent upon OO paradigmken (talk) 04:39, 31 March 2010 (UTC)

Object-oriented does not imply imperative[edit]

Please note that object-oriented and imperative are orthogonal properties, so object-oriented should not appear under imperative. There are object-oriented declarative languages such Logtalk, Visual Prolog, CLOS, Needle, CLOVER and FOOPS. pgr94 (talk) 14:53, 22 June 2010 (UTC)

If there are no objections, I will change the template so that object-oriented is a top-level entry. pgr94 (talk) 02:12, 3 July 2010 (UTC)
No-one has voiced any opposition so I have gone ahead and made the change. pgr94 (talk) 00:38, 15 July 2010 (UTC)

Add Literate Programming[edit]

Literate programming is certainly its own paradigm and deserves mention. I'm not sure if it belongs under the metaprogramming category or not. (talk) 19:17, 6 April 2011 (UTC)

I think literate programming is a declarative one. Arturotena (talk) 18:25, 9 April 2012 (UTC)

I am not happy with this template[edit]

Not that I have time to work on this, but it is a "giant list" of mostly forgotten wannabe paradigms say abductive logic (who uses that now?) and many others. I might jokingly suggest a move to "Yesterday's programming paradigms". I suggest that you guys trim back here, and have show/hide buttons that hide the forgotten items under a "minor paradigms" and have the major paradigms show up first. History2007 (talk) 22:50, 8 February 2012 (UTC)

More problematic is of course this template's underlying assumption that programming "paradigms" form a tree-like structure. —Ruud 22:56, 8 February 2012 (UTC)

Let's start from scratch[edit]

I suggest to start from scratch. Please provide sources when making changse. I have provided the source for the 4 main paradigms in the programming paradigm article. Carbo1200 (talk) 18:33, 4 July 2012 (UTC)

Not that I'm attached to the old template, but how is starting from scratch—without a clear idea on how to redesign this template—going to help? —Ruud 19:13, 4 July 2012 (UTC)
It will make it possible to verify sources, and thus confirm relevance and accuracy of new entries. This should not be a shopping list.Carbo1200 (talk) 19:37, 4 July 2012 (UTC)
Carbo1200, I'm clearly in basic agreement with you here (but for AOP, perhaps). Today someone has reverted to the old shopping list - I'll be away and don't want to edit-war: an agreement needs to be worked out with them. Good luck! Chiswick Chap (talk) 09:29, 9 July 2012 (UTC)
For example, I would be tempted to remove aspect-oriented programming from the list (it has just been added) : is it a paradigm, or just a programmimng style / technique ? I would tend to say it's the latter, and should not be in the list (or certainly not at the first level of indentation). But who am I to say ? Instead, we should find a source that says it is a paradigm. Carbo1200 (talk) 19:43, 4 July 2012 (UTC)
Challenges of Aspect-oriented Technology, RT Alexander and James M Bieman, Workshop on Software Quality, Orlando, Florida, 2002. Chiswick Chap (talk) 20:01, 4 July 2012 (UTC)
Another option would be to list the 4 main paradigms and a link to category:programming paradigms. This way, the template has a reasonable size, and still provides navigation to other topics (I'm very hesitant to call them "paradigms" though, but hey). What do you think ? Carbo1200 (talk) 17:23, 19 July 2012 (UTC)
Sidebars are for navigating content. A sidebar that only has four links is pointless. I've reformatted the old content in a more compact manner and stripped out all but the top-level bullets. This is a better skeleton for a rewrite. Chris Cunningham (user:thumperward) (talk) 10:56, 18 August 2012 (UTC)
I'm happier with this format - the old-new one, as you say, contained so little information as to be nearly useless. That said, I'm not convinced collapsing the list of paradigms was a good idea; I miss a few that I would call important, and others seem to be very minor paradigms, buzzwords or not paradigms at all. I would rather start over with a few well-sourced paradigms, but using this template format. (talk) 17:56, 21 August 2012 (UTC)
Feel free to play around with it. This was only a rough attempt at getting the basic layout right for the future: my selection of what to keep was as arbitrary as anyone else's. Chris Cunningham (user:thumperward) (talk) 15:02, 23 August 2012 (UTC)


Too newb to add it myself, but Procedural programming is discussed in these here-linked articles as a Programming paradigm, as well as tons in the non-WP web. Seems worth a listing here -- ? "alyosha" (talk) 19:34, 25 August 2012 (UTC)