Welcome!

IBM Cloud Authors: Elizabeth White, Dalibor Siroky, William Schmarzo, John Worthington, Liz McMillan

Related Topics: Java IoT, Microservices Expo, IBM Cloud, Microsoft Cloud

Java IoT: Article

The History of Programming

Programming really starts back around 2500 B.C. with the introduction of the Abacus

I've been programming since around 1982, first using an Apple in high school and then finally getting my first computer, the Timex Sinclair 1000 (2k of ROM and 2k of RAM), that same year. Both computers came with a form of the BASIC programming language and it was the start of my lifelong pursuit of trying to understand computers.

A few months ago, one of my good friends called and asked if I had a PowerPoint presentation on the history of programming. When I checked my extensive list of presentations, I noticed that I didn't have one, so that led me on a journey to create a presentation on that very subject.

However, where to start? Maybe 1940 or 1950? After thinking about it for a while I realized that's really not where programming started. You need to go way, way back to really understand the programming concept and where it came from. This led me to envision the world as a dark, almost black place with a small white light in the center... really the only light around was the small white light in the center and that light represented the idea: there has to be a better, more accurate, way to count and keep track of things for commerce.

Prehistoric Programming
To be honest, programming really starts back around 2500 B.C. with the introduction of the Abacus. It was the first mechanical calculator that had more capabilities than most people realize. Did you know that the Abacus was used to help the blind count? I guess it could be said that it was the first 508-compliant device, and it was also used to explain things like ASCII that came many years later.

I know what you're thinking - that this is "hardware" not "software," which is 100% correct, but it's also the start of thinking and implementing in a mechanized fashion. Remember, the use of zero (0) was not introduced for another 2000 years, binary was still 2200 years away and almost 2400 years away from having a mechanical machine to predict astronomical events such as eclipses.

It took many years after that to get things like a machine to do control sequences (60 AD), the first real program, the first Cryptography (850 AD), the first security, the first mechanized mechanical calculator (1640 AD) from Blasé Pascal, and the first use of punch cards (1725 AD) for use with looms.

As history points out, there were a lot of things that had to happen to get us to the point where we could start thinking of the concept of "programming." This concept of "programming" was really nothing more than the idea of a repeatable process for counting and manufacturing.

The Leap...
This lead to Charles Babbage's "Analytical Machine," which was a huge, and I mean monumental, leap of what was before and what would come after. Many books and articles have been written on the Babbage machine, but a few reminders are in order:

  • Used a concept of a program
  • Had read-only memory
  • Had the concept of a CPU
  • Used a form of punch cards
  • Could do conditional jumps
  • Would be powered by steam

This change was on the order of going from black and white television to the high definition, millions of colors, televisions of today. The only problem was the machine never worked! However, the thoughts of where it could go sparked a revolution in ideas around such machines.

The great philosopher Plato said it best; "Necessity... is the mother of invention." No truer statement was applied when in 1880 the U.S. Census needed a better way to count the population of the U.S. At that time, it took seven years to complete the counting for that Census and it was predicted that it would take over 10 years to count the next one. The problem was the U.S. Census is supposed to happen every 10 years, hence the problem.

The Census department held a contest to find a better method of counting and it was won by an employee called "Herman Hollerith" who went on to create the Tabulating Machine Company, which later became known as IBM. Now back to the 1880 Census. It counted the 62,622,250 people with the famous line: "finished months ahead of schedule and under budget." The idea for the punch cards that were used came not from history or the loom, but from the observation of railroad conductors who categorized passengers with a code when they punched the ticket.

The Birth of Programming
Things continued to progress with the German Z3 in 1943 that could do three to four additions per second. Then along came the IBM Automatic Sequence Controlled Calculator, which was a massive machine that was 51 feet long, weighed about five tons, and was made up of 750,000 parts. What kind of processing power did you get from this machine you may ask? It could handle numbers up to 23 digits with a plus sign and could process more than three or four add or subtracts per second, it could multiply in six seconds, divide in 15 seconds, and could do a logarithm or trig function in just over a minute, and by the by, this was all done on 24 column paper tape.

Finally in 1946, a real speed breakthrough occurred in processing with the ENIAC, which could do 5,000 simple add or subtracts per second. It could do real processing like Loops, Branches, and Subroutines and was programmed by six women moving cables and manipulating switches, and was one of the first machines to offer a debug process for a "single step" process.

The Dawn of Modern Programming
We started to get machine language that could be executed with switches and levers, but then came the dawn of SOAP. I'm not exactly talking about today's concept of SOAP (Simple Object Access Protocol), I'm talking about 1957's SOAP, and you know the one, Symbolic Optimal Assembly Program. While not as hip as today's SOAP, the 1957 version did add a lot for the programming world. Things like remembering numeric codes and addresses, large programs, and Assemblers are still used today; think about the Java JVM for example, which is written almost entirely in Assembler.

Around the same time as SOAP, a new language from IBM came onto the scene - Formula Translation or FORTRAN as it became known. This was really the first "general-purpose" language to hit the market. It was designed for numeric and scientific computing, but it could do a lot more and did. Today, Fortran 2008 (capitalization was removed in a later language specification) is the latest standard and still widely used, and it has influenced other, more modern languages used today, many that you most likely use from time to time.

A year later (1958), LISP (LISt Processing) came online and changed the way we think about data by introducing concepts of tree data structures, dynamic typing, and many others. It was originally designed to run on specialized LISP machines and has inspired another multitude of languages, for instance JavaScript.

Next came the dinosaur of languages, not because it's old, or extinct, but because it was and still is a giant when it comes to the number of people who have been exposed to it. I can only be writing about COBOL (Common Business-Oriented Language). Developed by IBM, the U.S. Government, and many others, this became the standard language used by businesses around the world. It's estimated that over a quarter of a trillion lines of COBOL are still in production today.

The Great Expanse in Software Language
The 1960s, from both general historical and a computer science point of view, were a radical time. New computer languages were being developed at a record pace. Take for example ALGOL, which spawned other languages such as B, Pascal, C, and Haskell. New thoughts like the introduction of Scripting languages like PL/1 that led to REXX and to the first DSL (Domain Specific Language) RPG for report generation were all new approaches to programming.

A culmination of things learned were put into a general programming language called BASIC (Beginner's All-purpose Symbolic Instruction Code), which ironically was way ahead of its time by releasing the compiler for free. It was also the first language to really be "snobbed" by the highly respected computer professionals around its approach to many things, with the biggest offense being the use of the GOTO statement.

Most likely the biggest addition to computer programming came in 1967 with the invention of Object-Oriented (OO) programming. OO programming was introduced with Simula, which introduced concepts of Objects, Classes, virtual methods, garbage collection, and many others. It took a very large step in helping abstract the complexities of the world into known items and simplified system decomposition. This paradigm alone is responsible for the most popular language in use today, C++. Thinking about C++, just how many other similar languages and constructs were invented or introduced?

There are many great languages that were introduced over the next couple of decades, languages that many of us use day-in and day-out. Some caught on while others faded into obscurity.  But it should be said that with the advent of development environments or IDEs, more code was written and generated and generally allowed the programmer using an environment to flourish. We are currently at a low-point for IDEs, but this too will most likely pass as new environments are introduced to remove or, at a very minimum, reduce the amount of code that needs to be written for the demanding customers of today.

Of course with the advent of Visual Basic, Delphi, C++, and Java, the world became a much easier place in which to program. Remember before Java, and way before .NET, the world was a much more diverse place in regards to programming languages. I have trade magazines from the early '90s where the discussion wasn't on Java or .NET but on the fastest compiler, the best GUIs, the best way to scale software. It was a different time.

The Land of the Mixers
Welcome to the land of mixers... what are mixers you might ask? Today we live in a world where one programming paradigm is not good enough for us to do our jobs. To be honest, there really has not been a new idea in programming since the early 1970s.

Most of the ideas were already thought of back in the 1960s. For a language to "catch" on today it has to, at a minimum, give a nod to the past or it will be labeled extreme and it needs to be somewhat familiar or it won't be understood. So languages like PHP, Ruby, Erlang, F#, and even GO really don't do anything that new or special.

I proclaim the current time, the land of mixers, because instead of coming up with something new, we now add from all different languages to create a new language. My current favorite example of a mixer language is Falcon (http://www.falconpl.org/). It states it is the following:

...an Open Source, simple, fast and powerful programming language, easy to learn and to feel comfortable with, and a scripting engine ready to empower mission-critical multithreaded applications.

Falcon provides six integrated programming paradigms: procedural, object oriented, prototype oriented, functional, tabular and message oriented. And you don't have to master all of them; you just need to pick the ingredients you prefer, and let the code to follow your inspiration.

Wow, I could not have said it better myself. Falcon is a true mixer language. There are dozens of other languages just like Falcon and many have less constraints, and Falcon has very few. On the one hand I can program any way I like, on the other I can program any way I like and that may not be good for the next person who will become responsible for my code someday. So this invariably leads to the next question...

What's Next?
Maybe a language that's different and based on Computational Theory is next, or maybe something completely off the wall is right around the corner and will change the way we develop software, change the way we think about software or maybe it will be another repackaging of the same things we do in other languages, just presented differently.

For over the past 50 years, we have been rehashing the same ideas over and over. Requirements are not shrinking and customer expectations are not withering, so whatever language you choose to complete a project, make sure you like it and it gets the job done.

Due to the size limitation of this piece, I had to leave out a lot of other languages. Some really cool ones, some really boring ones, and some I totally forgot to include. Keep an eye out as I plan on taking the presentation on the road to a conference here or there to get feedback, and most likely a recording of the full presentation in the future. I'm sure I forgot your favorite language, or I need to drop one of mine, but one thing is for sure, the history of programming is always morphing and that makes things really interesting.

More Stories By Mike Rozlog

Mike Rozlog is with Embarcadero Technologies. In this role, he is focused on ensuring the family of Delphi developer products being created by Embarcadero meets the expectations of developers around the world. Much of his time is dedicated to discussing and explaining the technical and business aspects of Embarcadero’s products and services to analysts and other audiences worldwide. Mike was formerly with CodeGear, a developer tools group that was acquired by Embarcadero in 2008. Previously, he spent more than eight years working for Borland in a number of positions, including a primary role as Chief Technical Architect. A reputed author, Mike has been published numerous times. His latest collaboration is Mastering JBuilder from John Wiley & Sons, Inc.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
JulesLt 08/16/11 09:56:00 AM EDT

Few thoughts - I've always thought knitting patterns were an early form of programming language, complete with loops - and presumably pre-dating loops, which automated them with cards.

(And unlike, say, a recipe, it's a formal abstract language)

Secondly, we now know ENIAC was predated by work done throughout WW2, in both the US and UK, that was only declassified much later. But as far as I know, Manchester claims the title for the first computer to execute a program stored in memory - which was a major advance from calculating machines to computers.

Lastly - there was a good paper published in the 80s which made an interesting observation - which was that the leap from punched card/tape to VDU based programming was huge, but each additional leap (higher-level programming languages, interactive compilers, IDEs) has seen a smaller improvement in developer productivity.

He predicted that visual programming environments would not result in a massive leap forward - or enable non-programmers to program - because they were making a mistake about what the actual difficulty with programming was.

The author pointed out that most of the improvements have been around removing accidents (mistyping, referencing methods that do not exist) and in standardised code libraries - 15 years ago we wrote C at the TCP socket level - now we generate proxy objects against a WSDL and everything below that is taken care of.

In doing so, we get closer and closer to spending our time on the actual inherent complexity of the problem we are trying to solve. That the errors become increasingly errors in business logic or architectural, not code.

Or put another way - anything that can generate code IS a form of high-level programming language (and a general purpose CASE tool may be less productive that a DSL).

@ThingsExpo Stories
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
"There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
SYS-CON Events announced today that Evatronix will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Evatronix SA offers comprehensive solutions in the design and implementation of electronic systems, in CAD / CAM deployment, and also is a designer and manufacturer of advanced 3D scanners for professional applications.
Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices to ...
An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics gr...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things’). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing? IoT is not about the devices, it’s about the data consumed and generated. The devices are tools, mechanisms, conduits. In his session at Internet of Things at Cloud Expo | DXWor...
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution. In his session at @ThingsExpo, Akvelon expert and IoT industry leader Sergey Grebnov provided an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
SYS-CON Events announced today that Synametrics Technologies will exhibit at SYS-CON's 22nd International Cloud Expo®, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Synametrics Technologies is a privately held company based in Plainsboro, New Jersey that has been providing solutions for the developer community since 1997. Based on the success of its initial product offerings such as WinSQL, Xeams, SynaMan and Syncrify, Synametrics continues to create and hone inn...