Shahzad Bhatti Welcome to my ramblings and rants!

December 11, 2025

50+ Languages in Three Decades

Filed under: Computing — admin @ 10:53 am

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 buiding 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.

Summary

#LanguageEraPrimary Use
1BASIC/QuickBASICLate 1980sLearning
2CLate 1980s – Early 1990sCollege/Applications
3PascalLate 1980s – Early 1990sCollege
4PrologLate 1980s – Early 1990sCollege
5LispLate 1980s – Early 1990sCollege
6FORTRANLate 1980s – Early 1990sCollege/Physics Lab
7PerlLate 1980s – Early 1990sSelf-taught
8IconLate 1980s – Early 1990sCompiler Building
9COBOLEarly 1990sMainframe Applications
10CICSEarly 1990sMainframe Applications
11JCLEarly 1990sMainframe Scripting
12REXXEarly 1990sMainframe Scripting
13SASEarly 1990sData Processing
14C++Early 1990sPhysics Lab Applications
15PythonEarly 1990sScripting/Glue Language
16dBaseEarly 1990s4GL Applications
17FoxProEarly 1990s4GL Applications
18ParadoxEarly 1990s4GL Applications
19DelphiEarly 1990s4GL Applications
20Visual BasicEarly 1990sClient Applications
21PowerBuilderEarly 1990sClient Applications
22SQLEarly 1990s – PresentRelational Databases
23PL/SQLEarly 1990s – PresentRelational Databases
24HTMLMid/Late 1990sWeb Development
25JavaScriptMid/Late 1990sWeb Development
26CSSMid/Late 1990sWeb Styling
27ColdFusionMid/Late 1990sWeb Development
28JavaMid/Late 1990sWeb Development
29XMLMid/Late 1990sData/Configuration
30XSLTMid/Late 1990sData Transformation
31XPathMid/Late 1990sXML Querying
32XQueryMid/Late 1990sXML Querying
33PHPMid/Late 1990sWeb Development
34VBScriptMid/Late 1990sScripting
35ActionScriptMid/Late 1990sFlash Development
36RSSMid/Late 1990sSemantic Web
37SPARQLMid/Late 1990sSemantic Web
38RDFMid/Late 1990sSemantic Web
39IDLMid/Late 1990sDistributed Systems
40CORBAMid/Late 1990sDistributed Systems
41Ruby2000sWeb Applications
42Erlang2000sConcurrent Applications
43Elixir2000sConcurrent Applications
44Groovy2000sTesting
45R2000sData Analysis
46Objective-C2000siOS Applications
47Scala2000sFunctional Programming
48Haskell2000sFunctional Programming
49Clojure2000sFunctional Programming
50GoMid 2010sNetworking/Concurrent Apps
51SwiftMid 2010siOS Applications
52KotlinMid 2010sAndroid Applications
53FlowMid 2010sType Checking
54TypeScriptMid 2010sJavaScript Alternative
55DartMid 2010sFlutter Applications
56GraphQLMid 2010sBackend APIs
57SolidityMid 2010sSmart Contracts
58LuaMid 2010sGlue Language
59RustMid 2010s – PresentHigh Performance Apps

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URL

Sorry, the comment form is closed at this time.

Powered by WordPress