|By Mike Rozlog||
|June 27, 2011 12:15 PM EDT||
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.
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.
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.
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...
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.
|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).
SYS-CON Events has announced today that Roger Strukhoff has been named conference chair of Cloud Expo and @ThingsExpo 2016 Silicon Valley. The 19th Cloud Expo and 6th @ThingsExpo will take place on November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. "The Internet of Things brings trillions of dollars of opportunity to developers and enterprise IT, no matter how you measure it," stated Roger Strukhoff. "More importantly, it leverages the power of devices and the Interne...
Jul. 24, 2016 04:45 AM EDT Reads: 1,966
"There's a growing demand from users for things to be faster. When you think about all the transactions or interactions users will have with your product and everything that is between those transactions and interactions - what drives us at Catchpoint Systems is the idea to measure that and to analyze it," explained Leo Vasiliou, Director of Web Performance Engineering at Catchpoint Systems, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York Ci...
Jul. 24, 2016 04:45 AM EDT Reads: 1,857
The Internet of Things will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform. In his session at @ThingsExpo, Craig Sproule, CEO of Metavine, demonstrated how to move beyond today's coding paradigm and shared the must-have mindsets for removing complexity from the develo...
Jul. 24, 2016 01:30 AM EDT Reads: 1,119
SYS-CON Events announced today that MangoApps will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. MangoApps provides modern company intranets and team collaboration software, allowing workers to stay connected and productive from anywhere in the world and from any device.
Jul. 24, 2016 01:15 AM EDT Reads: 1,214
The IETF draft standard for M2M certificates is a security solution specifically designed for the demanding needs of IoT/M2M applications. In his session at @ThingsExpo, Brian Romansky, VP of Strategic Technology at TrustPoint Innovation, explained how M2M certificates can efficiently enable confidentiality, integrity, and authenticity on highly constrained devices.
Jul. 24, 2016 01:15 AM EDT Reads: 864
"We've discovered that after shows 80% if leads that people get, 80% of the conversations end up on the show floor, meaning people forget about it, people forget who they talk to, people forget that there are actual business opportunities to be had here so we try to help out and keep the conversations going," explained Jeff Mesnik, Founder and President of ContentMX, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Jul. 23, 2016 11:45 PM EDT Reads: 1,212
Internet of @ThingsExpo has announced today that Chris Matthieu has been named tech chair of Internet of @ThingsExpo 2016 Silicon Valley. The 6thInternet of @ThingsExpo will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Jul. 23, 2016 11:15 PM EDT Reads: 1,856
When people aren’t talking about VMs and containers, they’re talking about serverless architecture. Serverless is about no maintenance. It means you are not worried about low-level infrastructural and operational details. An event-driven serverless platform is a great use case for IoT. In his session at @ThingsExpo, Animesh Singh, an STSM and Lead for IBM Cloud Platform and Infrastructure, will detail how to build a distributed serverless, polyglot, microservices framework using open source tec...
Jul. 23, 2016 11:00 PM EDT Reads: 2,231
The 19th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Digital Transformation, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportuni...
Jul. 23, 2016 10:15 PM EDT Reads: 2,440
From wearable activity trackers to fantasy e-sports, data and technology are transforming the way athletes train for the game and fans engage with their teams. In his session at @ThingsExpo, will present key data findings from leading sports organizations San Francisco 49ers, Orlando Magic NBA team. By utilizing data analytics these sports orgs have recognized new revenue streams, doubled its fan base and streamlined costs at its stadiums. John Paul is the CEO and Founder of VenueNext. Prior ...
Jul. 23, 2016 09:30 PM EDT Reads: 1,949
A critical component of any IoT project is what to do with all the data being generated. This data needs to be captured, processed, structured, and stored in a way to facilitate different kinds of queries. Traditional data warehouse and analytical systems are mature technologies that can be used to handle certain kinds of queries, but they are not always well suited to many problems, particularly when there is a need for real-time insights.
Jul. 23, 2016 08:45 PM EDT Reads: 1,660
CenturyLink has announced that application server solutions from GENBAND are now available as part of CenturyLink’s Networx contracts. The General Services Administration (GSA)’s Networx program includes the largest telecommunications contract vehicles ever awarded by the federal government. CenturyLink recently secured an extension through spring 2020 of its offerings available to federal government agencies via GSA’s Networx Universal and Enterprise contracts. GENBAND’s EXPERiUS™ Application...
Jul. 23, 2016 08:30 PM EDT Reads: 1,779
"My role is working with customers, helping them go through this digital transformation. I spend a lot of time talking to banks, big industries, manufacturers working through how they are integrating and transforming their IT platforms and moving them forward," explained William Morrish, General Manager Product Sales at Interoute, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Jul. 23, 2016 08:30 PM EDT Reads: 2,028
Internet of @ThingsExpo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with the 19th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world and ThingsExpo Silicon Valley Call for Papers is now open.
Jul. 23, 2016 08:00 PM EDT Reads: 2,418
Big Data engines are powering a lot of service businesses right now. Data is collected from users from wearable technologies, web behaviors, purchase behavior as well as several arbitrary data points we’d never think of. The demand for faster and bigger engines to crunch and serve up the data to services is growing exponentially. You see a LOT of correlation between “Cloud” and “Big Data” but on Big Data and “Hybrid,” where hybrid hosting is the sanest approach to the Big Data Infrastructure pro...
Jul. 23, 2016 08:00 PM EDT Reads: 1,800
The IoT is changing the way enterprises conduct business. In his session at @ThingsExpo, Eric Hoffman, Vice President at EastBanc Technologies, discussed how businesses can gain an edge over competitors by empowering consumers to take control through IoT. He cited examples such as a Washington, D.C.-based sports club that leveraged IoT and the cloud to develop a comprehensive booking system. He also highlighted how IoT can revitalize and restore outdated business models, making them profitable ...
Jul. 23, 2016 07:15 PM EDT Reads: 1,875
We all know the latest numbers: Gartner, Inc. forecasts that 6.4 billion connected things will be in use worldwide in 2016, up 30 percent from last year, and will reach 20.8 billion by 2020. We're rapidly approaching a data production of 40 zettabytes a day – more than we can every physically store, and exabytes and yottabytes are just around the corner. For many that’s a good sign, as data has been proven to equal money – IF it’s ingested, integrated, and analyzed fast enough. Without real-ti...
Jul. 23, 2016 07:00 PM EDT Reads: 884
I wanted to gather all of my Internet of Things (IOT) blogs into a single blog (that I could later use with my University of San Francisco (USF) Big Data “MBA” course). However as I started to pull these blogs together, I realized that my IOT discussion lacked a vision; it lacked an end point towards which an organization could drive their IOT envisioning, proof of value, app dev, data engineering and data science efforts. And I think that the IOT end point is really quite simple…
Jul. 23, 2016 06:15 PM EDT Reads: 824
With 15% of enterprises adopting a hybrid IT strategy, you need to set a plan to integrate hybrid cloud throughout your infrastructure. In his session at 18th Cloud Expo, Steven Dreher, Director of Solutions Architecture at Green House Data, discussed how to plan for shifting resource requirements, overcome challenges, and implement hybrid IT alongside your existing data center assets. Highlights included anticipating workload, cost and resource calculations, integrating services on both sides...
Jul. 23, 2016 06:00 PM EDT Reads: 1,897
"We are a well-established player in the application life cycle management market and we also have a very strong version control product," stated Flint Brenton, CEO of CollabNet,, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Jul. 23, 2016 05:30 PM EDT Reads: 1,728