Loading
All articles
JavaScript 7 min read

A Brief History of Computer Programming: From Wires to Apps

From Ada Lovelace’s 1843 notes to today’s apps and AI coding assistants, see how programming changed—and what a program really is—in plain language.

nbkhope
On this page

Every app, website, game, and smart device follows instructions written by people. That work is called computer programming. It may look recent, but its roots reach back almost two centuries—to a time before electronic computers existed.

This is a simple tour of how programming changed: from planning steps for a machine that was never built, to connecting cables on room-sized computers, to writing code that runs on phones and across the internet.

What does programming mean?

A program is a set of instructions that tells a computer what to do. Programming is the work of designing, writing, and improving those instructions.

A programming language is a precise way to write instructions. It is designed for people to read and for computer tools to translate or carry out. It is not ordinary English, Portuguese, or another spoken language: small changes in punctuation or order can change what the computer does.

1843: Ada Lovelace imagines instructions for a machine

In 1843, mathematician Ada Lovelace published notes about Charles Babbage’s proposed Analytical Engine, a general-purpose mechanical computer that was never completed. One note described steps for calculating Bernoulli numbers, values used in mathematics.

Lovelace is often called the first computer programmer. That label is a useful shorthand, but the full story is more careful: the machine did not exist to run her instructions, and “first” depends on what we count as a program. Her notes still showed something new: a programmable machine could, in principle, work with more than numbers.

A model of Babbage’s proposed Analytical Engine, the machine Ada Lovelace wrote instructions for

This is a later model of the proposed Analytical Engine, not Babbage’s unfinished original. Photo by Mirko Tobias Schäfer, CC BY-SA 2.0; source.

The 1940s: programming meant setting up the machine

Early electronic computers did not work like a laptop with an app store. To give the ENIAC a new job, its operators changed switches and connected cables between the machine’s units. Planning and checking those connections was programming, even though it did not look like typing code on a screen.

The ENIAC’s programmers included six women: Jean Jennings Bartik, Betty Holberton, Kathleen Antonelli, Marlyn Meltzer, Frances Spence, and Ruth Teitelbaum. They learned how the machine worked and helped make it useful. For years, their contributions received far less public attention than the machine’s designers.

Jean Jennings Bartik and Frances Spence setting up ENIAC with its switches and control panels in 1946

U.S. Army photo, public domain. Image source and details.

1948: instructions begin to live in computer memory

A major shift came when a computer could store a program in its memory, then follow the instructions one after another. On June 21, 1948, the Manchester “Baby” ran a short program stored in electronic memory. Instead of rewiring the whole machine for each calculation, people could change the instructions it read.

A replica of the Manchester Baby, the computer that ran a program stored in electronic memory in 1948

This is a later replica on display in Manchester. Photo by KGGucwa, CC BY-SA 3.0; source.

The 1950s: translators and languages make programming easier

In 1952, Grace Hopper’s team completed A-0, an early system often described as a compiler. A compiler translates a program written in a more human-friendly language into instructions a computer can run. Programmers could now reuse named operations instead of manually entering every low-level step.

Two influential languages soon made programming useful to more people:

  • FORTRAN, commercially released in 1957, helped scientists and engineers express mathematical formulas for computers.
  • COBOL, developed by a group in 1959, was designed for business records and reports. Its words were intended to be more readable, though it was still a formal language with strict rules.

These languages did not make computers understand ordinary conversation. They gave people a clearer way to describe tasks, while translation tools handled much of the machine-specific detail.

Grace Hopper at a UNIVAC keyboard with colleagues from the Automatic Programming Department in 1957

Photographer unknown; CC BY 2.0. Image source and details.

The 1960s and 1970s: computers spread, and languages branch out

BASIC appeared in 1964 with beginners and students in mind. At Dartmouth College, a time-sharing system let several people use a computer through terminals—an important step toward making computing less exclusive.

In 1972, the C language helped developers rewrite the Unix operating system so it could be adapted to different computers. That portability mattered: software no longer had to be rebuilt entirely from scratch for every machine.

As computers became smaller and less expensive, they began to appear in schools, workplaces, and homes. People could learn programming on personal computers, while professionals built larger systems with languages suited to different jobs.

A Commodore 64 personal computer, an example of the home computers people could program

Photo by Luca Boldrini, CC BY 2.0; source.

The 1990s and the web: software reaches more people

A screenshot of the NCSA Mosaic web browser, which displayed images alongside text

NCSA Mosaic for X, version 1.2. Screenshot by Charles Severance, CC0; source and details.

Python was first released in 1991. Its emphasis on readable code helped it become useful in education, automation, science, and many other areas.

JavaScript arrived in web browsers in 1995 and made it possible for websites to respond to what people clicked or typed. The web created new programs that could be shared with people almost anywhere, without mailing them a disk.

Since then, programming has expanded into phones, games, online services, scientific research, and connected devices. Open-source projects also let people around the world contribute to shared software.

Today: more tools, same basic idea

Modern programmers have editors that highlight mistakes, libraries with ready-made building blocks, and online services that help teams work together. AI assistants can suggest or explain code, too. These tools can save time, but people still decide what to build, check whether the code works, and fix mistakes.

The tools have changed dramatically. The central task is familiar: understand a need, describe clear steps, and see whether the computer’s result is useful.

How does code turn into something a computer can do?

A person writes instructions in a programming language. A compiler or interpreter translates or carries them out in a form the computer can execute. The computer follows those instructions to produce a result—such as showing a page, saving a file, or controlling a device.

A simple path from an idea to a result: a person writes instructions in a programming language, a compiler or interpreter prepares them for the computer, the computer follows the instructions, and an output appears

Think of a recipe: a cook can follow clear steps without knowing how the oven was built. Programming languages give people a practical way to describe the steps; the computer’s hardware carries them out.

A short timeline

A timeline of computer programming: 1843 Ada Lovelace describes a calculation for Babbage’s proposed Analytical Engine; the 1940s ENIAC programmers set switches and cables; 1948 the Manchester Baby runs a program in memory; 1952 Grace Hopper’s A-0 compiler; 1957 FORTRAN; 1959 COBOL; 1964 BASIC; 1972 C; 1991 Python; 1995 JavaScript reaches web browsers; today programming spans apps, the web, cloud services, open-source teams, and AI assistants

From wires to readable code

Programming did not change in one straight line, and older approaches did not all disappear. But over time, tools let programmers express their goals with less attention to a machine’s exact switches and wiring.

A conceptual progression in programming: people first set wires and switches, then wrote machine-level instructions, then used higher-level languages, and later built with shared libraries, online teams, and AI coding suggestions; older approaches still have uses

Why this history matters

Programming is not simply typing mysterious symbols. It is a way for people to turn an idea into instructions precise enough for a computer to follow. Each generation created tools that made that work more capable or accessible—and each depended on people who tested, maintained, and improved what came before.

For another part of computing’s story, read A Brief History of Artificial Intelligence.

Sources and further reading

Thanks for reading!

Know someone who would enjoy this? Send it their way.

More articles

Read next

5 min read

Getting Started with GraphQL and Express

You can employ GraphQL in your Express server using a middleware. If you get a request that goes to the endpoint POST /graphql, it will pass through the GraphQL Express middleware and handle the…

nbkhope
3 min read

JavaScript: Stop Using var with ES6

With the advent of ES6, two new keywords for the definition of variables have come forth: const and let. Now, whenever you need to define a variable, don't use var -- start off with const. Once you…

nbkhope

Comments

Be kind and specific. Comments with links from new accounts appear after a moderator reviews them.