My name is Michael Bowkis from The Open University, School of Computing and Communications.
And I've just walked through the new museum site here in Cambridge,
and I'm standing by
what was the entrance to the old Cavendish Laboratory. On the
opposite side of this,
in a building that is no longer there,
on the 6th of May in 1949 Maurice Wilkes ran the first
programme on EDSAC.
This computer is generally considered to be the first
practical stored programme computer.
The story is about computer architecture,
but perhaps more importantly,
it's also about the programming languages and the journey that we have taken from
1949 to now.
And perhaps we'll get a little peek into the future.
Before we go racing off into the future to try to imagine what programming might be like for us,
it's worth thinking just a little bit about what it was like prior to 1949
when Maurice Wilkes ran that first programme.
And in Science and Engineering and in Mathematics departments around the world, in commerce
and in industry,
calculations were performed on machines just like the one I'm holding here,
mechanical devices.
And I'm sure you can imagine that because they are mechanical,
they were inherently slow,
and that slowness meant that there were certain problems that they were not best suited for.
They couldn't solve certain calculations in a reasonable amount of time.
I'll come back to that concept a bit later on.
In 1945, John von Neumann,
who had been working on the Manhattan project that developed the first atomic bombs,
also wrote a paper about a computer architecture and that architecture has
become known as the von Neumann architecture,
and indeed it was that architecture that Maurice Wilkes built EDSAC on.
In this film clip,
courtesy of the University of Cambridge,
you can see EDSAC, some of the components
the thermionic valve racks,
the input via punch tape and the limited output.
But what's interesting now is to take a look at what was the first programming
language used on that machine.
This is the EDSAC programme code that Maurice Wilkes ran on the 6th of May
in 1949, the squares programme.
And I think you'll agree with me,
when you look at that code,
it's not entirely obvious what it does.
Of course,
it's machine code and this is how things started out.
What we're trying to do with programming is move away from dealing directly with the
architecture itself and moving bits and bytes around, and getting to something that's more
akin to our natural language.
So let's leave 1949 and travel ahead in time very quickly to
1957.
In that year, 1957, Fortran was released.
John Backus had been working on this since 1954.
It was the world's first general purpose,
high level programming language.
It was particularly suited to numerical and scientific computation,
but it was also used in industry,
and it first ran on the IBM 704.
Fortran was later developed and became standardised,
and I want to return to look at Fortran a little bit later on.
But just for now,
we've got to leap forward in time to 1972.
And in 1972, the C programming language was introduced,
developed at Bell Labs by Dennis Ritchie.
It's a procedural language that maps very efficiently when compiled to
machine code.
Originally,
it was used to develop the colonel for the UNIX operating system,
some of the utilities,
but it has gone on to be a general purpose programming language that is
particularly useful for certain types of applications.
Leaving 1972 behind,
let's jump right up to date to 2022.
Since 1957
of course
many programming languages have been designed,
but the two that we looked at, Fortran and C, have also been enhanced over the years.
Fortran, very well suited to high performance computing and is used in cosmology and
astronomy,
engineering and science.
And of course,
C is still used for embedded systems and writing operating systems as well as new
programming languages.
The architecture of computers has changed dramatically over these years too.
And these two Raspberry Pis are far more powerful than those very early machines that
you've seen, right through to supercomputers like Fugaku and ARCHER2
that runs here in the United Kingdom for science research.
Recently,
a few people have suggested that in the future everybody is going to need to code in some way.
But is that really true?
And if it's true,
really,
what does it mean for everybody?
In this clip,
you can see a derivative of MIT Scratch.
It's a block-based language used for teaching.
If we take this concept of dragging and dropping blocks further and closer
towards the problems that we're trying to solve,
this leads us on to what is called low-code or no-code programming.
Let's take a quick look.
The idea is based upon giving the developer blocks of code that can be connected together
using business logic or other connectors,
enabling them to quickly develop a prototype or,
in this instance,
a fully fledged application to run on the Web.
It enables somebody without much programming experience to develop an application
and to get it to market very quickly.
We're going to look into the future a little bit now.
What if we could take the human out of the programming process altogether,
or at least partially,
and help the programmer improve productivity?
In this last month
the UK AI company, DeepMind, announced that it had developed a system that
could construct software.
DeepMind claim that their system uses a combination of logic,
critical thinking and natural language processing in order to develop
computer software.
Together we've taken a very rapid journey through time from 1949 and EDSAC,
looked at computer languages when they were first developed,
and to where we've got to now with Artificial Intelligence.
But I did mention that there are some problems that we still find very difficult to compute,
and we can't do that in any reasonable amount of time.
And one of those is cracking the encryption that we currently use to help
protect our privacy. For that, and to solve many other problems,
the race is on to develop quantum computers,
but that's another very complicated story.
I hope in this video you found something to excite you that makes you want to go on
and study computing.
I'm Michel Bowkis from The Open University.
And when I'm not solving problems in computer science,
you can find me on a yacht or maybe playing my saxophone.