top of page
John Bell

Tech Sense December 2023: Programming Languages



Programming Languages

First Program

In 1976 I wrote my first computer programs in Fortran, a language that had been created in the 1950’s to aid in scientific programing. The purpose of a programming language was to make it easier for humans to provide the instructions to control the actions a computer takes to solve a problem. The instructions were supposed to be easier for people to understand than the binary numbers that actually controlled the computer. A person would write the program in Fortran for example and the computer would compile the program into the ones and zeros that formed binary code. And yes, I did submit my programs on punch cards.


Basic Program

In 1977 I started to write programs in Basic, a different language that worked differently. The Basic language did not compile the program into machine code. Instead, another program interpreted the code. Basic intended to be a beginners-language making programming easier for people to learn. While Basic started in Dartmouth, it grew up in the microcomputer world on computers like the Commodore Pet, the Radio Shack TRS-80, and many other 8 bit-based computers that were starting to appear. An early computer magazine was Dr. Dobbs Journal, which started by showing people how to create their own Basic interpreters to run programs on their home-built microcomputers.


Technology Changes

The 1980’s saw amazingly rapid changes to technology, including the hardware in computing and the languages used to program it. Pascal gave us a new learning language that compiled the code to binary like Fortran but gave us better tools for designing well written code introducing us to “structured programming”. Then the University of California in San Diego (UCSD) gave us the P-Code engine. P-code was an intermediate code representing a virtual computer. The compiler would take Pascal source and convert it to p-code. The p-code then executed on a program that interpreted the p-code as if it were hardware. The Pascal program now runs on any hardware that runs the p-code machine. This same technique inspired the bytecode machine used in the present-day Java programming language.

New languages were exploding all around. Lisp showed up inspiring experimentation in artificial intelligence and giving us the Emacs editor. C escaped from the Unix labs providing great system development tools. Smalltalk lets us begin exploring object orientation. Spreadsheets introduced a completely new way of creating solutions that does not even feel like programming.


Even Bigger Changes

It started slowly, hardly even noticed. First one computer was hooked up to a telephone with a modem and connected to another computer. Then people wanted this automated, and modem software started to include “scripting languages.” This could automatically dial a number, run a script, exchange some information, then hang-up and repeat with a different computer. New protocols were created to exchange news, scientific papers, and other information. The telephone wires were replaced with higher speed network wires and then fiber optics. Soon we were all caught in the net, the Internet that is. Now we are seeing many new scripting languages.


Read the Script

Scripting languages often start to simplify common problems by creating special purpose languages. Examples include control of a phone dialer by writing Procomm modem scripts, or an easier way to display a resume on a web page (PHP). We added Perl to simplify common administrative tasks and it ended up creating content for much of the early web. Visual Basic for applications turns our office tools into programming tools to help us handle repetitive tasks. JavaScript started as a scripting language to help make web page content more dynamic (as did PHP).


More Languages than the United Nations

There are many more languages out there that I have not covered (and won’t). C has a younger Object-Oriented sibling C++ and another that the parents will not claim Objective-C. Pascal evolved into Modula, and Delphi. Ada is a great example of a language designed by a government committee. While Java seems to me to have evolved into what Ada should have been. There are languages I barely remember like Algol, Snobol, PL1, and Scheme. There are languages like Perl, which was great when you were writing code with it, but a year later you cannot remember what the code did. Sorry Perl fans, but I loved the language and now I find I can no longer read my old code, so I seem to be better with Awk (yet another scripting language). Do we lisp when we code in Lisp? Is it OK if my fourth language was not Forth and can I do that in reverse polish notation? Finally, how many variants of Basic do we still need? Feel free to look up all of these languages in Wikipedia.


Is There a Point?

Ok, first let me point out a couple of things. There are way more languages than I could ever hope to cover in one single article, also each language seems to have a sweet spot, where that language is the perfect language to solve a specific type of problem.

A lecture I like to give to classes of new programmers. I call it, “If all you have is a hammer, then everything looks like a nail.” This is often my response to the question “why do I have to learn another programming language; I already know Java” (or any another language of the day).

My philosophy is the more tools you have the more types of problems you can solve well. As the blind man said to his deaf dog, “I see” as he picked up his hammer and saw.

I know this was not very holiday oriented, but I have wanted to write this article for a while, and I hope you enjoyed it. I wish all of you best wishes during this holiday season.

14 views0 comments

Comments


bottom of page