When I started programming way back when… Specifically back in 1982 or so… things were both easy and hard.

You barely had a text editor in the days of the Commodore 64. Programming BASIC was knowing the line numbers and listing a chunk of code, cursor-up-ing and changing, and re-running. A lot had to be done with your own memory.

Moving to the Amiga and the PC the language of choice was C and C++. (C++ in the era when you knew all of C++, not like now) You moved to having a bigger library of functions but also having a real editor. Much was still based on memory, but it’s something that you could deal with if you had good conventions.

Here I am now and I feel lost without a good IDE and function auto-completes. I regularly code in a number of languages in a bunch of wildly divergent systems. The problem isn’t the language which I can deal with without any real problem, the problem is the libraries. Each language has the same features, but each implements them in a slightly different and incompatible way. The notion of a hash table, for instance, occupies one mental bucket for me, but it winds up slightly different in each place.

So, on any given day I might be programming in:

  • Java
  • Objective C
  • Swift
  • Ruby
  • Python
  • Bash
  • C++

I’m sure a couple other languages might pop up now and then too to add some spice (and mental confusion).

Without the crutch of the IDE helping me out I tend to slow down a bunch because I never can really get into a groove of a single set of mental constructs.

Many would, I’m sure, call me weak for not just firing up vi (Ack! at least let me use Emacs for crissakes) and writing code with no assists. I don’t really care. I have machines around me to fill in the blanks for the simple random things. Where I add value isn’t the syntax, but the structure.

There will be more on this series with some reviews. Spoiler: I love IntelliJ with all it’s plugins.