The Programming Languages Beacon
The Programming Languages Beacon
v19 - September 2025
This table contains a list of major software products or utilities, with details about the programming languages used to implement them. Information on this is difficult to find, and a few small mistakes might have escaped the author's attention. Corrections, suggestions for additions or even references are welcome. The list is not supposed to be exhaustive but the most significant products are tentatively listed. The order of the products in each family obeys no specific rule, the reader should not understand it as a ranking.
The main programming language, the one with which most of new developments are done, is highlighted, while the ones used in older times and still present, or used only for a minority of the developments are indicated too. The pieces of software listed are usually very large, and the list of programming languages cannot be exhaustive. Miscellaneous languages are not mentioned. Sometimes, there are different products under the same line (eg "Games"), or different implementations of a single line (eg JVM implementations). In this case, the overwhelming trend is indicated. Miscellaneous counter examples are ignored.
Some readers believe that most of the applications presented are based on old code, and that the technologies in use reflect the trends of the time. As it is an erroneous belief, some introduction dates are mentioned, like here, or here to show that what is "new" or "old" technology does not necessarily correspond to intuition.
The difference between C and C++ is a bit artificial, as it is always possible to argue that most of C code is C++ code, or conversely (as more than a few people use C++ more or less like C). The approximation made in this document tries to correspond to intuition.
indicates the major programming language for current evolutions.
refers to a technology which is present, but is either stable or decreasing.
means that the product has died, and when it died, it used that technology
is meant to show an evolution towards the column it points to.
When the arrow is alone, it means that the amount of code corresponding to the technology in this column is either now null or negligible, having evolved in the direction of the arrow.
The readers who might find the content of this page paradoxical will find a tentative explanation of the phenomenons at stake here.
Read the section entitled "Time will come when computers will be fast enough".
11,425 visits to this page on the 12th of April 2012 over 24h, record beaten!
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Some attempts were made to put some C# in Windows Mobile (e.g. the soft keyboard). The result was judged too slow to be incorporated in the final product and was reverted to C++.
The windows kernel is written in C (and compiled as C).
The amount of assembler is limited to a few thousand lines.
Objective-C
The first version of user interface of the MacOS was inspired by the Xerox Alto user interface which introduced the WIMP concept. The user interface was implemented in SmallTalk, and to run it, the hardware was far too expensive for mass market. Early versions of MacOS used Assembler and Pascal.
HP-UX
Google Chrome OS
2009
Google Chrome is based on Linux and Chrome .
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Operating systems for mobiles
2007
Objective-C
The iPhone, iPod Touch and iPad use a modified version of Mac OS.
2008
Android is based on Linux, which is coded in C. The user interface is Java. Apps (not covered here) are mostly Java.
2007
The Kindle runs Linux.
Symbian was still the leading operating system for phones in 2010.
Its market share dropped to 4.4% in Q2 2012. It has been declared dead on January 24, 2013.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Microsoft Windows UI
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Traditionally, MS Office was developed using assembler, then development moved to C, later, when C++ arose, everything new was done using C++. Currently there is no plan to change. A small attempt was made to develop a miscellaneous single panel in C#, a few years back. It is not known if it has been kept. At CppCon 2022 a Microsoft employee made a presentation stating that Microsoft Office contains 350 million lines of C++.
Apache Open Office, acquired in 1999 by Sun Microsystems from Star Division. No attempt has been made by Sun to convert the code into Java. Java is however used for some miscellaneous modules.
Python
This is a fork of OpenOffice. The code is still mainly C++. Some Python added.
JavaScript inside the browser.
Evernote
Evernote v3.5 was coded in C#. The technology
had to be changed to gain speed. The current programming language from v4.0 is C++.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Only Assembler, C and C++ in the core.
Perl
MariaDB is a fork of MySQL. More than half of the code is C++. The remainder is made of C and Perl.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
NoSQL and document databases, big data
Python, Go, Ruby
At Google, all infrastructure is done using C++, and C++ alone. Peripheral functions can be developed using other languages.
2015
Couchbase source base, initially CouchDB, was first Erlang-based, like CouchDB. Then some Go was added. In 2012, 2+ man months chasing a very low level race bug in Erlang's virtual machine, Erlang was not considered trustable, and C was gradually introduced. In 2013, Damien Katz wrote about his discovery of C's merits. In spite of Katz' criticism of C++, after his departure from Couchbase, the code was actively converted to C++.
2016
Fork of LevelDB done by Facebook.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Data science, machine learning
Python
TensorFlow GitHub gives the breakdown of languages. As of 2022, TensorFlow is made of 62.8% C++, 21.9% Python and miscellaneous other languages.
Python
Theano GitHub gives the breakdown of languages. As of 2022, Theano is made of 93.9% Python.
Python
Requests GitHub gives the breakdown of languages. As of 2022, Requests is made of 99.8% Python.
OpenCV GitHub gives the breakdown of languages. As of 2022, OpenCV is made of 86.1% C++, 3.7% C and miscellaneous other languages.
Mlpack GitHub gives the breakdown of languages. As of 2022, mlpack is made of 95% C++ and miscellaneous other languages.
Python
PyTorch GitHub gives the breakdown of languages. As of 2022, PyTorch is made of 51% C++, 38.6% Python and miscellaneous other languages.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
The code of Netscape browser was written in C, and Netscape engineers, all bought to Java (see M. Cusumano book and article) redeveloped the browser using Java. It was too slow and abandoned. Mozilla, the next version, was later developed using C++.
2-Sept-08
Chrome has been introduced as the combination of 26 different libraries. The base code comes from WebKit
(C++) which powers Safari as well.
One of its key propositions is the ultra fast V8 JavaScript engine, written essentially in C++.
HotJava never took off, it was far too slow compared to other browsers.
It became a showcase for the Java applet technology and the product is now frozen since 1999.
Pike
Opera Mini (2007) has a very funny architecture, and is indeed using C++, Java
and Pike.
The browser is split in two parts,
an ultra thin (less than 100Kb) "viewer" client part and a server side responsible of rendering. The first uses Java and receives the page under the OBML format,
the latter reuses classical Opera (C++) rendering engine plus Opera's Small Screen Rendering, on the server.
A significant part of the server uses Pike. This original architecture allows Opera to penetrate various J2ME-enabled portable
devices, such as phones, while preserving excellent response time. This comes obviously with a few sacrifices, for instance on JavaScript execution.
Mosaic was the first widely spread browser, it morphed into Netscape.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Eclipse
(see notes)
To build
Eclipse, a specific graphical toolkit was developed, SWT to replace Java classical AWT
or Swing (considered too slow). SWT is a thin Java layer on top of native C/C++ code.
SWT is now part of Eclipse RCP.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
SAP ERP
ABAP
SAP ERP is programmed in ABAP, which generates C code. The SAP kernel is itself coded using C and C++.
Oracle Peoplesoft
Peoplesoft relied on BEA Tuxedo and C++ code, now moving to Oracle WebLogic and Java, keeping the PeopleCode language. The C++ code is apparently not reengineered.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
eBay
(2002)
Information on eBay architecture and the move from C++ to Java can be found here.
Amazon
Amazon initially using C++ extensively is now using
an increasing amount of Java.
facebook
26-Sep-2006
PHP
This line is only about facebook, not its plugins. Plugins can be developed in many different technologies, thanks to facebook's ORB/application server, Thrift. Thrift contains a compiler coded in C++. facebook people write about Thrift: "The multi-language code generation is
well suited for search because it allows for application development
in an efficient server side language (C++) and allows the Facebook
PHP-based web application to make calls to the search service
using Thrift PHP libraries." Aside the use of C++, facebook has adopted a LAMP architecture.
In 2009 and 2010, facebook developers have
made a shift towards C++ with HipHop, a PHP to C++ translator which
allows to reduce by 50% the hardware needed to operate the site.
YouTube
Python was removed not long after the acquisition by Google in 2006.
DropBox
Python, Go, Rust
For details, have a look
here.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Games
A lot of games on smart phones are developed using Java.
This entry refers to "full service" disk based games.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Microsoft Visual C++
Microsoft Visual Basic
gcc (GNU Compiler Collection)
javac (Sun Java compiler)
PHP
It must be noted that PHP is a script running a lot of
imported libraries, themselves either programmed in C or C++.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Microsoft DirectX
OpenGL
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Apache
Microsoft IIS
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Apache James
Apaches James has not evolved as a stable release since 2009.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Google Blogger
Python
The software has been re-engineered several times, for instance in 2002 and 2006.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
TomTom
Garmin
Motorola VIAMOTO
2003
Motorola VIAMOTO was a smart phone "connected" GPS implementation, with a Java client-side. It was re-branded by a number of car rental companies.
For instance, Avis Assist was another name for the Motorola VIAMOTO product. Avis have withdrawn this product and are now offering Garmin in the USA and TomTom in Europe.
Motorola withdrew the product in June 2007. Alamo/National who had re-branded the system "Navigation Station" will also discontinue the service.
Family/Product
Date
ASM
C
C++
Java
C#
Others
Notes
Logitech Harmony 1000/1100
2009
The UI of the Harmony 1100 is now Flash based vs the Java UI found in the Harmony 1000.
This page is maintained by Vincent Lextrait (e-mail vincent@lextrait.com)