Skip to content

Instantly share code, notes, and snippets.

@bhatti
Created December 11, 2025 16:57
Show Gist options
  • Select an option

  • Save bhatti/5aafc121a22e7a834fcedd4b4f27f3ec to your computer and use it in GitHub Desktop.

Select an option

Save bhatti/5aafc121a22e7a834fcedd4b4f27f3ec to your computer and use it in GitHub Desktop.

50+ Languages in Three Decades

Here are the programming languages I've used over the last three decades. From BASIC in the late 80s to Rust today, each one taught me something about solving problems with code.

Late 1980s – Early 1990s

  • I learned coding with BASIC/QUICKBASIC on Atari and later IBM XT computer in 1980s.
  • I learned other languages in college or on my own like C, Pascal, Prolog, Lisp, FORTRAN and PERL.
  • In college, I used Icon to build compilers.
  • My first job was mainframe work and I used COBOL and CICS for applications, JCL and REXX for scripting and SAS for data processing.
  • Later at a physics lab, I used C/C++, Fortran for applications and Python for scripting and glue language.
  • I used a number of 4GL languages like dBase, FoxPro, Paradox, Delphi. Later I used Visual Basic and PowerBuilder for building client applications.
  • I used SQL and PL/SQL throughout my career for relational databases.

Web Era Mid/Late 1990s

  • The web era introduced a number of new languages like HTML, Javascript, CSS, ColdFusion, and Java.
  • I used XML/XSLT/XPath/XQuery, PHP, VBScript and ActionScript.
  • I used RSS/SPARQL/RDF for building semantic web applications.
  • I used IDL/CORBA for building distributed systems.

Mobile/Services Era 2000s

  • I used Ruby for building web applications, Erlang/Elixir for building concurrent applications.
  • I used Groovy for writing tests and R for data analysis.
  • When iOS was released, I used Objective-C to build mobile applications.
  • In this era, functional languages gained popularity and I used Scala/Haskell/Clojure for some projects.

New Languages Era Mid 2010s

  • I started using Go for networking/concurrent applications.
  • I started using Swift for iOS applications and Kotlin for Android apps.
  • I initially used Flow language from Facebook but then started using TypeScript instead of JavaScript.
  • I used Dart for Flutter applications.
  • I used GraphQL for some of client friendly backend APIs.
  • I used Solidity for Ethereum smart contracts.
  • I used Lua as a glue language with Redis, HAProxy and other similar systems.
  • I used Rust and became my go to language for highly performant applications.

What Three Decades of Languages Taught Me

  1. Every language is a bet on what matters most: Safety vs. speed vs. expressiveness vs. ecosystem vs. hiring.
  2. Languages don't die, they fade: I still see COBOL in production. I still debug Perl scripts. Legacy is measured in decades.
  3. The fundamentals never change: Whether it's BASIC or Rust, you're still managing state, controlling flow, and abstracting complexity.
  4. Polyglotism is a superpower: Each language teaches you a different way to think. Functional programming makes you better at OOP. Systems programming makes you better at scripting.
  5. The best language is the one your team can maintain: I've seen beautiful Scala codebases become liabilities and ugly PHP applications become billion-dollar businesses.

What's Next?

I'm watching Zig (Rust without the complexity?) and it's on my list for next language to learn.

# Language Era Primary Use
1 BASIC/QuickBASIC Late 1980s Learning
2 C Late 1980s - Early 1990s College/Applications
3 Pascal Late 1980s - Early 1990s College
4 Prolog Late 1980s - Early 1990s College
5 Lisp Late 1980s - Early 1990s College
6 FORTRAN Late 1980s - Early 1990s College/Physics Lab
7 Perl Late 1980s - Early 1990s Self-taught
8 Icon Late 1980s - Early 1990s Compiler Building
9 COBOL Early 1990s Mainframe Applications
10 CICS Early 1990s Mainframe Applications
11 JCL Early 1990s Mainframe Scripting
12 REXX Early 1990s Mainframe Scripting
13 SAS Early 1990s Data Processing
14 C++ Early 1990s Physics Lab Applications
15 Python Early 1990s Scripting/Glue Language
16 dBase Early 1990s 4GL Applications
17 FoxPro Early 1990s 4GL Applications
18 Paradox Early 1990s 4GL Applications
19 Delphi Early 1990s 4GL Applications
20 Visual Basic Early 1990s Client Applications
21 PowerBuilder Early 1990s Client Applications
22 SQL Early 1990s - Present Relational Databases
23 PL/SQL Early 1990s - Present Relational Databases
24 HTML Mid/Late 1990s Web Development
25 JavaScript Mid/Late 1990s Web Development
26 CSS Mid/Late 1990s Web Styling
27 ColdFusion Mid/Late 1990s Web Development
28 Java Mid/Late 1990s Web Development
29 XML Mid/Late 1990s Data/Configuration
30 XSLT Mid/Late 1990s Data Transformation
31 XPath Mid/Late 1990s XML Querying
32 XQuery Mid/Late 1990s XML Querying
33 PHP Mid/Late 1990s Web Development
34 VBScript Mid/Late 1990s Scripting
35 ActionScript Mid/Late 1990s Flash Development
36 RSS Mid/Late 1990s Semantic Web
37 SPARQL Mid/Late 1990s Semantic Web
38 RDF Mid/Late 1990s Semantic Web
39 IDL Mid/Late 1990s Distributed Systems
40 CORBA Mid/Late 1990s Distributed Systems
41 Ruby 2000s Web Applications
42 Erlang 2000s Concurrent Applications
43 Elixir 2000s Concurrent Applications
44 Groovy 2000s Testing
45 R 2000s Data Analysis
46 Objective-C 2000s iOS Applications
47 Scala 2000s Functional Programming
48 Haskell 2000s Functional Programming
49 Clojure 2000s Functional Programming
50 Go Mid 2010s Networking/Concurrent Apps
51 Swift Mid 2010s iOS Applications
52 Kotlin Mid 2010s Android Applications
53 Flow Mid 2010s Type Checking
54 TypeScript Mid 2010s JavaScript Alternative
55 Dart Mid 2010s Flutter Applications
56 GraphQL Mid 2010s Backend APIs
57 Solidity Mid 2010s Smart Contracts
58 Lua Mid 2010s Glue Language
59 Rust Mid 2010s - Present High Performance Apps
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment