The Center for Education and Research in Information Assurance and Security (CERIAS)

The Center for Education and Research in
Information Assurance and Security (CERIAS)

CERIAS Blog

Page Content

So you have to learn a 3rd programming language?

Share:

I recently found myself in a conversation where someone made a comment about "Being so old I've programmed in Pascal!" I'm considerably older than that person, and actually did some of my first programming on plugboards and punchcards. I declined the opportunity to point that out at the time.

Upon some reflection, I realize I've had the opportunity (and sometimes, the necessity) to use many, many different languages during my 48 years of programming. I used to find it empowering and instructive to try different programming paradigms and approaches, so I actively sought out new ones. As my workload and schedule have evolved over time, I have not really picked up many new ones. I’d like to learn Swift and Rust (for example) but I'll need to carve out the time and obtain a compiler, first.

For grins, I thought I'd make a list of programming languages where I wrote at least one non-trivial program, where "non-trivial" means that there were subroutines/functions/methods/etc. I may have left a few out, but... (you can find most of these documented on Wikipedia if you haven't run across them before).

  • 80x86 assembler
  • 6502 assembler
  • 8080 assembler
  • abc
  • Ada
  • Algol 68
  • Algol W
  • APL
  • AppleScript
  • awk/sed
  • bash
  • Basic
  • bc
  • C (original and ANSI)
  • C++
  • Cobol
  • Common LISP
  • COMPASS
  • csh
  • dc
  • Eiffel
  • Emacs LISP
  • Euclid
  • flex/lex
  • Forth
  • Fortran 77
  • Fortran II
  • Fortran IV
  • html
  • Java
  • Javascript
  • JCL
  • ksh
  • LISP
  • M4
  • MATLAB
  • MIX
  • Modula 2
  • Modula 3
  • MS-DOS Batch
  • nroff/troff
  • Oberon
  • Pascal
  • Perl
  • PHP
  • PL/I
  • PL/M
  • Postscript
  • Pr1me assembler
  • Prolog
  • Python
  • Ratfor
  • RPG
  • sed
  • Simula
  • Smalltalk
  • SNOBOL
  • tcl/tk
  • TeX/LaTeX
  • VAX assembler

I also wrote one small program in Intercal, to prove to myself that I could. I never worked up the courage to tackle Malbolge.

I've also written and debugged patches in microcode on several machines, but I won't claim that I really mastered any of the associated languages.

There may be a few I left out plus dialect/version variations, but that is almost 60 languages as is. I'm sure there are people who have programmed in more; those of us who have been around for a while have needed to adapt.

I don't program very much anymore. I occasionally will whip up a ksh or Perl script, and very rarely, a C program. Those are sort of my default programming tools. If I needed to, I suppose a weekend or two with some language manuals would get me somewhat back up to speed with these others. Thankfully, no one has a pressing need for me to write code for anything, although I'm still pretty good at debugging (errors tend to be the same in any language). I have written four complete compilers and three full operating systems using some of these languages, including one each in assembly language. Thankfully, that is also not on my agenda to do again.

So when "kids these days..." complain about having to learn a 3rd programming language for class, well, I am amused.