Welcome!

Java IoT Authors: Jason Bloomberg, Liz McMillan, Stackify Blog, Pat Romanski, Elizabeth White

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
The question before companies today is not whether to become intelligent, it’s a question of how and how fast. The key is to adopt and deploy an intelligent application strategy while simultaneously preparing to scale that intelligence. In her session at 21st Cloud Expo, Sangeeta Chakraborty, Chief Customer Officer at Ayasdi, will provide a tactical framework to become a truly intelligent enterprise, including how to identify the right applications for AI, how to build a Center of Excellence to ...
SYS-CON Events announced today that Massive Networks 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. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of 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. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for 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.
Because IoT devices are deployed in mission-critical environments more than ever before, it’s increasingly imperative they be truly smart. IoT sensors simply stockpiling data isn’t useful. IoT must be artificially and naturally intelligent in order to provide more value In his session at @ThingsExpo, John Crupi, Vice President and Engineering System Architect at Greenwave Systems, will discuss how IoT artificial intelligence (AI) can be carried out via edge analytics and machine learning techn...
In his session at @ThingsExpo, Arvind Radhakrishnen discussed how IoT offers new business models in banking and financial services organizations with the capability to revolutionize products, payments, channels, business processes and asset management built on strong architectural foundation. The following topics were covered: How IoT stands to impact various business parameters including customer experience, cost and risk management within BFS organizations.
SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
From 2013, NTT Communications has been providing cPaaS service, SkyWay. Its customer’s expectations for leveraging WebRTC technology are not only typical real-time communication use cases such as Web conference, remote education, but also IoT use cases such as remote camera monitoring, smart-glass, and robotic. Because of this, NTT Communications has numerous IoT business use-cases that its customers are developing on top of PaaS. WebRTC will lead IoT businesses to be more innovative and address...
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
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, will introduce 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...
SYS-CON Events announced today that Calligo has been named “Bronze Sponsor” of 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. Calligo is an innovative cloud service provider offering mid-sized companies the highest levels of data privacy. Calligo offers unparalleled application performance guarantees, commercial flexibility and a personalized support service from its globally located cloud platform...
SYS-CON Events announced today that Elastifile 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. Elastifile Cloud File System (ECFS) is software-defined data infrastructure designed for seamless and efficient management of dynamic workloads across heterogeneous environments. Elastifile provides the architecture needed to optimize your hybrid cloud environment, by facilitating efficient...
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of 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. Launched in 2016, Cloudistics helps anyone bring the power of the cloud to the data center in an easy-to-use, on- premises cloud platform that automatically provides high performance resources for all types of applications: Docke...
SYS-CON Events announced today that Golden Gate University 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. Since 1901, non-profit Golden Gate University (GGU) has been helping adults achieve their professional goals by providing high quality, practice-based undergraduate and graduate educational programs in law, taxation, business and related professions. Many of its courses are taug...
SYS-CON Events announced today that Golden Gate University 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. Since 1901, non-profit Golden Gate University (GGU) has been helping adults achieve their professional goals by providing high quality, practice-based undergraduate and graduate educational programs in law, taxation, business and related professions. Many of its courses are taug...
SYS-CON Events announced today that Secure Channels, a cybersecurity firm, 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. Secure Channels, Inc. offers several products and solutions to its many clients, helping them protect critical data from being compromised and access to computer networks from the unauthorized. The company develops comprehensive data encryption security strategie...
Recently, WebRTC has a lot of eyes from market. The use cases of WebRTC are expanding - video chat, online education, online health care etc. Not only for human-to-human communication, but also IoT use cases such as machine to human use cases can be seen recently. One of the typical use-case is remote camera monitoring. With WebRTC, people can have interoperability and flexibility for deploying monitoring service. However, the benefit of WebRTC for IoT is not only its convenience and interopera...
SYS-CON Events announced today that SkyScale 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. SkyScale is a world-class provider of cloud-based, ultra-fast multi-GPU hardware platforms for lease to customers desiring the fastest performance available as a service anywhere in the world. SkyScale builds, configures, and manages dedicated systems strategically located in maximum-security...
SYS-CON Events announced today that Datera 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. Datera offers a radically new approach to data management, where innovative software makes data infrastructure invisible, elastic and able to perform at the highest level. It eliminates hardware lock-in and gives IT organizations the choice to source x86 server nodes, with business model option...