<p>Names can be chosen for a programming language in order to communicate information about that programming language. For example, C is named C because many of its features are taken from an earlier programming language called B. C++ was named C++ because it's an improvement on C. How can the name of a programming language communicate details about the design of the language?</p>

<language-design>
What does the name of a programming language say about the language?
CC BY-SA 4.0
2023-05-26T03:49:51.410Z
How is this closed? I don't see how is this question different from other [syntax] questions
ice1000
CC BY-SA 4.0
2023-05-26T09:46:29.887Z
I would also like to mention [C--](https://en.wikipedia.org/wiki/C--) which is meant to be a target for compilers.
FireTheLost
CC BY-SA 4.0
2023-06-02T17:16:12.690Z
IMO this is slightly on the non-acceptable side, and future such questios should be discouraged, but I'd leave it open because it is interesting, and leave this as an exception.
Seggan
<h3>Literal descriptions of what the language is</h3>
<p>The most literal name for a language is probably APL, which stands for A Programming Language; but that doesn't really tell you anything about APL.</p>
<p>On the other hand:</p>
<ul>
<li>ALGOL is an &quot;algorithmic language&quot;.</li>
<li>Fortran is a &quot;formula translator&quot;.</li>
<li>Lisp is a &quot;list processor&quot;.</li>
<li>BASIC (Beginners' All-purpose Symbolic Instruction Code) is a general-purpose language designed for beginners.</li>
<li>PHP (PHP Hypertext Preprocessor) is a hypertext preprocessor.</li>
</ul>
<p>Languages in this category tend to have acronyms or abbreviations for names, because a whole phrase describing the language would be too long for a name.</p>
<h3>Referencing the name of another language</h3>
<p>All programming languages borrow some features from languages before them, but many borrow mainly from one particular language. Some languages are trying to improve on a particular predecessor, while others borrow large parts of another language without trying to be a &quot;better version&quot; of it.</p>
<p>Languages whose names refer to another language usually indicate that they share at least one distinctive feature of that language:</p>
<ul>
<li>C has raw pointers, manual memory management, and inline assembly; C++ and D both position themselves as successors to C, while Objective-C is C with objects. (Perhaps amusingly, C itself was a successor to a language named B.)</li>
<li>ML has first-class functions, currying, and algebraic data types; CakeML, Alice ML, Dependent ML, and ReasonML are in this category. (OCaml is another dialect of ML, named after CAML, but the ML in CAML is apparently a coincidence!)</li>
<li>Lisp has several dialects, many of which have &quot;Lisp&quot; in their name.</li>
<li>Likewise for BASIC.</li>
</ul>
<p>Some references may be oblique, but they are done for the same purpose; e.g. languages based on Java may have names referencing coffee in some way. Kotlin, also based on Java, is named after an island because Java is also the name of an island. Meanwhile, Crystal is based on Ruby.</p>
<p>A very oblique example is Agda, named after a fictional Swedish hen, where the language is based on Coq (a French word for a male hen). However, very few people will probably recognise this reference, and particularly not new users, so it's more of an &quot;easter egg&quot; than a way of communicating something about the language.</p>
<p>There are also a few cases where a popular language's name is referenced for marketing reasons, trying to make the language appeal more to users of that language even though they have relatively little in common. C♯ and JavaScript fall into this category; the former has far more in common with Java than C, and the latter has little in common with Java except for some names in its standard library.</p>
<h3>Referencing a historical figure</h3>
<p>Some languages are named after a particular person, usually a famous academic who worked in computer science or mathematics. This usually conveys that the language is mathematical in nature, more abstract than other contemporary languages, or aimed at academics. Examples include Pascal, Ada, Haskell, Erlang, and Darwin (a language meant for biologists).</p>
<p>Alternatively, it may mean that something about the language's design is specifically based on that person's work. For example, <a href="https://github.com/mxgmn/MarkovJunior" rel="noreferrer">MarkovJunior</a> is named after Andrey Markov, who introduced the concept of Markov algorithms which the language is based on.</p>
<h3>Paradigm</h3>
<p>Most general-purpose languages are in the imperative paradigm, so languages in other paradigms may choose names which describe this:</p>
<ul>
<li>Prolog is a logic programming language,</li>
<li>F♯ is a functional language.</li>
<li>Objective-C is object-oriented.</li>
</ul>
<h3>Word association</h3>
<p>Some language names don't directly describe the language, but do evoke some idea that is somehow related to the language. This might be purely descriptive, or it might be for marketing, depending on how subjectively the evoked idea applies to the language.</p>
<ul>
<li>Modula is for modular programming.</li>
<li>Scala is &quot;scalable&quot;.</li>
<li>Factor is a concatenative language, in which arbitrary subprograms can be &quot;factored out&quot;.</li>
<li>Rust is for programming &quot;close to the metal&quot;, for programs that don't have to be pretty or user-friendly.</li>
<li>QuickBASIC and Swift presumably want you to think they are quick to write in, or that they run quickly.</li>
<li>Smart Pascal might want you to think that the language is smart, or you're smart for using it.</li>
</ul>
<p>The use of positive subjective words like &quot;quick&quot; or &quot;smart&quot; is pretty transparent, and people generally don't like to feel like they're being marketed to, so not many languages go for this.</p>
<h3>Specialisation</h3>
<p>Many languages are not general-purpose, they are designed for a specialised problem domain or use-case. Domain-specific languages usually have names which refer to their specialisation in some way, often directly.</p>
<ul>
<li>TeX is used for generating text-based documents.</li>
<li>Many query languages have names ending in &quot;QL&quot; (e.g. SQL, GraphQL) or otherwise reference this in their name, e.g. XQuery.</li>
<li>GLSL (OpenGL Shading Language) and HLSL (High-Level Shader Language) are for writing <a href="https://en.wikipedia.org/wiki/Shader" rel="noreferrer">shaders</a>.</li>
</ul>
<p>This partly overlaps with &quot;languages whose names literally describe the language&quot;.</p>
<h3>The word &quot;script&quot;</h3>
<p>It's hard to pin down <em>exactly</em> what distinguishes a &quot;script&quot; from a &quot;program&quot;, but generally speaking, if a language has &quot;script&quot; in its name then this usually means one of two things:</p>
<ul>
<li>It is interpreted, dynamically typed, and allows top-level statements; it's typically meant for writing short programs which automate an otherwise manual task, or programmatically control something which would otherwise be manually controlled. ActionScript, AppleScript, LotusScript, Pascal Script, VBScript.</li>
<li>It compiles to JavaScript. TypeScript, PureScript, ClojureScript, CoffeeScript, ReScript.</li>
</ul>
<p>There are some exceptions, e.g. PostScript isn't really a scripting language, and AssemblyScript compiles to WebAssembly rather than JavaScript. (&quot;AssemblyScript&quot; seems to be a reference to TypeScript.)</p>
<h3>Joke languages</h3>
<p>Many esolangs ─ e.g. Brainfuck, Befunge, Malbolge, LOLCODE ─ are not meant to be taken seriously, so they have names which either make the joke obvious, or at least sound a bit silly.</p>
<h3>Nothing</h3>
<p>Many language names really don't say anything about the language itself. Names like Python, Ruby, Lua, Idris or Pony are references to other things that don't evoke any ideas about what the language is like or what it is meant for.</p>

CC BY-SA 4.0
2023-06-01T14:30:03.293Z
2023-06-02T14:43:21.513Z
2023-06-02T14:43:21.513Z
kaya3
CC BY-SA 4.0
2023-06-01T14:36:42.443Z
HLSL is also a shader language, most of them use the same postfix
mousetail 'he-him'
CC BY-SA 4.0
2023-06-01T14:38:07.643Z
[AssemblyScript](https://www.assemblyscript.org/) exists which is a compiled javascript lookalike thus is neither like assembly nor a scripting language
mousetail 'he-him'
CC BY-SA 4.0
2023-06-01T14:40:41.377Z
@mousetail AssemblyScript is an interesting one! I would say it's a mix of "borrows from another language" and "poaching users from a popular language", specifically it borrows syntax from Typescript and is marketed to Typescript users on that basis.
kaya3
CC BY-SA 4.0
2023-06-01T15:33:06.440Z
PHP used to mean Personal Home Page. Then it stopped meaning anything, and the backronym was adopted somewhere during PHP5 if memory serves.
Longinus
CC BY-SA 4.0
2023-06-01T15:41:32.773Z
@Longinus Originally it was "Personal Home Page Tools", abbreviated as "PHP Tools", and later FI for "Forms Interpreter", then PHP/FI for version 2. The change to "PHP Hypertext Preprocessor" came about in version 3 (released in 1998), not version 5 (which was six years later). https://www.php.net/manual/en/history.php.php Still, all three of these names are literal descriptions of what the language is for.
kaya3
CC BY-SA 4.0
2023-06-01T15:48:38.663Z
@kaya3 Memory didn't serve then.
Longinus
CC BY-SA 4.0
2023-06-01T22:55:35.777Z
[CAML](https://en.wikipedia.org/wiki/Caml) is another example of a language with a self-descriptive name. Although it's a dialect of ML, it isn't etymologically related: the M stands for different words (meta/machine — L stands for language in both). It's likely that the coincidence of letters was welcome though. Ocaml is correctly in the reference category because it's a shortening of Objective Caml, and is a successor language of CAML.
Gilles 'SO- stop being evil'
CC BY-SA 4.0
2023-06-01T22:58:25.560Z
@Gilles'SO-stopbeingevil' Today I learned! I guess I should edit the part about OCaml, because the answer is supposed to be about etymology.
kaya3
CC BY-SA 4.0
2023-06-01T23:06:42.363Z
FORTRAN and LISP surely deserve a mention as the oldest programming languages still in common use, both named as a clipping of a core feature of the language (FORmula TRANSlator, LISt Processing).
Gilles 'SO- stop being evil'
CC BY-SA 4.0
2023-06-01T23:07:42.747Z
This answer is missing a section on punny names. For example [Coq](https://en.wikipedia.org/wiki/Coq) is almost CoC because it's an implementation of the Calculus of Constructions, but also mainly developed in France (“coq” is French for the cockerel which is the national bird of France), and one of the fathers of the language is called Coquand. (I don't know if they knew or cared what it sounds like in English. The people who named later similar languages FoC and Phox absolutely knew what they were doing.)
Gilles 'SO- stop being evil'
CC BY-SA 4.0
2023-06-01T23:11:26.980Z
@Gilles'SO-stopbeingevil' The question is what the name communicates about the language design. The name Coq does reference the country the language comes from, but that's not part of the language design; and there are plenty of languages whose names are chosen to be amusing, but "how are language names chosen?" would be a much broader question.
kaya3
CC BY-SA 4.0
2023-06-02T14:41:52.697Z
Kotlin Island is nowhere near Java; it is part of St. Petersburg, Russia
Seggan
CC BY-SA 4.0
2023-06-02T14:43:58.797Z
@Seggan Thanks; fixed. I misread something about this yesterday.
kaya3
CC BY-SA 4.0
2023-07-18T12:39:49.440Z
It seems Coq is [planned](https://github.com/coq/coq/wiki/Alternative-names) to be [renamed](https://coq.discourse.group/t/renaming-coq/1264).
Pablo H
CC BY-SA 4.0
2023-07-18T12:43:00.627Z
ML stands for Meta Language, according to [Wikipedia](https://en.wikipedia.org/wiki/ML_(programming_language)). So it goes into the first category, I'd guess.
Pablo H
CC BY-SA 4.0
2023-07-22T15:39:28.580Z
I think that ClojureScript are a ending with Script because it transpires to JavaScript.
Just another Java programmer
<h1>Generally none at all</h1>
<p><strong>The name of a thing does not have to relate to its function at all.</strong></p>
<p><strong>Naming languages is more of a cultural / social thing.</strong></p>
<p>My first instinct is that this is a bad question.</p>
<p>Also questions about naming languages may be off topic altogether. See
<a href="https://languagedesign.meta.stackexchange.com/questions/90/are-questions-about-naming-a-programming-language-on-topic">Are questions about naming a programming language on-topic?</a></p>
<p>However, I feel compelled to consider the topic.</p>
<p>C++ was originally named C with classes.</p>
<ul>
<li>With classes obviously because the design added classes</li>
<li>The incremental operator was the inspiration for it becoming ++</li>
<li>This use of ++ has been inspiration for other languages.</li>
<li>Incrementing B to C, gave us C and incrementing C to D gave us D.</li>
</ul>
<p>Its hard to name things functionally. Unless you have an acronmym to work from. QCL = Quantum Computing Language for example.</p>
<p>prolog -&gt; logic programming</p>
<p>The vast majority of emerging languages have seemingly arbitrary names chosen because the designer thinks they sound cool and so they can be found in internet searches.</p>
<p>For example, there is no obvious functional relation for:</p>
<ul>
<li>Java</li>
<li>Pony</li>
<li>Elm</li>
<li>Nim</li>
<li>Python</li>
</ul>
<p>The only hint of pattern is occasional use of ancestry.
For example:</p>
<ul>
<li>Typescript and Coffeescript are named for their ancestor Javascript</li>
<li>Datalog is named for its ancestor Prolog</li>
<li>Kotlin is named after an island like its parent Java<sup><a href="https://en.wikipedia.org/wiki/Kotlin_(programming_language)#:%7E:text=the%20name%20comes%20from%20kotlin%20island%2C%20near%20st.%20petersburg.%20andrey%20breslav%20mentioned%20that%20the%20team%20decided%20to%20name%20it%20after%20an%20island%2C%20just%20like%20java%20was%20named%20after%20the%20indonesian%20island%20of%20java" rel="nofollow noreferrer">source</a></sup></li>
</ul>
<p>However apparently:</p>
<ul>
<li>Rust - is meant to refer to the internal bits in contrast to the user facing 'chrome' of Firefox. (this long predates Google chrome but I've no idea if it had any influencing on its naming).</li>
</ul>

CC BY-SA 4.0
2023-05-26T02:15:25.487Z
2023-06-01T08:20:48.990Z
2023-06-01T08:20:48.990Z
Bruce Adams
CC BY-SA 4.0
2023-05-26T10:47:09.107Z
The name "Rust" is meant to be in contrast to "chrome", not the browser, but a term for the user-facing parts of a program which need to be polished for a good user experience. Rust is a systems language, so it's designed for developing software that doesn't need to be pretty or user-friendly; and it's "close to the metal". So its name does has some relation to its design and purpose.
kaya3
CC BY-SA 4.0
2023-05-26T16:09:09.600Z
Interesting choice considering rust came from Mozilla (firefox) rather than Google (chrome).
Bruce Adams
CC BY-SA 4.0
2023-05-26T16:16:43.030Z
The Firefox project uses the term "chrome" for this in their own codebase and internal docs: https://firefox-source-docs.mozilla.org/build/buildsystem/chrome-registration.html#chrome-registration I don't know if the name of the Chrome browser comes from the same meaning.
kaya3
CC BY-SA 4.0
2023-05-30T16:16:38.263Z
Mentioned rust vs chrome and kotlin without citation or attribution. Feel free to edit if you can improve. This should probably be a community wiki
Bruce Adams
CC BY-SA 4.0
2023-05-30T17:41:50.187Z
@BruceAdams I have cited my claim
Seggan
CC BY-SA 4.0
2023-05-31T18:40:21.373Z
@kaya3 The term “chrome” for the user interface part of the browser dates back at least to 2000 in [Mozilla](https://en.wikipedia.org/wiki/Mozilla) (Firefox's ancestor), so it's older than Google's Chrome software. The earliest reference I can find is the [`browser.chromeURL` preference](https://kb.mozillazine.org/Browser.chromeURL) added to Mozilla in 2000, but the name “chrome” may already have been used earlier in [Netscape](https://en.wikipedia.org/wiki/Netscape_Navigator) (Mozilla's ancestor) (I'm not sure about that part).
Gilles 'SO- stop being evil'
CC BY-SA 4.0
2023-06-27T18:05:50.497Z
Nim was initially named Nimrod ([after the biblical king](https://en.wikipedia.org/wiki/Nimrod)), but was renamed due to unfortunate bad connotations in American English. Also, as a fun note, Nim's package manager Nimble was initially named Babel (directly related to Nimrod), although there's a JS project that holds this name now.
Optimon
# What does the name of a programming language say about the language?
Posted by: username_0 on 2023-05-26
Names can be chosen for a programming language in order to communicate information about that programming language. For example, C is named C because many of its features are taken from an earlier programming language called B. C++ was named C++ because it's an improvement on C. How can the name of a programming language communicate details about the design of the language?
**Tags:** language-design
> **Comments:**
> **username_1**: How is this closed? I don't see how is this question different from other [syntax] questions  
> **username_2**: I would also like to mention [C--](https://en.wikipedia.org/wiki/C--) which is meant to be a target for compilers.  
> **username_3**: IMO this is slightly on the non-acceptable side, and future such questios should be discouraged, but I'd leave it open because it is interesting, and leave this as an exception.  
---
## 2 answers
### Answer by username_10 on 2023-05-26. Score: 11 | Accepted answer
# Generally none at all

**The name of a thing does not have to relate to its function at all.**

**Naming languages is more of a cultural / social thing.**

My first instinct is that this is a bad question.

Also questions about naming languages may be off topic altogether. See
[Are questions about naming a programming language on-topic?](https://languagedesign.meta.stackexchange.com/questions/90/are-questions-about-naming-a-programming-language-on-topic)

However, I feel compelled to consider the topic.

C++ was originally named C with classes.

* With classes obviously because the design added classes
* The incremental operator was the inspiration for it becoming ++
* This use of ++ has been inspiration for other languages.
* Incrementing B to C, gave us C and incrementing C to D gave us D.

Its hard to name things functionally. Unless you have an acronmym to work from. QCL = Quantum Computing Language for example.

prolog -> logic programming

The vast majority of emerging languages have seemingly arbitrary names chosen because the designer thinks they sound cool and so they can be found in internet searches.

For example, there is no obvious functional relation for:

* Java
* Pony
* Elm
* Nim
* Python

The only hint of pattern is occasional use of ancestry.
For example:

* Typescript and Coffeescript are named for their ancestor Javascript
* Datalog is named for its ancestor Prolog
* Kotlin is named after an island like its parent Java[source](https://en.wikipedia.org/wiki/Kotlin_(programming_language)#:%7E:text=the%20name%20comes%20from%20kotlin%20island%2C%20near%20st.%20petersburg.%20andrey%20breslav%20mentioned%20that%20the%20team%20decided%20to%20name%20it%20after%20an%20island%2C%20just%20like%20java%20was%20named%20after%20the%20indonesian%20island%20of%20java)

However apparently:

* Rust - is meant to refer to the internal bits in contrast to the user facing 'chrome' of Firefox. (this long predates Google chrome but I've no idea if it had any influencing on its naming).
> **Comments:**
> **username_4** (2023-05-26): The name "Rust" is meant to be in contrast to "chrome", not the browser, but a term for the user-facing parts of a program which need to be polished for a good user experience. Rust is a systems language, so it's designed for developing software that doesn't need to be pretty or user-friendly; and it's "close to the metal". So its name does has some relation to its design and purpose.  
> **username_10** (2023-05-26): Interesting choice considering rust came from Mozilla (firefox) rather than Google (chrome).  
> **username_4** (2023-05-26): The Firefox project uses the term "chrome" for this in their own codebase and internal docs: https://firefox-source-docs.mozilla.org/build/buildsystem/chrome-registration.html#chrome-registration I don't know if the name of the Chrome browser comes from the same meaning.  
> **username_10** (2023-05-30): Mentioned rust vs chrome and kotlin without citation or attribution. Feel free to edit if you can improve. This should probably be a community wiki  
> **username_3** (2023-05-30): @BruceAdams I have cited my claim  
> **username_7** (2023-05-31): @kaya3 The term “chrome” for the user interface part of the browser dates back at least to 2000 in [Mozilla](https://en.wikipedia.org/wiki/Mozilla) (Firefox's ancestor), so it's older than Google's Chrome software. The earliest reference I can find is the [`browser.chromeURL` preference](https://kb.mozillazine.org/Browser.chromeURL) added to Mozilla in 2000, but the name “chrome” may already have been used earlier in [Netscape](https://en.wikipedia.org/wiki/Netscape_Navigator) (Mozilla's ancestor) (I'm not sure about that part).  
> **username_11** (2023-06-27): Nim was initially named Nimrod ([after the biblical king](https://en.wikipedia.org/wiki/Nimrod)), but was renamed due to unfortunate bad connotations in American English. Also, as a fun note, Nim's package manager Nimble was initially named Babel (directly related to Nimrod), although there's a JS project that holds this name now.  
---
### Answer by username_4 on 2023-06-01. Score: 9
### Literal descriptions of what the language is

The most literal name for a language is probably APL, which stands for A Programming Language; but that doesn't really tell you anything about APL.

On the other hand:

* ALGOL is an "algorithmic language".
* Fortran is a "formula translator".
* Lisp is a "list processor".
* BASIC (Beginners' All-purpose Symbolic Instruction Code) is a general-purpose language designed for beginners.
* PHP (PHP Hypertext Preprocessor) is a hypertext preprocessor.

Languages in this category tend to have acronyms or abbreviations for names, because a whole phrase describing the language would be too long for a name.

### Referencing the name of another language

All programming languages borrow some features from languages before them, but many borrow mainly from one particular language. Some languages are trying to improve on a particular predecessor, while others borrow large parts of another language without trying to be a "better version" of it.

Languages whose names refer to another language usually indicate that they share at least one distinctive feature of that language:

* C has raw pointers, manual memory management, and inline assembly; C++ and D both position themselves as successors to C, while Objective-C is C with objects. (Perhaps amusingly, C itself was a successor to a language named B.)
* ML has first-class functions, currying, and algebraic data types; CakeML, Alice ML, Dependent ML, and ReasonML are in this category. (OCaml is another dialect of ML, named after CAML, but the ML in CAML is apparently a coincidence!)
* Lisp has several dialects, many of which have "Lisp" in their name.
* Likewise for BASIC.

Some references may be oblique, but they are done for the same purpose; e.g. languages based on Java may have names referencing coffee in some way. Kotlin, also based on Java, is named after an island because Java is also the name of an island. Meanwhile, Crystal is based on Ruby.

A very oblique example is Agda, named after a fictional Swedish hen, where the language is based on Coq (a French word for a male hen). However, very few people will probably recognise this reference, and particularly not new users, so it's more of an "easter egg" than a way of communicating something about the language.

There are also a few cases where a popular language's name is referenced for marketing reasons, trying to make the language appeal more to users of that language even though they have relatively little in common. C♯ and JavaScript fall into this category; the former has far more in common with Java than C, and the latter has little in common with Java except for some names in its standard library.

### Referencing a historical figure

Some languages are named after a particular person, usually a famous academic who worked in computer science or mathematics. This usually conveys that the language is mathematical in nature, more abstract than other contemporary languages, or aimed at academics. Examples include Pascal, Ada, Haskell, Erlang, and Darwin (a language meant for biologists).

Alternatively, it may mean that something about the language's design is specifically based on that person's work. For example, [MarkovJunior](https://github.com/mxgmn/MarkovJunior) is named after Andrey Markov, who introduced the concept of Markov algorithms which the language is based on.

### Paradigm

Most general-purpose languages are in the imperative paradigm, so languages in other paradigms may choose names which describe this:

* Prolog is a logic programming language,
* F♯ is a functional language.
* Objective-C is object-oriented.

### Word association

Some language names don't directly describe the language, but do evoke some idea that is somehow related to the language. This might be purely descriptive, or it might be for marketing, depending on how subjectively the evoked idea applies to the language.

* Modula is for modular programming.
* Scala is "scalable".
* Factor is a concatenative language, in which arbitrary subprograms can be "factored out".
* Rust is for programming "close to the metal", for programs that don't have to be pretty or user-friendly.
* QuickBASIC and Swift presumably want you to think they are quick to write in, or that they run quickly.
* Smart Pascal might want you to think that the language is smart, or you're smart for using it.

The use of positive subjective words like "quick" or "smart" is pretty transparent, and people generally don't like to feel like they're being marketed to, so not many languages go for this.

### Specialisation

Many languages are not general-purpose, they are designed for a specialised problem domain or use-case. Domain-specific languages usually have names which refer to their specialisation in some way, often directly.

* TeX is used for generating text-based documents.
* Many query languages have names ending in "QL" (e.g. SQL, GraphQL) or otherwise reference this in their name, e.g. XQuery.
* GLSL (OpenGL Shading Language) and HLSL (High-Level Shader Language) are for writing [shaders](https://en.wikipedia.org/wiki/Shader).

This partly overlaps with "languages whose names literally describe the language".

### The word "script"

It's hard to pin down *exactly* what distinguishes a "script" from a "program", but generally speaking, if a language has "script" in its name then this usually means one of two things:

* It is interpreted, dynamically typed, and allows top-level statements; it's typically meant for writing short programs which automate an otherwise manual task, or programmatically control something which would otherwise be manually controlled. ActionScript, AppleScript, LotusScript, Pascal Script, VBScript.
* It compiles to JavaScript. TypeScript, PureScript, ClojureScript, CoffeeScript, ReScript.

There are some exceptions, e.g. PostScript isn't really a scripting language, and AssemblyScript compiles to WebAssembly rather than JavaScript. ("AssemblyScript" seems to be a reference to TypeScript.)

### Joke languages

Many esolangs ─ e.g. Brainfuck, Befunge, Malbolge, LOLCODE ─ are not meant to be taken seriously, so they have names which either make the joke obvious, or at least sound a bit silly.

### Nothing

Many language names really don't say anything about the language itself. Names like Python, Ruby, Lua, Idris or Pony are references to other things that don't evoke any ideas about what the language is like or what it is meant for.
> **Comments:**
> **username_5** (2023-06-01): HLSL is also a shader language, most of them use the same postfix  
> **username_5** (2023-06-01): [AssemblyScript](https://www.assemblyscript.org/) exists which is a compiled javascript lookalike thus is neither like assembly nor a scripting language  
> **username_4** (2023-06-01): @mousetail AssemblyScript is an interesting one! I would say it's a mix of "borrows from another language" and "poaching users from a popular language", specifically it borrows syntax from Typescript and is marketed to Typescript users on that basis.  
> **username_6** (2023-06-01): PHP used to mean Personal Home Page. Then it stopped meaning anything, and the backronym was adopted somewhere during PHP5 if memory serves.  
> **username_4** (2023-06-01): @Longinus Originally it was "Personal Home Page Tools", abbreviated as "PHP Tools", and later FI for "Forms Interpreter", then PHP/FI for version 2. The change to "PHP Hypertext Preprocessor" came about in version 3 (released in 1998), not version 5 (which was six years later). https://www.php.net/manual/en/history.php.php Still, all three of these names are literal descriptions of what the language is for.  
> **username_6** (2023-06-01): @kaya3 Memory didn't serve then.  
> **username_7** (2023-06-01): [CAML](https://en.wikipedia.org/wiki/Caml) is another example of a language with a self-descriptive name. Although it's a dialect of ML, it isn't etymologically related: the M stands for different words (meta/machine — L stands for language in both). It's likely that the coincidence of letters was welcome though. Ocaml is correctly in the reference category because it's a shortening of Objective Caml, and is a successor language of CAML.  
> **username_4** (2023-06-01): @Gilles'SO-stopbeingevil' Today I learned! I guess I should edit the part about OCaml, because the answer is supposed to be about etymology.  
> **username_7** (2023-06-01): FORTRAN and LISP surely deserve a mention as the oldest programming languages still in common use, both named as a clipping of a core feature of the language (FORmula TRANSlator, LISt Processing).  
> **username_7** (2023-06-01): This answer is missing a section on punny names. For example [Coq](https://en.wikipedia.org/wiki/Coq) is almost CoC because it's an implementation of the Calculus of Constructions, but also mainly developed in France (“coq” is French for the cockerel which is the national bird of France), and one of the fathers of the language is called Coquand. (I don't know if they knew or cared what it sounds like in English. The people who named later similar languages FoC and Phox absolutely knew what they were doing.)  
> **username_4** (2023-06-01): @Gilles'SO-stopbeingevil' The question is what the name communicates about the language design. The name Coq does reference the country the language comes from, but that's not part of the language design; and there are plenty of languages whose names are chosen to be amusing, but "how are language names chosen?" would be a much broader question.  
> **username_3** (2023-06-02): Kotlin Island is nowhere near Java; it is part of St. Petersburg, Russia  
> **username_4** (2023-06-02): @Seggan Thanks; fixed. I misread something about this yesterday.  
> **username_8** (2023-07-18): It seems Coq is [planned](https://github.com/coq/coq/wiki/Alternative-names) to be [renamed](https://coq.discourse.group/t/renaming-coq/1264).  
> **username_8** (2023-07-18): ML stands for Meta Language, according to [Wikipedia](https://en.wikipedia.org/wiki/ML_(programming_language)). So it goes into the first category, I'd guess.  
> **username_9** (2023-07-22): I think that ClojureScript are a ending with Script because it transpires to JavaScript.  
---
