Building Code

How were programming languages built? Here’s a brief history.

Building Code

How were programming languages built? Here’s a brief history.

We,  humans, have always been on the lookout for somebody to do our heavy  and unwanted lifting. First it was simple machines, then steam powered  beasts, and at the end a bunch of semiconductors and a quartz.

But  how do you get a simple stone to do what you want? How do you explain  to an electric circuit what you want from it? Through a programming  language, of course.

Where  did these programming languages come from and who made them up?  Everything starts with a theory, and programming was no exception.

Let  us start our story with the Analytical Engine. It was a kind of  mechanical computer designed by Charles Babbage, one that worked with  gears and springs instead of wires and chips. And in 1843, Babbage’s  work was being translated by a certain Ada Lovelace.

Ada  didn’t stop at translation. At the end of the book she added her own  notes on how to use the proposed engine to calculate Bernoulli numbers.  Although far from a proper programming language, it was the first step  in the right direction.

The  next step was Turing machines — again not a computer but a mathematical  model for one. A physical model of a Turing machine could be programmed  to do some limited computations, like solving mathematical functions,  but it was way too simple and far away from anything we could call a  programming language.

A  language should be readable and expressive. What is use for it if we  can only say “ga-ga” and “go-go”? So this subject was shelved until the  magical time of 1940, when an earlier version of modern computers, big  and full of electricity, came to life and kicked off a whole wave of  theories and practices.

The  first programming language with a bunch of useful commands was Assembly  Language. It is confusing, crazy looking and sometime quite scary, but  it allows programmers to communicate with the hardware of a given  computer in a rather straightforward manner.

It’s  kind of like building a house but without any tools at all. You have to  assemble it brick by brick, and make measurements on the palm of your  hand. Not very easy to make, but it does produce a very fast and light  executable application — so light that it’s still used today for very  delicate operations, although the art of Assembly Language only known by  the grey bearded wizards and sorcerers.

Assembly Language was useful, but people wanted more. They wanted something more “high-level”, more understandable and friendly.

They wanted something they could speak.

It  took some thought and effort, but in 1952 Autocode programming language  was developed, for a humongous computer at the University of  Manchester.

Autocode  was the first programming language that used a compiler, a special  piece of software that took your program and translated it directly into  machine code for a fast execution. This way nobody had to write in  machine code ever again, thanks almighty. But Autocode did have a very  limited use, as it was specifically designed for a specific computer.  Now you are building a house with some basic hands tools, like a hammer  and a crooked saw.

Programming languages are used to write software. But did you know that they are also software themselves?

Every  programming language has a compiler, which is usually written using  another programming language. The compiler is what reads your program,  and translates it into machine code that your computer can understand.

For  example, Autocode compiler was written using Assembly languages, but  the next iteration of its compiler was written using Autocode and then  compiled with the first compiler. Confusing, isn’t it?

Well,  a compiler is a software, it is written and then compiled into a  machine code, losing its affiliation to a language. So you can use a  compiler to write a better compiler, because after it is compiled it is  just a machine code. It is like making a better tools with a set of  simpler tools, until you got your own power saw

The  next big thing was FORTRAN (Formula Translation). Engineered at IBM  back in 1954, it was the first high-level programming language for  general purpose and general use. It got around and quickly became the  crowd’s favourite, and in some circle still is, especially where you  need a lightning fast performance but you are scared of old Assembly  Language. FORTRAN gave you some simple, English-like commands such as  IF, ELSE and READ — still unpowered, but now you got a hand drill and  some nails.

The  year 1959 was quite fruitful for programming languages. First came  COBOL (Common Business Oriented Languages), created and sponsored by U.S  Department of Defence. From ground up it was designed to be used by big  businesses, and so it ended up in systems like ATM, telephones, credit  cards services, hospitals and other large infrastructures.

Then  came LISP, masterminded to be used for artificial intelligence  research, but then skewed for a more general use. It was one of the  first functional programming languages, which in simple terms means that  you use just functions to build a software, there is no permanent state  whatsoever.

Now these languages actually gave you some power tools to build your house, not many, but you do get a chainsaw.

The  60s and early 70s brought a wind of change. Computers were becoming  cheaper and more accessible. Their metal husks spread all around the  world, finding places in many universities and even some homes.

More  people wanted to use computers, but not many could overcome the  complexities of the earlier programming languages. That was until  engineers from the Dartmouth University came up with BASIC — the  Beginner’s All-purpose Symbolic Instruction Code — to help their  students to get into ever growing field of programming and computation.

The  BASIC syntax simplified the flow of many loops, IF got THEN, FOR got TO  and NEXT, DO got UNTIL. Now you did not have to deal with strange  commas and dots, as long as you knew some basic English you could  understand what was going on.

BASIC  was a great success and became the first language for many students,  and if you are familiar with Microsoft, you will notice that a forked  version of it became their flagship product. This was more akin to  building an Ikea furniture, you got your pre-made parts, clear  instructions and some tools, you just have to work out how to put it all  together.

With  the rise of these higher level programming languages, a more structured  and elegant code could be written, and in many cases people took it to  heart, trying to add a touch of beauty to their work. And it could mean  anything, some take pride in writing the shortest code possible, other  the most confusing code feasible, and some enjoy adding their own  flavour to the structure of their software.

Another  language that opened the doors to programming for many was Pascal,  specifically designed to teach students about mystical art of computers.  It was made to be easy to pick up, but hard to master. And it is still  around, used in many organizations with somewhat outdated  infrastructures. Pascal played a big role for Apple computers and was  their main go-to language back in eighties.

-In  the 70’s, something happened that forever changed the world we know.  The granddaddy of it all, the all great and all powerful C programming  language was developed at Bell Labs by famous Dennis Ritchie. It is  quick, it is elegant, it is simple, it is powerful, it is multi-platform  and it got the best syntax of them all.

Yes, I said it — fight me if you want.

Together  with Unix it spread like a wildfire, trumping everything before and  everything after it. It is still employed to this day and for many it is  their most loved and cherished companion.

C  also influenced and was used to code half of the current heavy hitters,  like Ruby, C#, Java, PHP and many, many others. There is probably a  little bit of C on most of the devices around us today. It gives you all  the best hand tools, powered and unpowered, but you still have to get  your hands dirty if you want to build a three stories high mansion.

The  80’s followed up with more C-flavoured languages. First Objective-C was  created as an extension of C to support, you might guessed it already,  object-oriented programming, a concept where a code is broken down into  objects with data and functions to manipulate said data. Although it  never reached the mainstream, it did find its way into Apple’s macOS and  iOS operating system.

Then  there was C++ by famous and loved Bjarne Stroustrup. And it is a  colossal language, taking power of C and expanding it in all directions,  making it one of the most widely used languages in the whole wide  world. And today it is everywhere, from game engines, to operation  systems and high-performance software. Now you have cranes and  excavators, heavy machinery and fine tools, you can build a hut or a  skyscraper, C++ lets you do it all.

When  the 90s rolled in things started to accelerate. Computers went far and  beyond, becoming gaming console, web servers, entertainment units and  anything you can think of.

And  every solution needed a specific programming language, and so languages  started to pop up left and right. Influenced by their predecessors, but  designed to serve narrower purposes. Haskell popped in 1990 as a purely  functional programming language, designed to deal with a large amount  of complicated calculations and numbers crunching. Python in 1991 took a  niche of a light and quick code. Visual Basic introduced a  drag-and-drop style of programming with a support of graphical user  interface.

In  the wild 1995 Java hit the scene, developed by Sun Microsystems for  smaller, hand-held devices and later sweeping all across the World Wide  Web. Then came PHP, master of web developing. JavaScript enhance our  browsing experience. C# made C++ friendlier (or even too friendly) and  made hacking together cool apps and then cool anything a breeze.

Scala  merged functional with object-oriented programming, making a hot but  very handy mess. And the list continues, and it will grow and grow as  every year new languages pop up, bringing new solutions and solving new  problems. These, let’s call them smaller languages, are more like  specific tools for window making, floor laying, wall painting, it is  hard to build a house using one, but you can lay some nice tiles with  them.

These  days it is hard to predict where programming language will go. There  are more computers, mode devices and more machines. Gone are the days  when a programmer knew a single language, today you better know ten if  you want to get a lowly position in some high organization. Languages  gained specializations and the field of computer programming grew into a  major engineering endeavour.

We  do not know where we will end up, but there will be computers and there  will be programming languages. They might be written or oral,  telepathic or self-generating. But they will be there, bending the  machine to our wants and our needs.

Want to write with us? To diversify our content, we’re looking out for new authors to write at Snipette. That means you! Aspiring writers: we’ll help you shape your piece. Established writers: Click here to get started.

Curious for more? Sources and references for this article can be found here.