Talk:Programming language

This is an old revision of this page, as edited by Buidhe paid (talk | contribs) at 17:48, 23 January 2024 (Edit request: add another). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Latest comment: 1 year ago by Buidhe paid in topic Edit request
Former good articleProgramming language was one of the Engineering and technology good articles, but it has been removed from the list. There are suggestions below for improving the article to meet the good article criteria. Once these issues have been addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake.
Article milestones
DateProcessResult
June 21, 2006Featured article candidateNot promoted
June 28, 2006Peer reviewReviewed
July 8, 2006Good article nomineeListed
March 10, 2009Good article reassessmentDelisted
Current status: Delisted good article

Article scope too limited: assuming machines and computers

Currently this article assumes that programming language is a phenomenon exclusive to machines in general, and computers in particular.

This assumption seems inappropriate, given that there is at least one widely-recognized counterexample: biological programming languages:

See e.g.

dr.ef.tymac (talk) 18:13, 29 April 2017 (UTC)Reply

Did you read more about it?
Programming biological systems is a metaphor.
The work you cite is not as recent as you think, it is part of an area called Synthetic Biology.
Synthetic biology tries to apply real engineering principles to genetic engineering.
Biological systems, however, are complex systems. They can not be programmed them in the same sense that computers are, because you can not program emergent properties just designing a DNA chain. Not even composing known biological pathways isolated and standardized as Biobricks, as synthetic biology works.
There are however other computing forms, like quantum computing, there is an ongoing research on it. Even a DNA computing, which encodes problems in DNA chains and place them to evolve in a thermo-cycler for PCR and device a way to isolate the chain with the answer. — Preceding unsigned comment added by 201.124.211.115 (talk) 05:10, 11 June 2017 (UTC)Reply

This article is a total mess!

It repeats many common places, many of them wrong!, but repeated again, and again, in many programming courses given in basic education based on outdated information. Also many "complete idiot's guide", "learn in N days" or "for dummies" like those in the photo with tech books, repeat again and again.

Many people know some programming language and write code. That does not make then an authority in the subject. However many of them feel they are.

This article seems written from notes taken in basic programming courses.

Has discussions like: How many angels can be in the tip of a needle? — Preceding unsigned comment added by 201.124.211.115 (talk) 05:53, 11 June 2017 (UTC)Reply

yep too much information unrelated to the core subject and which does not help understanding. this needs to moved to relevant topics.

For example, the paragraph in FLOW-MATIC adds nothing to understanding what a computer language is and should be in the topic on Flow-matic, not programming.

there are also too many competing ideas, such as the definition of a programming language that just confuse things. My view is that Wikipedia should focus on commonly accepted facts and theories rather than pet issues insered by Academics to try and give exposure to very minority theories. it is a to help understanding, not a weapon in obscure Academic debates and personal obsessions. 60.241.211.27 (talk) 12:07, 28 July 2021 (UTC)Reply

What a pedantic message. Kwiky (talk) 19:04, 19 September 2023 (UTC)Reply

Defining the term "programming language" properly

Wikipedia currently says a "programming language" is "a formal language that specifies a set of instructions that can be used to produce various kinds of output" which is true-ish, but vague. The phrase "various kinds of output" hints at the relevant characteristic, but still doesn't pin it down. Dictionary.com defines a "programming language" as "a high-level language used to write computer programs, as COBOL or BASIC, or, sometimes, an assembly language." This gibberish dances around it for a moment... but it makes no difference whether it is the highest-level symbolic meta-language or lowest-level machine code. An alternate Dictionary.com definition starts getting closer, "a simple language system designed to facilitate the writing of computer programs" but simplicity has nothing to do with it either and this definition still doesn't capture the essence. The important nugget here is the specification of decision making. A "computer language" is any predefined set of symbols and syntax that allows people to communicate with a computer system. But a "programming language" is a language among the broader set of computer languages that specifically enables a person to specify decision-making rules. CPUs make logical (true/false) decisions. The specification of a logical decision-making process is where the rubber meets the road. As example, HTML is a computer language, but not a programming language. If I want my computer's clock to display upside down, but only on Tuesdays, I can't use HTML to accomplish that. Get it? (HTML is really just a data markup language used to specify the metadata and the semantic structure of a Web document.)

Shall I take a crack at rewriting the first paragraph on the "programming language" page and I'll let you all have a look? I won't spend too much time on it unless the community wants me to, so let me know what you think. — Preceding unsigned comment added by Dlampton (talkcontribs) 00:39, 8 January 2018 (UTC)Reply

Broken refs

@Squoop: you used some ref names that don't exist in the Abstractions section. Could you please fill those in? -- Fyrael (talk) 21:58, 10 October 2022 (UTC)Reply

@Fyrael Fixed :D Squoop (talk) 00:19, 11 October 2022 (UTC)Reply

"Semantics" is singular

A recent edit by Sumanbalayar corrected if computational semantics is defined to if a computational semantics is defined, but it was reverted by Girth Summit. Using "semantics" as singular is standard in the field, for example:

  • Pierce, Benjamin (2002). Types and Programming Languages. p. 111. ISBN 0-262-16209-1. We first define the terms, then define a semantics showing how they behave, then give a type system that rejects some terms whose behaviors we don't like.

I favor Sumanbalayar's version of this sentence. Freoh (talk) 16:20, 5 January 2023 (UTC)Reply

Fine to reinstate it if you like; it looked like a well-meaning but incorrect tweak to me, but you seem to know what you're talking about. Girth Summit (blether) 16:51, 5 January 2023 (UTC)Reply
  Done. Freoh (talk) 17:01, 5 January 2023 (UTC)Reply
Don't know if you noticed, but there were quite a few other tweaks I reverted in that edit - feel free to review them and reinstate if you think I erred. Girth Summit (blether) 17:33, 5 January 2023 (UTC)Reply

Standard examples

It would be helpful if there were a small set of "standard" tasks and all pages on programming languages showed how to do them all (e.g., compute prime numbers, compute the squares of the numbers 1 to 10, print "Hello, world!"). Where should I suggest this? LachlanA (talk) 01:00, 21 January 2023 (UTC)Reply

Proprietary section needs better citations

Oracle asserting something shouldn't be taken a evidence, needs better sources. FallingPineapple (talk) 02:05, 7 June 2023 (UTC)Reply

Needs article-wide cleanup?

I think this article needs a thorough cleanup.

  • The entire article is needlessly verbose.
  • A lot of the content is irrelevant or covered in other articles.
  • Lots of the information is unsourced and could be original research.

I feel like the article as a whole fails to provide accurate and useful information about programming languages.

I tried to improve the introduction but I'm sure my improvements still have issues...

Could a cleanup tag/tags be added? I'm not an experienced Wikipedian so I'm not sure what needs to be done. Squoop (talk) 01:19, 28 October 2023 (UTC)Reply

Source code example's usage of method

The source code example https://en.wikipedia.org/wiki/Programming_language#/media/File:C_Hello_World_Program.png mentions that sayHello is a function and in between brackets 'method'. This is not a method, a method is associated with an object/class, C has no classes. 2A02:8389:2200:9F90:B5B9:15B4:D8AA:5901 (talk) 09:54, 5 December 2023 (UTC)Reply

Edit request

  • Change the "Taxonomies" section title to "Classification"
  • Replace the contents of the "Classification" section, after the further reading link, with:
Extended content

Programming languages are often placed into four main categories: imperative, functional, logic, and object oriented.[1]

  • Imperative languages are designed to implement an algorithm in a specified order; they include visual programming languages such as .NET for generating graphical user interfaces. Scripting languages, which are partly or fully interpreted rather than compiled, are sometimes considered a separate category but meet the definition of imperative languages.[2]
  • Functional programming languages work by successively applying functions to the given parameters. Although appreciated by many researchers for their simplicity and elegance, problems with efficiency have prevented them from being widely adopted.[3]
  • Logic languages are designed so that the software, rather than the programmer, decides what order in which the instructions are executed.[4]
  • Object-oriented programming—whose characteristic features are data abstraction, inheritance, and dynamic dispatch—is supported by most popular imperative languages and some functional languages.[2]

Although markup languages are not programming languages, some have extensions that support limited programming. Additionally, there are special-purpose languages that are not easily compared to other programming languages.[5]

References

  1. ^ Sebesta 2012, p. 21.
  2. ^ a b Sebesta 2012, pp. 21–22.
  3. ^ Sebesta 2012, p. 12.
  4. ^ Sebesta 2012, p. 22.
  5. ^ Sebesta 2012, pp. 22–23.
  • Add to further reading the following source:

Sebesta, Robert W. (2012). Concepts of Programming Languages (10 ed.). Addison-Wesley. ISBN 978-0-13-139531-2.

@Buidhe paid @Buidhe I'm personally fine with the changes above, I think going ahead and making these changes are fine, however, I'd like you to comply with PAID and disclose your employer/client/affiliationn on your user page for future reference :) Sohom (talk) 16:18, 13 January 2024 (UTC)Reply
Sohom Thanks, now done. Buidhe paid (talk) 02:29, 14 January 2024 (UTC)Reply
  Already done Shadow311 (talk) 16:03, 18 January 2024 (UTC)Reply

Please add the following text at the end of the "elements" section:

Extended content

Concurrency

In computing, multiple instructions can be executed simultaneously. Many programming languages support instruction-level and subprogram-level concurrency.[1] By the twenty-first century, additional processing power on computers was increasingly coming from the use of additional processors, which requires programmers to design software that makes use of multiple processors simultaneously to achieve improved performance.[2] Interpreted languages such as Python and Ruby do not support the concurrent use of multiple processors.[3] Other programming languages do support managing data shared between different threads by controlling the order of execution of key instructions via the use of semaphores, controlling access to shared data via monitor, or enabling message passing between threads.[4]

References

  1. ^ Sebesta 2012, p. 576.
  2. ^ Sebesta 2012, p. 579.
  3. ^ Sebesta 2012, p. 585.
  4. ^ Sebesta 2012, pp. 585–586.

Buidhe paid (talk) 17:48, 23 January 2024 (UTC)Reply