basic coding (Photo credit: Terry Freedman)
When I started programming computers in the 1980s, life was really simple. Networking was in its infancy and the Internet was just a twinkle in Tim Berners Lee‘s eye. So you didn’t have to worry about communicating with other machines. There was no windowing concept, so the screen was only two dimensional. Computers tended to just be running your program so you were in complete control. All you had to worry about was lighting up the right bits of the screen and dealing with what the user did to the keyboard.
As time went on and computers became more advanced, the complexity increased. Computers started to talk to each other through something called a database. People will always argue about who invented the idea, but windows arrived along with icons and a mouse. Suddenly, the user could do exactly what they wanted and you had to share everything with other computer programs.
The Internet changed the way we think about computing completely. Suddenly computers talked to each other. No longer could you be prescriptive about what was on the other end of the conversation. Smartphones changed the game yet again. Suddenly, there were a multiplicity of devices all with different operating systems and different limitations.
Having been in IT for a quarter of a century, as you would imagine, I have worked with a large number of different software development technologies and computer languages during my time. My first exposure to programming was at home using BASIC (Beginners All-purpose Symbolic Instruction Code). As the name suggests, it is a great starting point for anyone. The language reads almost like plain English. Contrast that with the other computer language I used at home which was Z80 assembler which is akin to programming in hieroglyphics or runes.
When I first started programming for a living, I used something called ADABAS Natural from Software AG. This was not programming per se, but more like writing down what you wanted to happen and then handing it to your butler who took it away to some real programmers who turned it into a program. You never felt close enough to the machine to really feel like you were programming.
At college, I learned Pascal, which I took to like a duck to water. Pascal is like an extremely fastidious bachelor who lives alone in a penthouse apartment. Everything has a place. Don’t even think about trying to use something before you have told me exactly what it is or where it lives. The nice thing about Pascal was that you ended up with a very nicely structured (albeit wordy) program. It was also nice to use Turbo Pascal from Borland. In their heyday, Borland provided some of the most excellent programming environments around.
Later, I started to use DBASE from Ashton-Tate which was my first exposure to database based programming. As a language, DBASE was powerful but interpreted one instruction at a time, which meant it was tediously slow. It was a natural progression to use Clipper which retained the power, but it was compiled and so comfortably faster.
I never really liked C which was like a simpleton backstreet bruiser with extremely poor hygiene. You had to be really careful what you asked him to do, because he would take it completely literally. It was very easy to machine gun yourself in the foot.
My favourite language was Visual Basic which was like a man with a van – pretty handy for just about anything. You could knock up a program in no time and copy it to another machine using a floppy disk. Because of progress, Visual Basic became more like a man with a fleet of articulated trucks all filled to the brim with specialist tools for just about any task. You could do a lot more – but the simplicity had disappeared.
I would like to teach my nephew and niece about the joys of programming, but the barriers to entry are high. I was delighted when I heard about the Raspberry Pi. This Cambridge based initiative is all about providing a simple computer at an affordable entry point. I registered my interest straight away, but unfortunately I was not alone and stocks are hard to come by.
So I settled on the Cubox instead which is a similar concept, but a bit more expensive and a bit more polished. It includes things like a case and a power supply. Maybe my nephew or niece will grow up to develop the next great leap forward to make programming even more complicated!