Welcome!

@DXWorldExpo Authors: Liz McMillan, Elizabeth White, Zakia Bouachraoui, Maria C. Horton, Kevin Benedict

Related Topics: @DXWorldExpo, Java IoT, Linux Containers, @DevOpsSummit

@DXWorldExpo: Article

A Short History of Programming | @DevOpsSummit #Java #AI #ML #DevOps

It can be hard to grasp what’s happening in the world of programming today without a solid grounding in how we got here

Code Compiled: A Short History of Programming - Part I
By Omed Habib

There are more than 2,500 documented programming languages with customizations, dialects, branches, and forks that expand that number by an order of magnitude. In comparison, the Ethnologue: Languages of the World research officially recognizes 7,097 official language groups that humans use to communicate with each other all around the world.

It can be hard to grasp what’s happening in the world of programming today without a solid grounding in how we got here. There are endless fascinating rabbit holes to disappear down when you look back over the past 173 years of programming. This abstract can only give you a high-level review with a strong encouragement to follow any thread that engages you.

The Prehistory of Programming
Ada Lovelace, daughter of the poet Lord Byron, is generally recognized as the world’s first programmer, though she never wrote a single line of code as we understand it today. What she did in 1843 was very carefully describe a step by step process of how to use Charles Babbage’s theoretical Analytical Engine to generate Bernoulli’s numbers. Her idea was to take a device for calculating large numbers and use it to generate new concepts.

Take a moment to consider how monumental that was. Bernoulli’s numbers are essential for analytics, number theory, and differential topology — all fields of knowledge that most people in the world couldn’t even comprehend during the Victorian era. Babbage was never able to build his Analytical Engine, so she had to do all of this in her head. Nevertheless, her schematic for machine language became the default framework for programming when technology caught up to her one hundred years later.

ENIAC: The Digital Analytical Engine
After the Great War, before it was known as World War I, the U.S. military realized that their bullets and bombs had not been accurate enough. Inefficient ballistics had been a colossal waste of resources, and another war was imminent. Generals agreed they needed a faster way to crunch vast numbers and get them to artillery gunners in the field.

As World War II began, six women known as “computers” sat in a room at Army HQ with artillery charts and numeric calculating machines to compute ideal trajectories. They were the world’s first programming team. The need for faster computing spurred the U.S. Army to fund the creation of the Electronic Numerical Integrator and Computer (ENIAC), developed from Babbage’s original design. Instead of using mechanical cogs like Babbage’s device, ENIAC performed calculations by holding up to ten digits in memory, making it the earliest case of digital transformation. Ironically, ENIAC wasn’t fully operational until the fall of 1945, just in time to see the end of World War II.

The biggest problem with ENIAC was that this team of human computers had to reset the machine’s switches after each program they prepared. That failing was addressed by John von Neumann’s proposal of an Electronic Discrete Variable Computer (EDVAC). Starting with the construction of EDVAC in 1949, programming languages began to proliferate.

From The Garden of Languages to the Apple
For the next three decades, electronic computers were monstrous machines. UNIVAC, the first commercially available computer, was the size of a room and ran on giant vacuum tubes. Programmers wrote commands using machine code and assembly language, which was then translated into punch cards, as in Babbage’s original design, or paper tape. The first higher level language was COBOL, created by Grace Hopper in 1953. COBOL and its associated Assembler is still used today in traditional industries like banking and insurance. This was soon followed up by IBM’s creation of FORTRAN, which included its own compiler. The programming training publisher O’Reilly has created a language timeline showing how fifty of the most popular languages that have grown from there.

The next big shockwave, still being felt today, was the introduction of personal computers in the late 1970s. The first wave of personal computers was characterized by a hobbyist/DIY aesthetic, like the Tandy TRS-80 and the Commodore 64 (remarkably still in operation today). These ran simple programs using the language BASIC. During this period, language wars really began to heat up as a rise in amateur programmers developed their own logic systems. Some of the top languages developed during this time included Pascal, Scheme, Perl, and ADA (named for Lovelace).

Perhaps the most influential development at this time was a variation on C called C With Classes, by Bjarne Stroustrup. This would grow into C++ and anchor a growing catalog of object-oriented (OO) languages. The 1980s brought the rapid growth of two hardware groups that dominated the personal computer industry and virtually locked down the operating system (OS) market for many years: IBM and Apple.

Programming for Mac vs. PC
Apple made computing visual with the introduction of the Macintosh in 1984, and IBM PC’s association with Microsoft Windows soon followed suit. The Mac introduced the mouse, the on-screen desktop, and icons for programs. The average user no longer associated computing with typing text into a command line on a black screen with a blinking cursor. This changed programming in two fundamental ways.

First, it led to the introduction of visual programming languages (VPLs) like Visual C and Visual J, where developers can manipulate coding elements spatially. Second, it opened up developers to considerations of the graphical user interface (GUI). In many ways, this was the beginning of the DevOps split between concern for the user experience vs. operational efficiency.

Although programming languages themselves were normally OS agnostic, the Mac vs. PC camps tended to support different types of software development. In the 1990s, the PC favored software for business, developed from languages like C++, Visual Basic, and R. Apple was better known as a home for graphics and communications software using new languages like Ruby, Python, and AppleScript. In the mid-1990s, the explosive popularity of the World Wide Web and gaming systems changed everything.

Gaming and The Web
The web moved HTML, Java, JavaScript, and PHP to the top of every developer’s list. Cold Fusion, Game Maker, and UnrealScript are a few of the languages built expressly for gaming. More recently, game developers often rely on rich ecosystems like JavaScript, C++, Cool (later renamed as C#), Ruby, and Python. These have been the workhorses for both web applications and game development. High-end graphics often call for supplemental support by specialized languages like OpenGL or DirectX.

Languages in Demand Now
Here’s an outline of the languages most in demand in 2016, according to the TIOBE index and Redmonk:

TIOBE (September 2016)
These TIOBE rankings are based on a concatenation of the total number of developers employed to use specific languages, instruction courses offered, and third-party consultants. This data is compared to results across all major search engines and hits on language pages within Amazon, Baidu, Wikipedia, and YouTube. The goal is to identify on a monthly basis where the greatest number of lines of code are being compiled.

  1. Java
  2. C
  3. C++
  4. C#
  5. Python
  6. JavaScript
  7. PHP
  8. Assembly language
  9. Visual Basic .NET
  10. Perl

Redmonk’s Top 10 (Mid-year 2016)
Redmonk’s methodology is to compare the popularity and performance of specific languages against each other on GitHub and Stack Overflow. The amount of discussion on Stack Overflow and number of working uploads to GitHub is an indication of where development and software defined processes are trending.

  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. C#
  6. C++5
  7. Ruby (tie)
  8. CSS
  9. C
  10. Objective-C

It’s easy to see why many developers say that Java and C run the world. A foundation in these two languages and related branches will prepare you for the widest range of coding work. Of all the languages on these two lists, the one the stands out immediately is Assembly. This is an indication that the IoT has arrived and the need is intensifying for engineers who can code for short processing devices.

The Next Wave
Looking to the future, programming for enterprise business or individual apps both offer substantial financial possibilities. The Bureau of Labor Statistics (BLS) estimates the median pay for programmers to be approximately $79,530 annually. They are projecting an 8% decline in jobs through 2024 due to growing competition from lower-priced coders all over the world. However, the BLS also shows that software developers have a median income of $100, 690 annually with a 17% growth spike, much faster than other industries.

The difference is that low-level programming will be increasingly outsourced and automated in the years ahead. On the other hand, there is already a shortage of people who know how to do the higher-level thinking of engineers and DevOps professionals.

In fact, there are many developers who are now at work trying to converge programming languages with natural spoken languages. That’s the goal of the Attempto Controlled English experiment at the University of Zurich. The hope is to open up the power of programming to as many people as possible before the IoT surrounds us with machines we don’t know how to control. We may all be programmers in the future, but DevOps skills will be critical to keep the business world running.

Learn More
Stay tuned for ‘Code Compiled: A Short History of Programming – Part II.’

The post Code Compiled: A Short History of Programming – Part I appeared first on Application Performance Monitoring Blog | AppDynamics.

More Stories By AppDynamics Blog

In high-production environments where release cycles are measured in hours or minutes — not days or weeks — there's little room for mistakes and no room for confusion. Everyone has to understand what's happening, in real time, and have the means to do whatever is necessary to keep applications up and running optimally.

DevOps is a high-stakes world, but done well, it delivers the agility and performance to significantly impact business competitiveness.

DXWorldEXPO Digital Transformation Stories
"We were founded in 2003 and the way we were founded was about good backup and good disaster recovery for our clients, and for the last 20 years we've been pretty consistent with that," noted Marc Malafronte, Territory Manager at StorageCraft, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
While the focus and objectives of IoT initiatives are many and diverse, they all share a few common attributes, and one of those is the network. Commonly, that network includes the Internet, over which there isn't any real control for performance and availability. Or is there? The current state of the art for Big Data analytics, as applied to network telemetry, offers new opportunities for improving and assuring operational integrity. In his session at @ThingsExpo, Jim Frey, Vice President of S...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settl...
@CloudEXPO and @ExpoDX, two of the most influential technology events in the world, have hosted hundreds of sponsors and exhibitors since our launch 10 years ago. @CloudEXPO and @ExpoDX New York and Silicon Valley provide a full year of face-to-face marketing opportunities for your company. Each sponsorship and exhibit package comes with pre and post-show marketing programs. By sponsoring and exhibiting in New York and Silicon Valley, you reach a full complement of decision makers and buyers in ...
"Cloud computing is certainly changing how people consume storage, how they use it, and what they use it for. It's also making people rethink how they architect their environment," stated Brad Winett, Senior Technologist for DDN Storage, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound e...
Rodrigo Coutinho is part of OutSystems' founders' team and currently the Head of Product Design. He provides a cross-functional role where he supports Product Management in defining the positioning and direction of the Agile Platform, while at the same time promoting model-based development and new techniques to deliver applications in the cloud.
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
LogRocket helps product teams develop better experiences for users by recording videos of user sessions with logs and network data. It identifies UX problems and reveals the root cause of every bug. LogRocket presents impactful errors on a website, and how to reproduce it. With LogRocket, users can replay problems.
Data Theorem is a leading provider of modern application security. Its core mission is to analyze and secure any modern application anytime, anywhere. The Data Theorem Analyzer Engine continuously scans APIs and mobile applications in search of security flaws and data privacy gaps. Data Theorem products help organizations build safer applications that maximize data security and brand protection. The company has detected more than 300 million application eavesdropping incidents and currently secu...