Programming Languages

Founders

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 ๐Ÿ‡ช๐Ÿ‡ธ
  • jQuery (2006): John Resig ๐Ÿ‡บ๐Ÿ‡ธ
  • PHP (1995): Rasmus Lerdorf ๐Ÿ‡ฉ๐Ÿ‡ฐ ๐Ÿ‡จ๐Ÿ‡ฆ (used at PHP: Facebook, Viber, Hootsuite, Yahoo!, Buffer, Yahoo, Wordpress, Wikipedia)
  • Ruby (1995): Yukihiro Matsumoto ๐Ÿ‡ฏ๐Ÿ‡ต (used at GitHub, Kickstarter, Basecamp, Scribd)
  • Ruby on Rails (2004): David Heinemeier Hansson ๐Ÿ‡ฉ๐Ÿ‡ฐ (used for Twitter)
  • Python (1990): Guido van Rossum ๐Ÿ‡ณ๐Ÿ‡ฑ (used at Googleโ„ข, Instagram, Youtube, Spotify, Quora)
  • Perl (1987): Larry Wall ๐Ÿ‡บ๐Ÿ‡ธ (used at DuckDuckGo, Booking, Craigslist)
  • Kafka (2011): Linkedin ๐Ÿ‡บ๐Ÿ‡ธ (+ Jay Kreps, Neha Narkhede and Jun Rao)
  • QR code: Denso Wave ๐Ÿ‡ฏ๐Ÿ‡ต
  • Git: Linus Thorvald ๐Ÿ‡ซ๐Ÿ‡ฎ
  • JSP: Sun Microsystems ๐Ÿ‡บ๐Ÿ‡ธ
  • R: Ross Ihaka ๐Ÿ‡ณ๐Ÿ‡ฟ & Robert Gentleman ๐Ÿ‡จ๐Ÿ‡ฆ
  • Kotlin (2011): Jetbrains ๐Ÿ‡จ๐Ÿ‡ฟ (used at Googleโ„ข, Amazon, Pinterest, Foursquare, Trello)
  • 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. ๐Ÿ‡บ๐Ÿ‡ธ
  • Supercomputing & Superconductivity: University of Illinois at Urbana-Champaign ๐Ÿ‡บ๐Ÿ‡ธ
  • 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 ๐Ÿ‡จ๐Ÿ‡ฆ

Top Programming languages on Github


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
  • PHP: Web Apps. Framework => Laravel
  • Lisp: standard tool for AI research.
  • Lush: researchers, experimenters, and engineers working in large-scale numerical and graphic applications (signal processing, image processing, computer vision, bio-informatics, data mining, statistics, AI, vector/matrix/tensor algebra, linear algebra (LAPACK, BLAS), numerical function (GSL), 2D/3D graphics (X, SDL, OpenGL, OpenRM, PostScipt), image processing, computer vision (OpenCV), machine learning (gblearn2, Torch), regular expressions, audio processing (ALSA), and video grabbing)
  • C: Embedded System, Linux
  • C#: Game Development, System Programming, IOT and Real Time System. Framework => ASP.NET
  • C++: Games, Operating System, Database, Embedded System. Substitute => Python
  • R: Data Science
  • 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

10 good coding principles


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.

JavaScriptHTML/CSSPythonSQL
JavaNodeTypeScript 8CBash/Shell
PHPCPowerShellKotlin
RustRubyDartAssembly
SwiftRVBAMatlab
GroovyObjective-CScalaPerl
HaskellDelphiClojureElixir
LISPJuliaFErlang
APLCrystalCOBOL 

Most commonly used programming languages
Data source: StackOverflow survey.

Defect


See as an image

The programmer hierarchy

๐Ÿ† Lisp Programmers - Assembler Programmers
↓ C Programmers - Ruby programmers
C++ & PERL programmers
↓ Python programmers
↓ OOP PHP programmers
↓ PHP programmers
↓ Ajax programmers who refuse the word Ajax
↓ Ajax programmers
↓ C# programmers
↓ JavaScript Programmers
↓ Virtual Basic & Fortran programmers
↓ ADA & COBOL programmers
↓ Pascal programmers
Java programmers
๐Ÿ˜ž HTML programmers
↓ = Consider themselves > (superior to)
Download image