From what is arguably the first computer, designed by John von Neumann, to the hip languages like Golang, Swift and Hack today, programming has evolved in interesting ways. The infographic in this article shows a brief history of programming, from the 1950s to the 2020s:

The first computer that was capable of being programmed, meaning its operation could be changed by changing the program it ran, was invented by John von Neumann. The architecture that von Neumann invented is still used in computers today.
This led to the first programming languages being invented, to make it easier to tell the computer what exactly to do. FORTRAN was the first of its kind in 1957. Many languages followed and in 1959 COBOL was released, the first programming language specifically aimed at business use. COBOL is still found in many systems that are used today, though these systems are subject to being replaced by more modern substitutes, due to availability of hardware and specialists able to write COBOL.
In 1968 Pascal was invented, which introduced the concept of dynamic variables to computer programming. This was truly revolutionary, and made programming easier and more effective.
One of the biggest breakthroughs came in 1972, with the release of the C programming language. It was both extremely powerful for the programmer, as well as very fast in terms of execution. The downside was that its syntax was harder to read than Pascal, but for serious applications C was the way to go for decades after that.
An extension on the C programming language came in 1983, by Bjarne Stroustroup, which created C++. It introduced Object Oriented Programming (OOP), which added a level of abstraction that made it simpler to model real-world problems in code.
Microsoft released Visual Basic in 1991, the first ever visual programming language intended for business users. It made it easier for people to write software without the deep technical understanding that was needed for C and C++ by being more forgiving and handling many intricate aspects under the hood automatically.
In 1994 Sun Microsystems released Java, aiming to have a programming language that was truly cross-platform. That meant that you could write a software program once, and run it on any operating system, whether that was Windows, Linux, MacOS or any other.
Model Driven Development (MDD) was introduced in 2006 by Thomas Stahl and Markus Voelter. It focused on making domain models, which could be used by people with specific domain knowledge to program a computer in a simpler way. One of the most well-known examples is Unified Modeling Language that can be used to describe what the program should do, which can then be (largely) converted into working software.
When the iPhone was released in 2007, it started an era of many new development initiatives. First, mobile apps became the new big thing to develop. Second, Steve Jobs’ unwillingness to support the then-popular Flash on the iPhone meant that web-development took off as an alternative from 2011. HTML5 was finally popularized and the era of JavaScript development, which had been around for over a decade, began.
In 2014, a new way of developing software gained popularity, with the release and subsequent popularity of no-code and low-code platforms. In this category, Triggre was released in 2014, as a truly no-code platform for business applications and portals. With these platforms it became easier to develop applications that include complex logic, integrations with other systems, with a web front-end. Users needed less experience (low-code platforms) to no experience (no-code platforms) with programming for the first time in history.
The latest revolution came in 2025, when Claude Code was released and quickly gained popularity in the winter of 2026, ushering in the current era of agentic programming. This revolution changes the way developers spend their time, shifting more toward decision making on architectural and design challenges, rather than coding.
However, even though there are platforms that allow completely non-technical people to use these tools to build entire applications, software engineering skills are required to make the correct decisions related to architecture, security and other traditional software development issues.
One of the most interesting developments, in my opinion, is the audience capable of working with a programming language. The first computers had to be programmed completely by hand, entering the zeroes and ones by means of punch cards. This meant that a high degree of knowledge was needed and only highly educated mathematicians could program computers.
With the introduction of programming languages, the process was simplified. Programmers could now simply type their program, after which another program called a compiler would translate it into the zeroes and ones that the computer needs. This revolution meant that not only mathematicians could program, more people were now able to learn the conceptual ideas behind a programming language.
When computers became more popular in the 1980s, so did programming. With the C programming language, computers could be programmed in new ways. Operating systems such as Unix and Windows were becoming more powerful and allowed people that couldn’t program themselves to use computers too.
Today almost everyone can use a computer, even toddlers. And the same shift in the target audience of programming continues, with ever simpler and more powerful languages and platforms allowing more people to program a computer.
I believe that what the world needs is to make it easier to tell a computer what to do. In fact, making more people able to make software, is one of the biggest productivity improvements possible. We can achieve this not by teaching more people the intricate knowledge required to write programming language, but rather by making the process of telling the computer what to do easier and easier.
These days we see an interesting situation where there are tools that agentically write code, and tools that allow building applications completely without any code. In my opinion, at least for now, agentic programming is great for non-developers who want to make relatively simple tools and apps. For more complex software, where security, stability and architecture are paramount, agentic programming makes software engineers more effective and efficient – if used correctly.
No-code, and to a certain extent also low-code, platforms are very good tools for non-developers that are looking for lower Total Cost of Ownership (TCO) of more complex software applications. Examples include distributor, customer and supplier portals which expose core business processes to different stakeholders, allowing them to easily work together in the same business process.