[♪ INTRO]
It’s taken the work of many insightful and ingenious computer programmers to take
computing from a pie-in-the-sky idea…
to something many of us carry in our pockets every day.
And while some programmers have become famous for their contributions,
many others have been mostly lost to history.
Without further ado, here are five amazing computer programmers
you might not have heard of that changed the face of tech as we know it.
Okay, okay… so the first person on our list is technically a group.
Each of the members made significant contributions to programming on their own,
but together these pioneers revolutionized computing technology.
They were responsible for programming the very first general-purpose electronic
computer, called the Electronic Numerical Integrator and Computer…
or ENIAC for short.
ENIAC was designed to calculate ballistic trajectories during
World War II so that artillery could hit their targets.
But what made ENIAC different from other computers that came before
was that it was fully electronic and programmable.
That meant ENIAC was not only faster and more powerful,
but it could also be “reprogrammed” to do new calculations.
Frances (Betty) Holberton, Marlyn Wescoff Meltzer,
Kathleen McNulty Mauchly Antonelli, Ruth Lichterman Teitelbaum,
Frances Bilas Spence, and Jean Jennings Bartik
were the human computers selected to program ENIAC.
And while being a human-computer sounds super futuristic and high tech,
the job of human computers was to calculate math by hand, like analytic geometry,
differential equations, and calculus, for the engineers running the project.
Because they were such amazing computers,
these six mathematicians were hand-picked to become ENIAC’s programmers…
which meant they had to program the computer for each new set of calculations.
But ENIAC was the first of its kind…
which meant it didn’t come with a programming manual.
And ENIAC was also massive.
It weighed 30 tons, and it was made up of nearly 18,000 vacuum tubes and more
than 70,000 resistors, 10,000 capacitors, 6,000 switches, and 1,500 relays.
It’s not super surprising, then, that it would take days and
sometimes even weeks for the team to set up a program!
To run a single program, the ENIAC programmers had to connect thousands of
wires into plugboards to perform calculations in precisely the correct order.
Most of these programs used techniques we recognize today, like conditional
branching with if/else statements: where the computer runs different parts of a
program depending on the solutions it generates in other parts.
It also used loops, which are sections of code that run on repeat until a
predetermined condition is reached.
While these days you can just write a set of instructions for the computer to
execute, programming ENIAC involved a lot of advanced math, navigating a whole
mess of cables and wires, and setting thousands of switches by hand!
Once programmed, ENIAC could perform 5,000 additions and 300 multiplications
per second, which was up to 1000 times faster than the mechanical computers or
calculators that existed at the time.
The work that the “ENIAC Six” did set the foundation for modern computing, and it
proved that high-speed digital computing could be done.
The “ENIAC Six also indirectly paved the way for Dr. Kathleen Britten Booth, who is
widely credited with writing the first computer assembly language.
Booth earned a Ph.D. in Applied Mathematics from the University of London in
1950 and went on to become a professor of mathematics.
She was working at a time when computers weren’t
capable of storing programs internally.
Like the ENIAC programmers, Booth was all too familiar with the tedious process
of moving a bunch of cables and switches around to make a program run properly.
Working with clunky hardware motivated Booth to develop software,
which was a new concept at the time.
With the goal of making programming much easier, Booth wrote one of the first
assembly languages for the Automatic Relay Computer, or ARC,
for Birkbeck University of London in 1947.
Booth’s ARC assembly language let programmers write instructions that an
assembler would translate line by line into machine code, the sequences of binary
digits, ones and zeroes that the computer can understand.
While her original version more closely resembled mathematics, later versions of
assembly language introduced a mnemonic format of symbols and abbreviations.
So, Assembly languages are one step above machine language, designed to be
readable by humans and correspond directly to machine code.
Her assembly language made programming more efficient and laid the groundwork
for high-level programming languages.
which made it possible to create modern
operating systems like Windows or Linux.
But Booth didn’t stop with the ARC.
Over the course of just six years, Britten Booth and her partner Andrew Booth
produced three functioning computers,
including ARC with Britten Booth writing all of the software.
Booth was an excellent programmer,
but she also used computer science to solve other challenges in the world.
For instance, she and her partner created a program that produced a natural
language translation, analyzing and breaking down text into fundamental
components and building dictionaries on a computer.
This is considered a crucial stepping stone to machine translation, which explores
different ways of using software to translate text from one human language to
another, like from French to English.
In other words, it was kind of a precursor to the translation software we have today!
In fact, natural language processing became one of Booth’s lifelong interests,
along with artificial intelligence.
While Booth led the way on major computing breakthroughs during her career, her
love for programming and technology was a constant throughout her life.
Booth never stopped learning and applying her knowledge to make computer
science more useful for everyday people.
And that more accessible technology is exactly what Mary Allen Wilkes, the next
programmer on our list, would use to create the software for the world’s first
interactive personal computer.
Wilkes was working in MIT’s Lincoln Laboratory in the early 1960s when she was
tapped to create the software for the Laboratory Instrument Computer, or LINC for short.
Before LINC, computers were big, expensive machines that
used punch cards to run programs.
And there was no such thing as a free computer lab at the time, either.
An hour of computing time cost about $100 in 1960… or about $900 today.
LINC, on the other hand, was intended to be a smaller computer that would allow
the user to type in a program on a keyboard…
then get near-instant feedback on a monitor.
That made LINC the world’s first interactive personal computer, and it was
Mary Allen Wilkes’ job to write the software that would make it easier to use.
So for instance, Wilkes’ software, named the LAP6,
was written for users, not computer professionals.
It included a text editor, a filing system, and a code assembler.
Users could create their own program or load a program from memory, which
meant the LAP6 software served as both an assembler and an operating system,
a program designed to run all the other programs and functions of the computer.
Wilkes’ interactive operating system was one of the first of its kind,
and it would set the stage for the modern operating systems that power everything from
our laptops to our phones today.
Dr. Grace Brewster Murray Hopper was also a computer scientist
who developed cutting-edge software.
Hopper used her Ph.D. in math to create software for the U.S. Navy
that made coding accessible to people who weren’t experts in mathematics.
And one of her biggest achievements was creating one of the first working
compilers, called the A-0, translating a high-level programming language like
FORTRAN, which used mathematical symbols, into machine code.
Hopper and her team then went on to create FLOW-MATIC the first programming
language that could give instructions to a computer using English-like statements.
Which is similar to the way modern high-level programming languages work.
Having the ability to program a computer using English commands was a big deal.
It made programming more efficient and less error-prone and paved the way for
the software that’s compatible with many types of hardware.
But Hopper also had personal reasons for creating the FLOW-MATIC.
The military officials and businessmen she worked with didn’t have the bandwidth
to learn all the complex rules of binary code…
even though Hopper did try to teach them.
Her FLOW-MATIC was the first language to give non-computer scientists a chance,
to learn how to program computers too.
In fact, Hopper’s work in the private sector led to the development of the
programming language COBOL,
which stands for COmmon-Business-Oriented Language.
COBOL was loosely based on Hopper’s FLOW-MATIC and was overseen by a
consortium of industry and U.S. government members to create a
vendor-neutral interoperable programming language.
COBOL was so useful that it became widely used by corporations and government
services in the 1960s and is still in use today.
Hopper’s success writing FLOW-MATIC earned her the first-ever
Computer Science Man of the Year award from the
Data Processing Management Association.
Do I even need to say anything?
The final programmer on our list sort of became a programmer by accident.
Frances Allen was trained as a math teacher,
but got a job at IBM in the 1950s to pay off her student loans more quickly.
She planned to return to teaching once her debts were paid,
but ended up enjoying programming so much she didn’t want to quit.
So instead of teaching high school algebra, Allen spent her career
teaching programmers to use cutting-edge software she created.
And the software was pretty cool.
Allen developed optimizing compilers, which transform code to make the
underlying hardware run more efficiently without
changing the meaning of the program.
Program optimization is designed to modify code in a way that improves its
performance and efficiency while consuming fewer resources, like memory and power.
Allen developed a powerful set of compilers for the
IBM Stretch-HARVEST supercomputer,
which ran 25 times faster than the average 1960s computer.
Allen’s work on the Stretch-HARVEST produced a machine and
language-independent compiler that created a new framework and powerful set of
algorithms for analyzing and optimizing programs.
This was a big deal because it meant using a single compiler to analyze multiple
programming language inputs, instead of having a specific compiler
designed for each language.
It could also output to multiple machines.
In this case, one compiler for three input languages that
output to both Stretch and Harvest.
As a result of her work, Allen was the first woman to become an IBM Fellow and to
win a Turing Award for outstanding contributions in computer science.
Perhaps more importantly: many of the techniques that Allen pioneered are still in
use today to make our computers run smoothly.
Even though those programmers may not be all that well known, their trailblazing
work is why you’re able to watch this video today.
Celebrating their achievements in programming is one of the best ways that we
can say “thank you” for all of their hard work.
Thanks for watching this episode of SciShow, which was brought to you by these
hardworking programmers, and by our patrons.
If you’d like to get involved and help bring SciShow to the whole Internet,
you can get started at patreon.com/scishow.
[♪ OUTRO]