Languages I have learned

Ok, that should more accurately read “used” or even “abused" - as most of these have only enterd my domain when required by a job or college course. However some have been a major part of life over a much longer periods - C++, C# and of course SQL (in some flavour) have featured heavily over the last couple of decades.

So I had the idea to write down the full list. This is just an exercise in nostalgia, not a critique or comparison. I just got to thinking about some of the languages I have used or even seen at their peak, which are now mostly forgotten – at least by me. This list will be fairly chronological, as that should help me to remember most of them.

 

BASIC

Didn’t we all start with this? I did have some limited and infrequent exposure to Commodore 64’s and the like in the mid-80’s but did not really get the bug until the seminal moment in 1989 when I first attended the Crawley College of Technology (now the Central Sussex College) part-time BASIC programming course. That short (c30 hours over a couple of months) course actually landed me a job with a company called N.E.T. (now Sonus) configuring IDNX network topologies, and occasionally remoting into live installations to change config values using Unix shell scripts.

 

Turbo Pascal

I have fond memories of a fairly powerful tool which just needed Tp.exe (on a 3.5in floppy) and an editor.

 

RPG III

Not so fond memories of report design with this one

 

Lisp

Find the mis-matched bracket – that that's what I mainly remember from using this 20 years ago

 

Dbase IV/Clipper

Used to develop my first commercial code, a database system for a local company which had revolutionary pop-up “windows”.

 

CoBOL

I. E. D. P. (Information, Environment, Data, Processing) – still etched on my mind. Thought I had left this behind at college until I worked for a bank on the nuts and bolts of mainframe/server/client communications between various apps. I had to write a couple of libraries for their Cobol system to call and they insisted I did a few days re-training to be familiar with the CoBOL devs pain.

 

X86 Assembler

Powerful stuff. Back in college this was how we wrote games and some of the open-book exams involved questions like “Add auto-fire to the gun” etc... Then in the early days of Windows programming this was how you saw into some libraries when debugging (the second screen was often full of it). And then in at least one contract I’ve even ended up maintaining what were known as TSR’s (Terminate and Stay Resident programs) which set up buffers and other temporary things on users HDDs on startup.

 

DOS batch files

Always and everywhere. We have all seen full build systems written in this stuff. I still write them when I need to iterate over bunch of files (like moving files between changelists in SD).

 

C

The big one. Loved it at college, Then, when I got to work, I wrote my first Windows apps in it (and hand coded the resources .rc files in the Brief editor). I feel I owe this language a debt as it opened the door for most of what I do today. I still have Kelly and Pohl’s “A book on C” on my shelf here (and I’m sure Kernighan and Ritchie’s book is at home somewhere).

 

C++

I remember in the early 90s there was an funny e-mail used to do the rounds about “why C++ is like sex” and one of the lines was something like “because everybody thinks everybody else is doing it, but really most people haven’t done as much of it as you think”. And it was like that, we could not wait to get into this cool new way of coding (OOP). I eventually did, and it became my trade. Back during my self-employed years I titled myself a “Contract C++ dev”. I have used a few flavours of this over the years, from Ansi to Visual C++ (and MFC) to Borland and the OWL library.

 

Lotus 1-2-3 macros

Back in the day we had a full test automation suite for the 1-2-3 product, written entirely in it’s own macros. It was impressive and took quite a bit of learning, and worked.

 

Lotus Notes macros

Notes was a great rapid development platform back in the 90s and this was the way to add “code-behind”. It did sometimes mean late nights using print statements to debug, but it also meant I sometimes quickly produced really useful centralised project repositories with workflows etc... (Think Sharepoint, but in 1994).

 

LotusScript

Or Lotus Basic as I think it may have once been known. This added more power to the code behind Notes databases and came with some step-through debugging capabilities.

 

Java

I did my first course in Java in 1996 or 7 and I well remember the excitement over how the web was gaining traction at that time. I even remember a discussion with other course attendees about the end of the PC, and the advent of thin client machines. I suppose we were right – it just took a while longer (and reliable broadband). Anyways I have mainly only used Java on subsequent college courses (finished a Masters a couple of years ago) and I still like it – if my next job was a shift to that stack I imagine I’d be nearly as happy as I currently am on .Net.

 

CL

When i was a C++ dev an agency once sent me for an interview. 5 minutes in the guy asked where I learned CL – turns out the agency had confused either C or C++ with CL, a SQL or 4GL language from a company called Multibase pty. So I told him that I had never heard of it, but as I was just recently arrived in Australia and needed a job I asked them to give me a week to learn it. I subsequently delivered on that first project for them (Y2K compliance testing) by writing a rudimentary parser to match patterns and identify Y2K smells

 

SQL

Like batch files this seems to have been omni present, from DB2, Oracle, Sybase to Multibase and then MS came out with their own SQL Server and it’s Express and compact version. I've probably been using MS SQL Server for the best part of a decade.

 

Nortel Meridian scripts

As I recall the Nortel Meridian Call centre server had it’s own scripting language, which allowed the use of variables to assign calls to different levels of operators depending on their skillset and that of the forwarding operator.

 

JavaScript

While I’ve never worked as a “web developer” I have done my fair share of html parsing and that have needed to know what the scripts are doing too. Over the last few years working with MS Dynamics CRM has required more ramping up in this area as nearly every form in every CRM solution I have ever created has required at least some Javascript (Jscript) behind it. I like it and I like that there is a ton of resources out there to help with it.

 

C#

Since the first time I walked in the doors of MS as a contractor I’ve been using this (and .Net of course). Currently it’s what I use everyday – I’ve even got the cert to prove I know it

 

VB.Net

I don’t use this too much, but every now and then I find myself fixing or extending a tool written with it and am always glad that .Net makes it more immediately familiar than it might otherwise be.

 

Powershell

I don’t write any big scripts with this, but I use it from time to time to boss my O/S or that of remote machines around.

 

Bourne Shell, C Shell

Infrequent use over the years when using Unix based machines

 

When I look back at this list now it actually doesn’t appear that long, considering the time frame. So now I’m thinking there may be others which I’ve forgotten (did OS/2 have a scripting language). If I do remember more, I’ll add them here.