Most of you have noticed that programming language names tend to fall in several different themes. Here is an attempt to catalogue them. Languages may be placed in more than one category of appropriate; we will not suffer the LimitsOfHierarchies here. Different versions, such as Fortran77 vs Fortran90, and vendor-specific versions, such as VisualFoo, are valid naming patterns, but aren't very interesting, so they're not being named here. Acronyms, Abbreviations, and BackroNym''''''s (see AcronymVsAbbreviation): * ALGOL ('''ALGO'''rithmic '''L'''anguage) * APL ('''A''' '''P'''rogramming '''L'''anguage, see AplLanguage) * BASIC (BasicLanguage -- '''B'''eginner's '''A'''ll-purpose '''S'''ymbolic '''I'''nstruction '''C'''ode, early JargonFile entries incorrectly consider this a BackroNym) * BCPL (BcplLanguage -- '''B'''asic '''C'''ombined '''P'''rogramming '''L'''anguage) * BLISS (BlissLanguage -- '''B'''asic/'''B'''ill's '''L'''anguage for '''I'''mplementation of '''S'''ystem '''S'''oftware) * CAML (Categorical Abstract Machine Language)ObjectiveCaml * COBOL (CobolLanguage -- '''CO'''mmon '''B'''usiness '''O'''riented '''L'''anguage) * CPL (CplLanguage -- '''C'''ombined, or '''C'''hristopher's depending on who you believe, '''P'''rogramming '''L'''anguage) * DYLAN (DylanLanguage -- '''DY'''namic '''LAN'''guage) * FORTRAN (FortranLanguage -- '''FOR'''mula '''TRAN'''slator) * IAL ('''I'''nternational '''A'''lgorithmic '''L'''anguage, the original 1958 name of ALGOL) * INTERCAL (Compiler Language With No Pronounceable Acronym, see InterCal) * LISP ('''LIS'''t '''P'''rocessor, see LispLanguage) * ML ('''M'''eta '''L'''anguage, see MlLanguage) * MUMPS ('''M'''assachusets General Hospital '''U'''tility '''M'''ultiprogramming '''S'''ystem) * PHP ('''P'''HP '''H'''ypertext '''P'''reprocessor, was '''P'''ersonal '''H'''ome '''P'''age (Tools), see PhpLanguage). Briefly "FI" ('''F'''orms '''I'''nterpreter), then "Personal Home Page Construction Kit", then "PHP/FI", then "PHP" with its current expansion. * PL/B ('''P'''rogramming '''L'''anguage for '''B'''usiness, see PlbLanguage) * PL/I ('''P'''rogramming '''L'''anguage One ['''I'''], see PliLanguage) * PL/M ('''P'''rogramming '''L'''anguage for '''M'''icrocomputers) * Prolog ('''PRO'''grammation en '''LOG'''ique) * REBOL ('''R'''elative '''E'''xpression '''B'''ased '''O'''bject '''L'''anguage) * RPG (RpgLanguage -- '''R'''eport '''P'''rogram '''G'''enerator) * SAL ('''S'''QLWindows '''A'''pplication '''L'''anguage) * SEQUEL ('''S'''tructured '''E'''nglish '''QUE'''ry '''L'''anguage, the original name of SQL before another SEQUEL language was noticed) * SETL ('''SET'''-oriented '''Language''') * Simula ('''SIMU'''lation '''LA'''nguage) * Sisal ('''S'''treams and '''I'''teration in a '''S'''ingle '''A'''ssignment '''L'''anguage) * SNOBOL (Stri''''''Ng-Oriented symBOlic Language, possibly a Backronym, see SnobolLanguage) * SQL (StructuredQueryLanguage) * TCL (ToolCommandLanguage) * TRAC ('''T'''ext '''R'''eckoning '''A'''nd '''C'''ompiling) * WSFN ('''W'''hich '''S'''tands '''F'''or '''N'''othing -- ever heard of this one?) * YACC ('''Y'''et '''A'''nother '''C'''ompiler '''C'''ompiler; the standard Unix parser generator) People: ''Please make sure you group people based on how it influenced the '''pattern''' of naming a language, not necessarily just because people fall into different groups.'' ''MathematiciansWhoHaveLeft:'' * Pascal (PascalLanguage, after BlaisePascal) * Ada (AdaLanguage, after Countess AdaLovelace) * Haskell (HaskellLanguage, after HaskellCurry) * Goedel (a logic programming language, named for KurtGoedel) * Erlang (from A K Erlang, a Danish mathematician whose work on queuing and networks is very relevant to telephone companies. Allegedly also '''Er'''icsson '''Lang'''uage. see: TruthAndBeautyDoesntPayTheBills ) * Turing (TuringLanguage, after Alan Turing) * Euler (one of the many WirthLanguages) ''Mathematicians Who Had/Have Not Left:'' * BackusLanguage? (Does this exist; I've seen references to it -- It probably refers to the functional language described in John Backus' 1977 Turing Award Lecture "Can Programming Be liberated from the von Neuman Style? A Functional Style and Its Algrebra of Programs") ''Initials of the implementor or designer:'' * ALGOL-W (by Niklaus '''W'''irth) * AWK (AwkLanguage, Alfred '''A'''ho, Peter '''W'''einberger, Brian '''K'''ernighan http://www.catb.org/~esr/jargon/html/A/awk.html) * GWBasic (Greg Whitten's Basic) * CPL (Christopher's Programming Language, designed by ChristopherStrachey) * JOVIAL (Jules' Own Version of the International Algorithmic Language). Named for Jules Schwartz. Claimed to be the world's first systems programming language; partially based on Algol, which in 1958 was called IAL (International Algorithmic Language). See http://www.bath.ac.uk/~cs1lomp/jovial/what.php, http://en.wikipedia.org/wiki/JOVIAL. * R (ArrLanguage), from RossIhaka and RobertGentleman ''Other; includes only real persons and not characters in literature. (Brenda moved elsewhere):'' * Eiffel (EiffelLanguage, after Gustave Eiffel, the guy who designed the tower. It's not named after the tower.) * Handel-C (HandelCeeLanguage) * HugoLanguage for InteractiveFiction (Gernsback or Victor??) * Linda (LindaLanguage, a parallel programming language, after then porn star, now anti-porn activist Linda Lovelace. No, really, see LindaEtymology.) * Mozart (MozartProgrammingSystem). Not really a language, a development system for OzLanguage. * OccamLanguage (named after WilliamOfOccam, who was so impressed with his razor that he bought the company) * Orwell (teaching language at the UniversityOfOxford, very similar to HaskellLanguage). Names derived from earlier languages: * BCPL (derived from CPL) * B (derived from BCPL, first letter in acronym. Superseded by....) * C (CeeLanguage, derived from BCPL, second letter in acronym (or more obviously, next letter in alphabet). Which spawned...) * C++ (CeePlusPlus, derived from C (there was debate as to whether this should be called '''D''' or '''P''')) * C# (CsharpLanguage, derived from C++ (and Java really)) * Objective C (ObjectiveCee, derived from C with some Smalltalk mixed in) * D (DeeLanguage Next letter after C) * O'Caml (ObjectiveCaml, from CAML) * GJ (GenericJava, from JavaLanguage) * JavaScript (from JavaLanguage. Not that JavaScript actually has anything to do with Java, but the Netscape marketing department wanted to attach some of the glamour that Java then had to their new language, Mocha) * Kava etc (modified versions of Java) * NIL ('''N'''ew '''I'''mplementation (of) '''L'''isp) -- (not so new anymore, predates CommonLisp, but that was the backronym) * M (rename of MUMPS in the early 1990s) * T (another Lisp dialect that came after NIL--T and NIL are also the canonical true/false values in Lisp) * StrongTalk (trivial modification of SmalltalkLanguage) * FoxPro (from FoxBase from the AshtonTate DBase implementations) * Sheep (a descendant of ALAM) * Ruby (RubyLanguage, inspired by perl) * R (ArrLanguage, from S/EssLanguage) * Clean (originally a subset of a language called Lean) * Sather (tower at the University of Berkeley, parody on Eiffel which is named after the engineer not the tower) * CoffeeScript, adding syntactic sugar to JavaScript * The Scheme family has names related to planning, and later trickery: ** Planner, a language for planning, also an ancestor of PrologLanguage ** Conniver ** Scheme (SchemeLanguage), shortened from "Schemer" ** Gambit ** Guile ** Racket (RacketLanguage) Names derived from the organization sponsoring development: * Clipper (ClipperLanguage) - From a company called Nantucket. A Nantucket Clipper is a type of boat. ( http://www.twofrog.com/hud0312.html ) * ErlangLanguage, allegedly ER''''''icsson LANG''''''uage * GoLanguage also takes its first two (only) letters from the organization of origin. Food and beverage: * Java (JavaLanguage) (Name thought up during a brainstorming session. Original name was Oak.) * Pizza (PizzaLanguage) Pop culture: * Frink (FrinkLanguage, named after Professor Frink in the Simpsons) * Python (PythonLanguage, from MontyPython) * Brenda. (A subset of Dylan, written in Dylan. Used as a programming assignment in the CornellUniversity data structures course around the same time BeverlyHills90210 was popular.) * Var'aq (A true warrior's language. A semi-serious consideration of what type of programming language the Klingon culture would create. http://www.geocities.com/connorbd/varaq/varaqfaq.html) Self-descriptive names: * LISP '(LotsofIrritatingSillyParentheses or LostInaSeaofParentheses, sorry... (We're used to it.)) * Self (SelfLanguage) * Modula ("modular" language) * Defn (DefnLanguage; after its unique data type) ''Note: Doesn't exist yet! I will get around to doing something about it RealSoonNow -- KarlKnechtel'' * Objective C (C with objects) * Planner (an AI language for planning) * Conniver (an AI language for '''conniving''', an offshoot of planning) * Clean (see also under "derived from other languages") * Nice (NiceLanguage, functional Java-alike) * Brainfuck (BrainfuckLanguage; after what trying to program in it will do to you.) * ScalaLanguage ("scalable") Precious objects: * Perl (Its name actually was "Pearl" for a short time, until Larry saw a reference to a graphics language called "pearl", plus 4 letters are better than 5.) (There was a Lisp-based language called Pearl too). As a side note, PerlIsNotAnAcronym. * Ruby * Emerald * Garnet * Crystal History and mythology: * Delphi * Io (also a pun on Input/Output - a quirky mix of pure functional continuations and "events") * MercuryLanguage Literature: * Oberon (from the king of the fairies in Shakespeare's "Midsummer Night's Dream") * Miranda (from a character in Shakespeare's "Tempest"; it's also the Latin for "admirable") * OzLanguage (from ''The Wizard of Oz'') * AliceLanguage (from ''Through The Looking Glass'') * NemerleLanguage (after the archmage Nemmerle from Ursula K. Le Guin's ''A Wizard of Earthsea'' (apparently, spelling it with a single 'm' is a 'design decision')) * MalbolgeLanguage. From DantesInferno. According to the documentation: ''"Malbolge" is the name of Dante's Eighth Circle of Hell, in which practitioners of deception (seducers, flatterers, simonists, thieves, hypocrites, and so on) spend eternity.'' * SmeQl :-) (from ''Lord of the Rings''. Actually a combination of acronym and literature.) Artificially shortened names: * Scheme (from "Schemer", following on from "Planner" and "Conniver"; shortened to fit in 6 characters because ofa limitation of the ITS operating system) * Perl (from "Pearl", the precious stone; shortened to avoid a clash with "some obscure graphics language called Pearl") * Forth (from "Fourth", because its creator considered Forth a "fourth-generation language"; shortened to fit into 5 characters because of a limitation on the IBM 1130) Astronomical Bodies: * Lua (Portuguese for "moon") * Oberon (also the name of a moon of Uranus). Not sure how to classify: * Htag * Rexx (originally just "Rex" because the author liked how it sounded; the extra "x" was added to avoid collisions with other products' names) * SmalltalkLanguage ''''... a language I now called "Smalltalk"--as in "programming should be a matter of ..." and "children should program in ...". The name was also a reaction against the "IndoEuropean god theory" where systems were named Zeus, Odin, and Thor, and hardly did anything. I figured that "Smalltalk" was so innocuous a label that if it ever did anything nice people would be pleasantly surprised.'''' http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html Emotions: * BlissLanguage (but it's an acronym; see above) * Joy (JoyLanguage) * Hope Letters of the alphabet (along with punctuation): * A+ (AplusLanguage, http://www.aplusdev.org/) * ABC (AbcLanguage) * B * Beta * C, C++, C#, CeeOmega * D (DeeLanguage) * E (EeLanguage) * F# (FsharpLanguage--reported Microsoft port of Caml to DotNet) * G (GeeLanguage) (According to the LanguageList there are three more languages called G that were the subject of papers; all three appear to be DeadLanguage''''''s) * J (JayLanguage) * K (KayLanguage) * M (A C-like language for HW description from MentorGraphics. Unknown if TuringComplete) (also the language of Mathematica) * Q (http://www.musikwissenschaft.uni-mainz.de/~ag/q/qdoc.html) * R (ArrLanguage -- Gnu implementation of S) * S (EssLanguage -- statistics and modelling language--http://cm.bell-labs.com/cm/ms/departments/sia/Sbook/index.html) * T (TeeLanguage -- LISP dialect, see above) * V (VeeLanguage -- a parallel language based on C--http://www.first.gmd.de/v/v.html) * X (EksLanguage -- http://www.lencom.com/desc/indexN11285.html) * Z (ZedLanguage. See also PulpFiction for what happened to Zed) * ZetaLisp, the native dialect of the Symbolics LispMachine; it was to be "the last word on Lisp" (source: TheEvolutionOfLisp by RichardGabriel and GuySteele) Words so short or common that they are little help in narrowing a search engine query (there's no excuse for this in a language named after 2000): * Most single-letter language names, plus * Processing * GoLanguage * MakeTool * IoLanguage * Factor (FactorLanguage) * SwiftLanguage "Script" suffix: * ApeScript (for Noble Ape Simulation, http://www.nobleape.com; "the best landscape-orientated ape-brain simulator for Mac OS X." - review on VersionTracker) * AppleScript (Apple's little-understood (but still chugging away) dynamic scripting language -- first language with interchangeable syntaxes, including Japanese Kanji dialect!) * NewtonScript (Apple's other little-understood language - a PrototypeBasedLanguage) * PostScript * SimScript (simulation language) * Telescript (General Magic (RIP)'s network programming language -- based on PostScript) * JavaScript (Nee LiveScript) * ClojureScript (Clojure compiled to JavaScript) "Talk" suffix (these names all followed SmallTalk's example): * HyperTalk (Apple's HyperCard scripting language) * SmallTalk * StrongTalk # / .NET suffix: * C# * VB.NET * (Visual) J# * F# (see above under single-letter names) * X# (then codenamed Xen and now X Omega) Critters: * FoxPro * Sheep * CAML (CamlLanguage) * Lynx (an experimental concurrent language, not the text-only Web browser. OK, it's a corruption of "links") * PythonLanguage (also for MontyPython, has used the snake in its logos) Trees: * Cedar * Jacaranda (unfinished design for a subset of JavaScript) * Maple * Oak (old name of JavaLanguage before it became Java) * Elm Puns and "Geek" jokes: * C++ (post-increment of C) * C-- (post-decrement of C; a smaller version of C intended as a sort of portable assembly, see http://www.cminusminus.org/) * T (a Lisp dialect that came after NIL -- T and NIL are also the canonical true/false values in Lisp) * INTERCAL (Compiler Language With No Pronounceable Acronym, see InterCal) * Clojure (sounds like "closure" but spelled with a "j" for Java) -BOL languages, following the lead of COBOL: * COBOL (CobolLanguage) * SNOBOL * SPITBOL * Rebol (a modern language) * DiBOL (Digital Interactive Business Oriented Language) * Unibol (from DiBOL) * Slobol (fictional) ummm... logo, ABC, agile, mumps, chill, squeak, befunge, blue, dylan, godiva, icon, lua, m4, moo, teco http://en2.wikipedia.org/wiki/Talk:Programming_language ------- See also: FutureOpenSourceToolNames ---- CategoryProgrammingLanguage CategoryWhimsy