๐ŸŒ
LOC
loc.gov โ€บ standards โ€บ iso639-5 โ€บ en.php
English Name of Language: Codes for the representation of names of languages (ISO 639-5 Language Coding Agency - Library of Congress)
English Name of Language: Codes for the representation of names of languages-- Part 5, Alpha-3 code for language families and groups.
๐ŸŒ
Andiamo!
andiamo.co.uk โ€บ home โ€บ resources โ€บ iso language codes
ISO language codes | Andiamo! The Language Professionals
April 25, 2024 - Here is a list of the most common ISO language codes, conforming to the ISO 639-1 standard, complete with two letter country codes where relevant.
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ List_of_ISO_639_language_codes
List of ISO 639 language codes - Wikipedia
1 week ago - Each language is assigned a two-letter (set 1) and three-letter lowercase abbreviation (sets 2โ€“5). Part 1 of the standard, ISO 639-1, defines the two-letter codes, and Part 3 (2007), ISO 639-3, defines the three-letter codes, aiming to cover all known natural languages, largely superseding ...
symbol to identify a language, dialect or a group of languages
A language code is a code that assigns letters or numbers as identifiers or classifiers for languages. These codes may be used to organize library collections or presentations of data, to choose โ€ฆ Wikipedia
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ Language_code
Language code - Wikipedia
January 23, 2026 - A language code is a code that assigns letters or numbers as identifiers or classifiers for languages. These codes may be used to organize library collections or presentations of data, to choose the correct localizations and translations in computing, and as a shorthand designation for longer ...
๐ŸŒ
Reddit
reddit.com โ€บ r/programminglanguages โ€บ just realised how weird it is that programming languages use english as a basis for keywords
r/ProgrammingLanguages on Reddit: Just realised how weird it is that programming languages use english as a basis for keywords
February 11, 2023 -

All the programming languages I know about use english keywords like 'for', 'while', 'with', 'class', etc. I've never seen a programming language with keywords in a non-english language. Is it just because many of them were first developed in the english-speaking world (US, mostly)? Is it weird for non-English speakers (especially people who speak a language that doesn't share the same alphabet, e.g. chinese) to have to memorise all these foreign words while learning programming? Are there any programming languages based on non-English keywords?

๐ŸŒ
Welocalize
welocalizetalent.zendesk.com โ€บ hc โ€บ en-us โ€บ articles โ€บ 31752038144663-Language-Codes-ISO-639-1
Language Codes (ISO 639-1) โ€“ Welocalize
January 6, 2026 - Language Code Afrikaans af Albanian sq Arabic (Algeria) ar-dz Arabic (Bahrain) ar-bh Arabic (Egypt) ar-eg Arabic (Iraq) ar-iq Arabic (Jordan) ar-jo Arabic (Kuwait) ar-kw Arabic ...
Find elsewhere
Top answer
1 of 8
33

I think the primary reason for this is the same that motivates any other lingua franca: the desire to exchange ideas across different groups.

We can group the places where natural language is used in programming into a few different categories:

  1. Keywords - terms baked into the syntax of the language ("if", "return", "while", etc). These are what linguists would call a "closed word class"; they may be reserved from use as identifiers, or marked out with stropping.
  2. Built-in identifiers - names of functions, namespaces, classes, etc, which are part of the "standard library" of the language. These are generally an "open class", in the sense that new items are added reasonably regularly, and can move somewhat freely between this and the next category.
  3. User-defined identifiers - this is the much largest list, and also the one over which languages designers have least direct influence. The main limitation placed is the available character set - if identifiers can only use the Latin letters in ASCII, some languages will be harder to use (though not impossible).
  4. Error messages and other output. This generally depends not on the design of the language, but its implementation. These may be the same thing (e.g. PHP has only one widely used implementation), or entirely separate and widely varied (e.g. C compilers).
  5. Documentation. On the face of it, this is the easiest to translate, and for example the PHP manual is currently "fully" translated into 9 languages.

Of these, the vast majority of code that looks like language is user-defined identifiers. These can be, and regularly are, written in the user's first language - except when they're shared. If a new online service wants to publish an SDK on a package repository such as CPAN, NPM, Packagist, Nuget, etc, they need to define a public API for that package, and that involves choosing identifiers. If the majority of packages on that repository use identifiers in the same language, that is a lingua franca in exactly the same way as the trade languages of the ancient Mediterranean, or the Latin of Renaissance scientists.

This then leads back to the choice of built-in identifiers. The language designer could, in principle, provide multiple aliases for every built in function, giving the user a choice of languages. However, this becomes a wasted effort if the user community picks one as the lingua franca for sharing code samples and libraries.

As we get deeper into the core of the language, and particularly with keywords, we get a similar effect between languages: if you want new users to pick up your language, there is an advantage to them recognising parts of it. This leads to certain terms becoming somewhat standardised in their meaning - the lingua franca is based on a particular natural language, but becomes its own thing. For instance, the "return" keyword originated from the intransitive English verb meaning "go back", but has acquired programming-specific meanings: "returned value", "return type", and so on.

To circle back to error messages and documentation, like private identifiers these can be and often are translated; but they will still have to incorporate large parts of the lingua franca, to mention keywords and identifiers which are not translated.

All of that leaves us with a few situations where not using the lingua franca would be reasonable:

  • Where the language has no "open word class". For instance, Microsoft Excel has localized names for all its built-in formula functions.
  • Where the language isn't intended for writing code to share. The biggest example of this is educational languages: the main aim is to make it easy for users to write their own programs, to learn programming concepts.
  • Where the audience for the language is limited to a particular community. The macro language of an internal tool might exclusively use the local language of its developers, although the draw of the lingua franca will still be there from exposure to other languages.

Throughout this, I've deliberately talked about the lingua franca in the abstract, because the fact that it is based on English is largely historical accident: English was the language in the UK and USA where major early computer science work happened; and it's also a lingua franca in other contexts, meaning it is accessible to a lot of users as a second language.

2 of 8
36

The influence of momentum

The first "compiled" programming language was Autocode, developed at the University of Manchester in England in 1952. The first widely used programming language, FORTRAN, was developed at IBM in 1957, in the USA. The first example of a non-English programming language I can find is the ALGOL 68 standard, which was published in several European languages, and eventually Japanese.

By this time, however, the USA and UK had already established themselves as the pioneers of programming language development, with languages like LISP, BASIC, COBOL, and ALGOL58. From there, every notable language was in English because the people who made them spoke (possibly amongst other things) English. If you want your language to be both useful and popular (as many do), it makes sense to target the demographic with the largest chance of using your language; for a long time, this was English[1], and even as countries like India and China have become large centers of development in the tech world, this continues to be English. I have no doubt that at some point we will see a popular non-English language, but momentum rolls on.

[1]: By "English", I mean "People willing to program in English"

๐ŸŒ
GitHub
gist.github.com โ€บ Josantonius โ€บ b455e315bc7f790d14b136d61d9ae469
List of 183 language codes (ISO 639-1) ยท GitHub
{ "aa": "Afar", "ab": "Abkhazian", "ae": "Avestan", "af": "Afrikaans", "ak": "Akan", "am": "Amharic", "an": "Aragonese", "ar": "Arabic", "ar-ae": "Arabic (U.A.E.)", "ar-bh": "Arabic (Bahrain)", "ar-dz": "Arabic (Algeria)", "ar-eg": "Arabic (Egypt)", "ar-iq": "Arabic (Iraq)", "ar-jo": "Arabic (Jordan)", "ar-kw": "Arabic (Kuwait)", "ar-lb": "Arabic (Lebanon)", "ar-ly": "Arabic (Libya)", "ar-ma": "Arabic (Morocco)", "ar-om": "Arabic (Oman)", "ar-qa": "Arabic (Qatar)", "ar-sa": "Arabic (Saudi Arabia)", "ar-sy": "Arabic (Syria)", "ar-tn": "Arabic (Tunisia)", "ar-ye": "Arabic (Yemen)", "as": "Assame
๐ŸŒ
W3Schools
w3schools.com โ€บ tags โ€บ ref_language_codes.asp
HTML ISO Language Code Reference
You should always include the lang attribute inside the <html> tag, to declare the language of the Web page. This is meant to assist search engines and browsers: ... See also: Reference for Country Codes.
๐ŸŒ
LOC
loc.gov โ€บ standards โ€บ iso639-2 โ€บ php โ€บ code_list.php
ISO 639-2 Language Code List - Codes for the representation of names of languages (Library of Congress)
January 15, 2026 - Library of Congress >> Standards ยท ISO 639-1 Language Coding Agency Home - ISO 639-3 Language Coding Agency Home ISO 639-5 Language Coding Agency Home Other Standards Maintained by the Library - Library of Congress Home
๐ŸŒ
ISAN
support.isan.org โ€บ hc โ€บ en-us โ€บ articles โ€บ 360012734159-List-of-ISO-639-2-Language-Codes
List of ISO 639-2 Language Codes โ€“ ISAN
December 12, 2023 - This is the list of ISO 639-2 language codes implemented in the ISAN Registry. ISO 639-2 Code English name of Language AAR Afar ABK Abkhazian ACE Achinese (Aceh) ACH Acoli ADA Adan...
๐ŸŒ
Quora
quora.com โ€บ Is-there-any-programming-language-that-can-be-written-in-English-instead-of-syntaxes-and-codes-just-like-normal-writing-style-with-words-sentences-etc
Is there any programming language that can be written in English instead of syntaxes and codes just like normal writing style with words, sentences, etc.? - Quora
They fall into three broad categories: โ€œcontrolled natural languagesโ€ (CNLs) that are formal but English-like, natural-language programming systems that parse ordinary English with NLP, and domain-specific or educational languages designed to read like prose. Key examples and practical notes: ... Yes โ€” several programming languages and systems let you write code in a near-natural-English style, trading some precision and performance for readability and approachability.
๐ŸŒ
Ttmem
ttmem.com โ€บ online-help โ€บ language-codes
TTMEM.com | ISO 639-1 Language Codes List
ISO 2 letter language codes reference for translators, localization professionals and CAT tool users. Find standardized language abbreviations used in translation memory systems, multilingual websites, localization workflows and translation software.
๐ŸŒ
Indiana Department of Education
in.gov โ€บ doe โ€บ students โ€บ indiana-academic-standards
DOE: Indiana Academic Standards
June 8, 2021 - English/Language Arts (2023) Mathematics (2023) Science & K-8 Computer Science (2023) Social Studies (2023) Content Connectors (2024) Course Titles and Descriptions (CTDs) Early Learning Standards (2023) English Learners: WIDA English Language Development Standards Framework ยท
๐ŸŒ
Shinmera
shinmera.github.io โ€บ language-codes
Language Codes
(language-codes:names :eng) ; => ("English") (language-codes:names :ht) ; => ("Haitian" "Haitian Creole")
๐ŸŒ
Localizely
localizely.com โ€บ home โ€บ standards โ€บ iso 639-1
ISO 639-1 Language Code List
Both are part of the ISO 639 language code standard. The ISO 639-1 is the two-letter code set, whereas ISO 639-2 is the three-letter code set. Thus, the basic difference between these two code sets is in the scope.