The Good Lord is no respecter of backgrounds. Never has been! He plants genius the world over. It is up to us to find it. โ Margaret Thatcher
Algorithm: Muhammad ibn Musa al-Khwarizmi (780 AD, ๐บ๐ฟ) is considered today as the father of algebra and the founder of Arabic mathematics. His book, "Kitab al-Mukhtasar fi Hisab al-Jabr wal-Muqabala" (translated as The Compendious Book on Calculation by Completion and Balancing), introduced systematic solutions for linear and quadratic equations. While he did not write "algorithms" in the modern sense, his works laid the foundation for the term itself. The word algorithm is derived from the Latinized form of his name (Algoritmi). Al-Khwarizmi's methods were step-by-step procedures for solving mathematical problems, which can be considered early examples of algorithmic thinking.
๐ฌ๐ง Ada Lovelace, an English mathematician and writer, is credited with creating the first algorithm intended for a machine. She worked with Charles Babbage's design of the Analytical Engine, a mechanical general-purpose computer. In her notes on the Analytical Engine, she described an algorithm for computing Bernoulli numbers. This is considered the first example of a computer program, as it was explicitly designed to be executed by a machine.
Fiber Optics (1956) Narinder Singh Kapany ๐ฎ๐ณ He conducted pioneering research and published numerous papers on the subject, significantly advancing the technology.
Ron Eglash: Ganda, ๐บ๐ฌ when discussing the fractal nature of traditional African village structures.
Binary numeral system (base-2) 1679: uses only two symbols (0 and 1) to represent data, was formally developed by Gottfried Wilhelm Leibniz ๐ฉ๐ช It's the foundation of virtually all modern computing and digital technology.
Roman figures to modern figures: Fibonacci ๐ฎ๐ณ → ๐ฎ๐น
Geomancy: Mesopotamia ๐ฎ๐ถ (between the 8th and 10th centuries).
Zero: Brahmagupta ๐ฎ๐ณ (628 CE) in his work Brahmasphutasiddhanta. Also credited to Aryabhata ๐ฎ๐ณ (476โ550 CE) and Babylonians ๐ฎ๐ถ (as early as 300 BCE).
Gravity: Brahmagupta in the year 628 CE ("gurutvฤkarแนฃaแน") ๐ฎ๐ณ
Algebra: Muhammad ibn Musa al-Khwarizmi ๐ฎ๐ถ (circa 780โ850 CE) in Baghdad. His seminal book, "Al-Kitฤb al-Mukhtaแนฃar fฤซ แธคisฤb al-Jabr wal-Muqฤbala" (The Compendious Book on Calculation by Completion and Balancing), laid the foundations for solving linear and quadratic equations using systematic methods.
Modern history
Modern computer science: Alan Turing ๐ฌ๐ง
World Wide Web: Sir Tim-Berners Lee ๐ฌ๐ง (Hypertext idea to DNS & TCP ๐งฉ)
TCP/IP: Vint Cerf & Bob Kahn ๐บ๐ธ
The OSI model was developed by the ISO (late 1970s) ๐จ๐ญ
GML (1973): Charles Goldfarb, Edward Mosher, and Raymond Lorie at IBM ๐บ๐ธ
HTML (1991): Tim Berners-Lee ๐ฌ๐ง while working at CERN (evolution of GML)
CSS (1994): Hรฅkon Wium Lie ๐ณ๐ด while working at CERN. CSS1 was released by the World Wide Web Consortium (W3C) in 1996.
Wi-Fi: John O'Sullivan ๐ฆ๐บ and his team at CSIRO. It was based on the IEEE 802.11 standards, which were initially developed by the IEEE ๐บ๐ธ in 1997.
Lisp (1958): John McCarthy ๐บ๐ธ (also coined the term "artificial intelligence" in 1956)
Algol (contraction of algorithmic language, 1959): international committee of computer scientists ๐บ๐ธ ๐ช๐บ
Cobol (1960): Grace Hopper (foundational concepts and advocacy) and CODASYL (structure and formal process) ๐บ๐ธ
Pascal (1970): Niklaus Wirth ๐จ๐ญ
Delphi (1995): Anders Hejlsberg ๐ฉ๐ฐ (evolution of Pascal)
Bluetooth: Jaap Haartsen ๐ณ๐ฑ and engineers at Ericsson ๐ธ๐ช
B, UTF-8: Ken Thompson ๐บ๐ธ
C: Dennis Ritchie ๐บ๐ธ
Unix: Dennis Ritchie ๐บ๐ธ & Ken Thompson ๐บ๐ธ
C++ (1980): Bjarne Stroustrup ๐ฉ๐ฐ (used for Youtube Indexing)
Free Software Foundation (1985;) Richard Stallman ๐บ๐ธ
Neural networks: 1943 Dr. William McCulloch ๐บ๐ธ Neuropsychologist and cybernetician
SQL was developed by IBM ๐บ๐ธ in the early 1970s. The initial version of SQL was created by Donald D. Chamberlin and Raymond F. Boyce. The language was originally designed to manage and query data in IBMโs System R, a pioneering relational database system.
JSON was created by Douglas Crockford ๐บ๐ธ in the early 2000s. Crockford developed JSON as a lightweight data interchange format that is easy for humans to read and write and easy for machines to parse and generate.
C# (2001): Anders Hejlsberg ๐ฉ๐ฐ (used at Twitch, GitHub, Telegram, MasterCard)
YAML (Yet Another Markup Language): 2001 by Clark Evans along with Ingy dรถt Net and Oren Ben-Kiki.
Objective C (1986): Brad Cox & Tom Love ๐บ๐ธ
XML was developed by the World Wide Web Consortium (W3C) ๐บ๐ธ
Sparql was developed by the World Wide Web Consortium (W3C) to query and manipulate data stored in the Resource Description Framework (RDF) format ๐บ๐ธ (Examples of large-scale linked data initiatives include DBpedia, Wikidata, and Europeana, which use RDF to represent structured data from sources like Wikipedia).
RDF was developed by the World Wide Web Consortium (W3C) as part of its efforts to create a standard for representing data about resources on the web ๐บ๐ธ
Java: James Gosling ๐จ๐ฆ (used at Airbnb, Uber, Pinterest, Linkedin, eBay, Twitter, Blogger, Yahoo!, Youtube-web)
JavaScript (1995): Brendan Eich ๐บ๐ธ
WebGL (2009): Brendan Eich & Jeffrey D. Schiller within the Khronos Group ๐บ๐ธ
Three.js (2010): 3D graphics with WebGL: Ricardo Cabello akaMr.Doob ๐ช๐ธ
Go (2009): Robert Griesemer ๐จ๐ญ Rob Pike ๐จ๐ฆ & Ken Thompson ๐บ๐ธ (used by Docker)
Swift (2014): Apple™ ๐บ๐ธ
Matlab: Cleve Moler ๐บ๐ธ
VBScript (1990, Alan Cooper), ASP (1996), .Net (late 90s, used at Microsoft live.com, MSN) & TypeScript (2010): Microsoft ๐บ๐ธ
First www browser: Mosaic was developed at the NCSA at the University of Illinois at UrbanaโChampaign beginning in late 1992, released in 1993, and officially discontinued development and support in 1997. ๐บ๐ธ
Matplotlib (2003): John Hunter (neurobiologist) ๐บ๐ธ
Scala (2003) Martin Odersky, EPFL ๐จ๐ญ
Node JS (2009) Ryan Dahl ๐บ๐ธ (used at Airbnb, eBay, Square, Asana, Serverless Framwework)
Clojure (2007) Rich Hickey ๐บ๐ธ
Rust (2006) Graydon Hoare ๐จ๐ฆ
Quantum computing
Qiskit (Python-based): IBM ๐บ๐ธ
Cirq (Python-based): Google ๐บ๐ธ
Q# (Q-sharp): Microsoft ๐บ๐ธ
Forest and PyQuil (Python-based): Rigetti Computing ๐บ๐ธ
Quipper (Haskell-based): Academic/research community ๐จ๐ญ
ProjectQ (Python-based): ETH Zรผrich ๐จ๐ญ
Strawberry Fields (Python-based): Xanadu Toronto ๐จ๐ฆ
Silq: ETH Zรผrich ๐จ๐ญ
penQASM (Assembly-like): IBM ๐บ๐ธ
Quantum Machine Learning: PennyLane (Python-based): Xanadu Toronto ๐จ๐ฆ
LIQUi|> : Microsoft (Quantum Simulation Framework) ๐บ๐ธ
QCL: Bernhard รmer ๐ฆ๐น (one of the pioneer)
Programming languages & their uses
HTML: for structure
CSS: for style
jQuery: for legacy
GraphQL: query language for data APIs (and also a runtime that needs to be implemented on the backend). A GraphQL subscription query performs the query over the WebSocket endpoint.
jQuery: for legacy
Java: Android Apps, Desktop Apps, Web Applications, Big Data, data structures. Substitute => Kotlin. Frameworks => Spring, Struts, Apache Wicket, Hibernate, Dropwizard, Grails, Play framework, Vaadin, Blade
Javascript: Web Dev & App, Server Application, Web Servers, Mobile Application. Substitute => TypeScript. Framework => React, Vue or Angular
Kotlin: Android Apps. Substitute => Dart
Swift: Deep Learning, IOS Apps, IOT, UI
Python: Web Apps, Machine Learning, Data Visualization, Data Science, Embedded System. Substitute => Julia or R Lang. Framework => Django
Matlab: Data Science (there is no "if", only "how")
Robotic Process Automation: Ruby on Rails, XML, Java, test automation frameworks => Selenium WebDriver, Cypress, Playwright, BDD cucumber
Ruby: Web scraping, static site generation, command-line tools, automation, DevOps, data processing. Framework: Ruby on Rails
Most popular programming languages
Programming languages come and go. Some stand the test of time. Some already are shooting stars and some are rising rapidly on the horizon. I draw a diagram by putting the top 38 most commonly used programming languages in one place, sorted by year.