The Multilingual Landscape of Programming — Bridging Cultures and Innovations. Author: Diana J. Hakim. Date: February 18, 2024.

Abstract

This exploration delves into the historical underpinnings of English dominance in programming, tracing pivotal events from Charles Babbage’s Analytical Engine to contemporary programming languages. Despite its prevalence, English-centric resources pose challenges for non-English-speaking developers, hindering accessibility. The landscape is diversifying, with over 64% of programming languages originating from non-English-speaking countries, showcasing global innovation. The significance of non-English programming languages, illustrated by Russian contributions, is highlighted in the realms of space exploration, scientific research, and early computing. Additionally, we explore programming languages designed for non-English speakers, emphasizing their role in fostering accessibility and inclusivity. Multilingual programming environments, such as Python, Java, JavaScript, Ruby, and PHP, provide flexibility, accommodating diverse linguistic preferences. This study underscores the pivotal role of non-English languages in dismantling barriers and expanding coding education worldwide.

1. Introduction

In the vast realm of programming, the language of code is as diverse as the cultures it connects. English has long dominated this landscape, with keywords like “print,” “if,” and “while” being widely adopted. However, a closer look reveals a rich tapestry of programming languages originating from different corners of the globe. In this blog post, we’ll explore the origins of computer science, delve into the countries shaping the programming language landscape, and highlight the importance of non-English programming languages in fostering accessibility, inclusivity, and local innovation.

2. The Dominance of English in Programming

English’s dominance in programming can be attributed to the influential role played by American and British computer scientists and engineers in the early days of computing. Below is a chronological overview of key events in the history of computing, ranging from Charles Babbage’s design of the Analytical Engine in 1834 to the ongoing dominance of English in programming. These milestones highlight significant developments, such as the invention of the transistor, the creation of the first commercially produced computer (UNIVAC I), and the introduction of high-level programming languages like Fortran and Lisp. To provide a visual representation, refer to the labeled map in Figure 1, which maps these events from 1 to 14, showcasing their geographical distribution and the evolution of computing over time.

#DescriptionStart DateEnd DateLocation
1Charles Babbage designs the Analytical Engine, an early mechanical general-purpose computer.13/10/183418/10/1871London, England
2Ada Lovelace writes the first algorithm, considered the world’s first computer programmer.12/10/184227/11/1852London, United Kingdom
3Howard Aiken and Grace Hopper develop the Harvard Mark I, one of the first electromechanical computers.01/05/193707/08/1944Cambridge, Massachusetts, United States
4John Atanasoff and Clifford Berry develop the Atanasoff-Berry Computer (ABC).28/10/193001/12/1942Ames, Iowa, United States
5Konrad Zuse builds the Z3, the world’s first electromechanical program-controlled computer.12/05/194112/03/1945Berlin, Germany
6Invention of the transistor at Bell Labs paves the way for smaller and more efficient electronic computers.194716/12/1947Murray Hill, New Jersey, United States
7Maurice Wilkes creates the EDSAC, one of the earliest stored-program computers in the UK.194706/05/1949Cambridge, England, United Kingdom
8IBM introduces the IBM 704, a significant development in early business computing.01/05/19521960United States
9Fortran (Formula Translation) is developed by IBM, the first high-level programming language.195315/10/1957United States
10UNIVAC I, the first commercially produced computer, is delivered to the United States Census Bureau.01/02/19501951Pennsylvania, United States
11John McCarthy creates Lisp, one of the earliest high-level programming languages used in artificial intelligence research.195601/08/1958United States
12Development of COBOL (Common Business-Oriented Language) begins.195901/11/1960United States
13Alan Turing introduces the concept of a theoretical computing machine known as the Turing machine.01/06/193028/11/1936Princeton, New Jersey, United States
14John McCarthy creates Lisp, one of the earliest high-level programming languages used in artificial intelligence research.195601/08/1958United States

Table 1 — Dominance of English Language in Early Computing: a chronological overview. Figure 1 — Map detailing the dominance of the English Language in early computing. Source: app.timewebs.com.

Today, a significant drawback of this dominance is the challenge it poses for developers in non-English-speaking countries. Many coding tutorials and resources are predominantly available in English, presenting a barrier for those with limited English proficiency. This linguistic disparity can limit access to programming knowledge, hindering the inclusivity of the global developer community. As a result, non-English programming languages play a crucial role in breaking down language barriers and expanding accessibility to coding education.

3. Countries of Programming Language Creators

Despite the prevalence of English, the programming language landscape is remarkably diverse. With over 9,000 programming languages in existence, approximately 36.2% are created by English-speaking countries, leaving a significant 64% created by non-English-speaking countries — emphasizing the global nature of programming innovation.

Notable Programming Languages and Their Origins

CountryLanguages
United StatesJavaScript, C, Lisp, Rust*, Julia*, Java*
United KingdomAutocode, Haskell, Miranda, CPL, HTML
CanadaJava, R*, Rust*, Julia*, PHP*
AustraliaOz, T3X
New ZealandR*
GermanyScala*, Ada*
DenmarkC++, PHP*, C#
JapanRuby
SwitzerlandPascal*, Scala
RussiaKotlin*
FranceAda*, Prolog
BrazilLua, Elixir
IndiaJulia*
NetherlandsPython
NorwayCSS

* Indicates co-creation with other countries.

4. Importance of Non-English Programming Languages

Non-English programming languages are essential for accessibility and inclusivity, removing language barriers for developers with limited English proficiency. They also enhance educational value by enabling students to learn programming concepts in their native languages, especially in regions with low English proficiency.

Early Russian Programming Languages

Russian programming languages significantly influenced the technological landscape from the mid-20th century to the Soviet Union’s dissolution in 1991. These languages played pivotal roles across domains, showcasing versatility and impact.

  • Space Exploration — The “Стрела” (Strela) programming language was tailored for space and rocketry applications in the Soviet Union. Its crucial role in developing software for spacecraft and space exploration demonstrates the specialized nature of Russian programming languages in contributing to significant technological achievements.
  • Scientific Research — In scientific and engineering research, the adaptation of the Algol programming language, known as “Алгол,” gained widespread use in the Soviet Union. This language facilitated complex simulations, data analysis, and mathematical modeling, showcasing its applicability in advancing scientific endeavors.
  • Ural-1 and Early Computing — The Ural-1 computer, featuring the “Старт” (Start) high-level programming language, marked a milestone in early computing. As one of the earliest computers globally to offer such capabilities, it played a crucial role in advancing scientific and industrial research within the Soviet Union.

5. Options for Non-English Programming

Today the options for non-English programming are limited but fall into two categories: languages tailored for specific languages and multilingual environments. Despite being scarce, these options aim to enhance inclusivity for non-English speakers in coding.

Computer Languages Based on Non-English Languages

Designed for non-English speakers, featuring code, keywords, and syntax aligned with native languages and cultural contexts. A few examples include:

  • Linotte (French) — Tailored to make programming easily accessible to French-speaking novices, with a particular focus on children. Beyond basic programming, Linotte supports networking, graphics, and includes a web templating engine, allowing the integration of HTML and Linotte in the same file.
  • Nadeshiko (なでしこ, Japanese) — As the successor of Himawari, Nadeshiko is an open-source freeware programming language. Its significance is highlighted by its inclusion in one of the three official textbooks of technical arts for junior high schools in Japan, starting from 2022.
  • Qalb (بلق, Arabic) — Qalb, meaning “heart” in Arabic, presents unique challenges by utilizing a non-Latin script for coding. Despite these challenges, it strives to cater to Arabic-speaking developers, incorporating cultural and linguistic elements into the coding experience.
  • Easy (限软言, Mandarin) — Easy, a programming language in Mandarin, supports modular development through Easy Modules. It provides real-time auto-suggestions, enhancing code reusability and development efficiency. Known for its compact code and cross-platform capabilities, Easy presents an intriguing option for Chinese programmers.

Multilingual or I18N Programming Environments

Languages with an English foundation but including plugins or features that allow developers to code in other languages or character sets, offering internationalization flexibility.

  • Python — Stands out for its extensive support of numerous languages, making it a versatile choice for developers worldwide. It accommodates languages such as Spanish, French, German, Chinese, Japanese, Swedish, Lithuanian, Javanese, and more.
  • Java — Java’s versatility extends to supporting various languages like Spanish, French, Chinese, Japanese, Arabic, and more, contributing to its popularity in diverse international contexts as a preferred language for multilingual development.
  • JavaScript — A key player in web development, supports multiple languages such as Spanish, French, German, Chinese, Japanese, and more. Utilizing libraries like i18next, JavaScript enables the creation of dynamic multilingual web applications, enhancing user experiences across linguistic boundaries.
  • Ruby — Ruby’s i18n library empowers developers to incorporate language support seamlessly, enabling the usage of languages such as Spanish, French, German, Chinese, Japanese, and more.
  • PHP — A widely-used server-side scripting language, supports multilingualism through features like the gettext extension. This enables developers to create multilingual web applications, accommodating languages such as Spanish, French, German, Chinese, Japanese, and more.

6. Conclusion

English has historically dominated the programming landscape, but its exclusivity poses challenges for global inclusivity. The diverse origins of programming languages, as highlighted in this exploration, emphasize the need for a more inclusive approach. Non-English programming languages play a crucial role in breaking down language barriers, enabling developers worldwide to contribute meaningfully. The case of Russian programming languages illustrates their impact on significant technological advancements. As we navigate the evolving programming landscape, acknowledging and fostering the development of non-English languages becomes imperative for a more accessible and globally inclusive coding community. Multilingual programming environments offer a promising avenue, providing developers with the flexibility to code in languages aligned with their cultural contexts. This journey through programming’s linguistic tapestry underscores the importance of embracing diversity to propel the field forward.

References