HomeVideos

The third golden age of software engineering – thanks to AI, with Grady Booch

Now Playing

The third golden age of software engineering – thanks to AI, with Grady Booch

Transcript

2061 segments

0:00

Some people worry that AI writing

0:01

surprisingly good code could mean the

0:03

end of software engineering. But Grady

0:05

Buch disagrees and says that we are

0:06

entering the third golden age of

0:08

software engineering. Grady Buch is one

0:10

of the founding figures of software

0:11

engineering as we know it. He co-created

0:13

UML, pioneered object-oriented [music]

0:16

design, spent decades as an IBM fellow,

0:18

and has witnessed every major

0:19

transformation this industry has

0:21

undergone since [music] the 1970s. In

0:23

today's conversation, we discuss the

0:24

three golden ages of software

0:26

engineering and what history [music]

0:27

teaches us about surviving and thriving

0:29

through major technology shifts. Why

0:31

coding has always been just one part of

0:33

software engineering and why the human

0:35

skills of balancing technical, economic,

0:37

and [music] ethical forces are not going

0:38

anywhere. Grady's direct response to

0:40

Dario's prediction that software [music]

0:42

engineering will be automated in 12

0:44

months. Spoiler, he does not hold back.

0:47

And many more. If you want to understand

0:48

that the massive change that AI is

0:50

bringing has in fact happened before and

0:53

not just once, this episode is for you.

0:55

This episode is presented by Statsig,

0:56

[music] the Unifi platform for flags,

0:58

analytics, experiments, and more. Check

1:00

out the show notes to learn more about

1:02

them and our other season sponsors. So,

1:04

Grady, it's great to have you back on

1:06

the podcast again. Thanks for having me.

1:08

Aloha. So touching a little bit on the

1:11

the history of of software engineering,

1:14

you've said many times before that the

1:16

entire history of software engineering

1:17

is one of rising levels of abstraction.

1:20

Can you walk us through the key

1:21

inflection points that help us

1:23

understand this and then of course tie

1:25

it into how AI is is all tying into

1:28

this?

1:29

>> Well, the very term software engineering

1:31

did not come to be until Margaret

1:33

Hamilton was probably the first to uh

1:36

anoint it. uh she at the time had just

1:39

left the man orbiting laboratory

1:41

project. She was working on the Apollo

1:43

program and she was one of the very few

1:45

people who were software developers in a

1:48

sea of mostly men who were the hardware

1:50

structural engineers and she wanted to

1:52

come up with a phrase that distinguished

1:54

herself from the others. So she began

1:57

using the term software engineer and I

1:59

think we can rightfully give her the

2:01

claim to the first one that coined that.

2:03

There were others that followed most

2:05

notably people talk about the NATO

2:07

conference uh on software engineering

2:10

and when the organizers established that

2:13

which was actually a few years after

2:14

Margaret's work they did so as kind of a

2:17

controversial name not unlike how the

2:20

term artificial intelligence was named

2:22

controversially for its first conference

2:25

on the west coast. Um, so there were

2:28

others that followed and after a period

2:30

of time it kind of stuck and I think

2:32

what it meant the essence of what

2:34

Margaret and others were doing is to say

2:36

there's something engineeringish about

2:39

it in the sense that ours is a field

2:42

that tries to build reasonably optimal

2:45

solutions. You can't have perfect

2:47

solutions that balances the static and

2:50

dynamic forces around them much like

2:52

what structural, electrical, chemical

2:54

engineers do. In the software world, of

2:56

course, we deal with the medium that is

2:59

extraordinarily funible and elastic and

3:02

fluid and yet we still have the same

3:04

kinds of forces upon us. Uh here we've

3:07

got the forces of the laws of physics.

3:09

You can't pass information faster than

3:11

the speed of light, which is kind of

3:13

annoying in some cases, but hey, we'll

3:15

have to live with it. There are issues

3:17

about how large we could build things,

3:19

largely constrained by our hardware

3:21

below us. There are constraints we have

3:23

on the algorithmic side of things. We

3:25

may know theoretically how to do

3:27

something such as the vertalry

3:29

algorithm, which was essential to the

3:32

creation of cellular phones. For the

3:34

longest time, we didn't know how to

3:35

implement it, but there was indeed a

3:37

calculable solution. similar stories

3:39

with regards to fast forier transform.

3:41

We knew the theory but until Forier

3:44

transforms could be turned into

3:46

something computational we couldn't pro

3:49

progress. And there are also other

3:51

constraints upon us not just these

3:53

scientific ones and and the computer

3:55

sciency ones but constraints such as the

3:57

human ones. Uh can I get enough people

4:00

to do what I need to do? Can I organize

4:03

teams doing what I want to do? Ideally

4:06

the largest team size you want for

4:08

software is zero. Well, that's not very

4:11

practical. The next best one is one and

4:14

then it kind of grows from there. And

4:16

there are projects that simply are of a

4:18

certain scale that you cannot conceive

4:21

of them being done by a small group of

4:23

people. I mean, why do any of the large

4:25

projects we have have a cadre of folks

4:27

in them? It's because the footprint of

4:29

these systems and their enduring

4:31

economic and social importance is so

4:34

great. You can't rely upon just an

4:36

individual. That software must endure

4:39

beyond them. And increasingly as

4:41

software moves into the interstitial

4:43

spaces of the world, we have the legal

4:46

issues uh such as we see with you know

4:48

digital rights management but I think

4:50

more importantly and overarching the

4:52

ethical issues. We know how to build

4:54

certain things but should we build them?

4:57

Is it the right thing for us to do in

4:59

our humanity? So these are the

5:01

collection of things that are in a way

5:03

well not in a way but absolutely are the

5:05

static and dynamic forces that weigh

5:07

upon a software engineer and that's why

5:10

I can say we are engineers because much

5:12

like the other kinds of engineers we

5:14

build systems that balance those forces

5:17

and we do so in a medium that is

5:19

absolutely wonderful. So that's software

5:22

engineering. Now I mentioned in our last

5:25

call there are certain ages of software

5:27

engineering and I think as we look from

5:30

the from the lens of looking backward

5:33

there are at least two identifiable

5:36

major epics in software engineering. In

5:39

the earliest days there was no software

5:41

because what we did was simply managing

5:44

our machines and the difference between

5:46

the hardware and the software was

5:48

completely indistinguishable. you know,

5:50

putting plugs in a plugboard as was

5:52

happened with the ENIAC. Is that

5:54

programming? Well, yes, but there's not

5:56

really software there. It's something

5:58

else. And it wasn't until our machines

6:01

came to the point in late 40s, early 50s

6:04

that we began to find a difference for

6:06

them. Most of this software written at

6:09

that time was bespoke. Well, really all

6:12

of it was. And virtually all that

6:14

software was tied to a particular

6:16

machine. But the economics of software

6:18

were sh such that we love these

6:21

machines. We'd like them to be faster,

6:22

but gosh, we put a lot of investment in

6:25

the software itself. Is there a way to

6:27

decouple these kinds of things? We talk

6:30

about the recent history of our of our

6:32

world. The term digital was not coined

6:35

until the late 40s. The term software

6:37

was not done until the 50s. And so even

6:40

the acknowledgement that software was an

6:42

entity unto itself was just about in my

6:45

lifetime which is frightening to think

6:47

about.

6:48

>> Yeah. Like 70 80 years ago. Wow.

6:50

>> Yeah. Yeah. Exactly. So this is this

6:52

were an astonishingly young young

6:54

industry. If you were to take Carl

6:56

Sean's cosmic calendar and uh and put

7:00

software in it, we would be in the last

7:02

few nanoconds of that cosmic calendar.

7:05

It would be less than a blink of an eye.

7:07

But anyway, as software began began to

7:11

be decoupled from hardware itself, then

7:14

folks such as Grace Hopper and others

7:17

were beginning to realize that this is a

7:20

thing that we could treat as a business

7:22

and an industry as an institution unto

7:25

itself. So the earliest software of

7:28

course was as it was software itself was

7:30

assembly language which was very much

7:32

tied to the machine. And jumping ahead a

7:35

little bit, as IBM came along in the

7:37

'60s recognizing that there was a way to

7:40

establish a whole architecture of

7:42

machines with a common instruction

7:44

language, then it was possible to

7:46

preserve software investments and yet

7:50

decouple it from hardware in a way that

7:51

I could improve my hardware without

7:54

throwing away the software. Once that

7:56

realization happened which was both an

7:58

engineering decision, a business

8:00

decision and overall an economic

8:03

decision then the floodgates opened up

8:05

and all of a sudden we had a lot more

8:07

software that could be and needed to be

8:10

written. This was the first golden age

8:12

of software engineering in which we had

8:15

software was an industry unto itself.

8:18

And so the essential problems that world

8:20

faced were problems of complexity. uh

8:24

complexity in that we were building

8:25

things that were, you know, difficult to

8:28

understand, that were trying to

8:29

manipulate our machines in some cunning

8:32

ways, but it was complexity that by

8:34

today's standards was, you know,

8:35

laughably simple. We could, you know,

8:37

this is the equivalent of hello world,

8:39

but they were problems that were hard

8:40

unto themselves. And so because we were

8:44

so coupled to the machines, the primary

8:46

abstraction used in the first golden age

8:49

of software engineering was that of

8:51

algorithmic abstraction because that's

8:52

what our machines did. Most of our

8:54

machines were meant for mathematical

8:57

kinds of operations and so as as was

9:00

done in forran it was a matter of

9:02

building our software that could do

9:04

formula translation.

9:06

So that was the realm and the problems

9:09

faced by the first generation

9:11

>> and and this first generation like in

9:13

timeline where would you put it roughly

9:16

>> timewise I'd put it in the late 40s to

9:19

the late7s or thereabouts

9:22

>> and that's what dominated that time

9:23

frame. So the figures you would see

9:25

would be uh Ed Jordan, Tom DeMarco,

9:28

Larry Constantine. This is when uh ERP

9:32

uh sorry not entity relationship ideas

9:34

came about. And so these ideas of that

9:37

kind of abstraction poured over not just

9:40

into software but also into the data

9:42

side of things as well. This was an

9:44

extraordinarily vibrant period of time

9:47

in software engineering in which we had

9:49

the invention of flowcharts for example

9:51

which were an aid to thinking about how

9:54

to construct these kinds of systems. You

9:56

saw a division of labor where you had

9:59

people who would analyze the system. You

10:01

people who would then program it, people

10:03

who would key punch the solutions,

10:04

people would operate the computers. And

10:07

again this was largely driven driven by

10:09

economic reason because the cost of

10:12

machines were far greater than the cost

10:15

of the humans involved in them. So a lot

10:18

of what was happening was done to

10:20

optimize the use of the machines which

10:22

were very very rare resources.

10:25

Um the lesson in this as we'll see

10:27

coming back in the next generations is

10:29

that these forces much like with

10:31

software engineering itself have shaped

10:33

the very industry of software and

10:36

economics and the whole social context

10:39

also influences them. So in the first

10:43

generation it was largely focused upon

10:45

mathematical needs and the automation of

10:49

existing business processes. So what you

10:52

had happen is that you would have

10:54

businesses that have literal, you know,

10:56

floors of offices with people doing

10:59

accounting and payroll and like that.

11:01

And this was the lowhanging fruit

11:03

because now all of a sudden we could

11:05

accelerate those processes and actually

11:08

improve their precision by pulling the

11:11

human out of it and automating it. So

11:14

the vast amount of software written

11:16

during that time was business and and

11:19

mathematical and and numerical kinds of

11:21

things. Now this is an important thing

11:23

because while this was the focus, this

11:26

was not the only kind of thing because

11:28

you saw in the periphery or shall I say

11:31

from the point of view of a person who

11:33

was a programmer in that time it looked

11:35

to them as the dominant places was in

11:37

the IBMs, the insurance companies, the

11:39

banks and the like. There's a lot of

11:41

work going on outside that world in the

11:43

defense industry as well. We saw people

11:45

moving software and hardware into our

11:48

machines of destruction into our

11:49

aircraft into our missiles. We saw it

11:52

moving into weather forecasting. We saw

11:54

it moving into medical devices itself.

11:58

So while the concentration was the

12:00

things that the general public would see

12:02

a lot of stuff happening around the

12:04

edges as well. I would say in the first

12:07

golden age of software engineering there

12:09

was this central push of algorithmic

12:12

abstractions into business and numerical

12:15

things but the real innovation was

12:18

happening in that fringe in particular

12:21

it wasn't in business cases but it was

12:23

in defense cases because Russia was the

12:26

clear and present threat for us at the

12:27

time in which there was a need to build

12:30

distributed systems of real time nature

12:33

most of the systems I've talked about

12:35

this were were not real time. And so we

12:37

saw the rise of of experimental machines

12:40

such as whirlwind. We saw the work in

12:43

the mother of all demos which was

12:45

experimentation of various human

12:47

interface kinds of things which was not

12:50

the center of gravity of of software

12:52

development at the time with the things

12:54

on the fringes. We saw we saw

12:56

researchers such as David Parnes who

12:59

were coming on the scene CAR Dyster and

13:02

others were forbidding to look at the

13:04

formalisms of these systems and looking

13:05

at treating software development is

13:07

actually a formal mathematical activity.

13:09

Grady just mentioned formal methods and

13:11

formal mathematics and software

13:12

engineering. Being able to verify that

13:15

software does what it should has been a

13:16

problem since the early days of software

13:18

engineering. And this leads us nicely to

13:20

our seasonal sponsor, Sonar. As we're

13:22

living through what Grady might call the

13:24

third golden age of software

13:25

engineering, AI coding assistants

13:27

generate code faster than we ever

13:28

thought was possible. This rapid code

13:30

generation has already created a massive

13:32

new bottleneck at code review. We're all

13:34

feeling it. All that new AI generated

13:36

code must be checked for security,

13:38

reliability, and maintainability. A

13:40

question that is tricky to answer

13:41

though. How do we get the speed of AI

13:44

without inheriting a mountain of risk?

13:47

Sonar, the makers of Sonar Cube, has a

13:49

really clear way of framing this. Vibe

13:52

then verify. The vibe part is about

13:54

giving your teams the freedom to use

13:56

these AI tools to innovate and build

13:57

quickly. The verify part is the

13:59

essential automated guardrail. It's the

14:02

independent verification that checks all

14:03

code human and AI generated against your

14:06

quality and security standards. Helping

14:08

developers and organizational leaders

14:10

get the most out of AI while still

14:11

keeping quality, security, and

14:13

maintainability is high on the main

14:15

themes of the upcoming Sonar Summit.

14:17

It's not just a user conference. It's

14:18

where devs, platform engineers, and

14:20

engineering leaders are coming together

14:22

to share practical strategies for this

14:23

new era. I'm excited to share that I'll

14:25

be speaking there as well. If you're

14:27

trying to figure out how to adopt AI

14:28

without sacrificing code quality, come

14:30

join us at the Sonar Summit. To see the

14:32

agenda and register for the event on

14:34

March 3rd, head to

14:35

sonarsource.com/pragmatic/sonarssummit.

14:39

With this, let's get back to Grady and

14:41

treating software development as a form

14:42

of mathematical activity. And you saw

14:45

the rise of I said distributed and

14:47

real-time systems primarily in the

14:49

defense world. So from whirlwind it

14:51

begat a system called sage the

14:54

semi-automatic ground environment which

14:56

came about during the six during the 50s

14:58

and60s

15:00

and indeed the last one was

15:01

decommissioned I think in the 1990s.

15:04

This was based upon the threat of

15:06

Russia. This is you know pre premissiles

15:08

Russia would send a fleet of bombers

15:10

over the Arctic and invade the United

15:12

States. So thus was born the D line, the

15:15

distance early warning system across

15:17

Canada. And all that data was then fed

15:19

into a series of systems called SAGE,

15:22

the semi-automatic ground environment.

15:24

This system was so large it consumed

15:26

according to some reports easily 20 to

15:29

30% of every number of software

15:31

developers in the United States at the

15:33

time. Wow,

15:34

>> that's a lot of folks. But remember back

15:36

in the time there were maybe only a few

15:38

tens of thousands of software developers

15:40

but this was the biggest project

15:42

>> basically the military was the biggest

15:43

spender uh in soft in research and

15:46

moving the industry forward right

15:48

because they had

15:48

>> absolutely absolutely correct they had

15:50

to because it was a clear and present

15:51

threat and so a lot of the innovation

15:53

was happening to the defense world as I

15:56

think I passed this phrase on to you in

15:57

the documentary I'm working on in

15:59

computing I use the phrase that there

16:01

are two major influences in the history

16:03

of computing one is commerce. We've

16:05

talked about the economics already. And

16:07

the second is warfare. And thus I claim

16:12

and I think there's much defense for it.

16:14

Much of modern computing is really woven

16:16

upon the loom of sorrow. Referring back

16:19

to Jakard's loom. So yeah, a lot of the

16:21

things we take for granted today like

16:23

the internet uh like uh micro

16:25

miniaturaturization, this all came from

16:28

government funding in these cases. So we

16:30

owe a lot to the cold war. This phase

16:32

was this still the first golden age? We

16:34

passed the first golden age. These are

16:36

the things happening in the first golden

16:37

age. But what I'm pointing out is there

16:39

was sort of a center of mass to it, but

16:42

lots of things happening on the edge

16:44

that were driving software out from its

16:47

primary roots. So let's recap here. In

16:49

the first golden age, you had the focus

16:51

primarily upon mathematical and business

16:53

kinds of applications. And the primary

16:56

means of decomposition was an

16:59

algorithmic abstraction. We looked at

17:01

the world through processes and

17:02

functions, not so much through data. But

17:05

on the fringe, we had organizations, use

17:08

cases that were pushing us beyond that

17:11

simple place. Use cases that demanded

17:14

distribution, use cases that demanded

17:16

the coupling of multiple machines and

17:18

also use cases that demanded real-time

17:21

processing and use cases that demanded

17:24

human user interfaces. Yeah,

17:26

>> the interfaces we deal with today, they

17:28

had their roots in whirlwind and the

17:30

roots in Sage. This is the first UI

17:32

interface that was graphic tube, a CRT.

17:36

And so these kinds of things were born

17:37

from that. So that was the point and I

17:40

think the lesson from this is that

17:42

software is a wonderfully dynamic,

17:45

fluid, fungeible domain. But it's also

17:48

one that tends to grow because once we

17:51

built something and we know how to build

17:53

it and we have patterns for doing so,

17:55

all of a sudden we discover there

17:57

economically interesting ways we can

18:00

apply it elsewhere. So this was the

18:02

first generation, the first golden age

18:05

of software engineering. But you could

18:07

begin to see cracks in the facade in the

18:10

late 70s early 80s. The NATO conference

18:14

on uh software engineering uh was one of

18:17

the first to do this in a big public

18:19

way. And for them NATO was realizing we

18:23

NATO have a software problem. We have an

18:26

insatiable demand for software and yet

18:29

our ability to produce it of quality at

18:33

speed, we just don't know how to do it.

18:35

And so this was the so-called software

18:38

crisis and you know people didn't know

18:39

what to do about it. Can you help us

18:41

understand or take us back what what was

18:43

the crisis about? What were people like

18:45

kind of like saying oh my gosh this is

18:46

the problem?

18:47

>> Yeah the problem was to recap was

18:50

software was clearly useful. There were

18:53

economic incentives to use it and yet

18:56

the industry could not generate quality

18:58

software of scale fast enough.

19:02

>> I see. I see. So it it was both

19:04

expensive, slow and and not good.

19:06

>> There's a fourth one which was the

19:08

demand was so great that I guess you

19:10

could call it the slow the demand was so

19:11

great. It's like wow this is we want

19:13

more of this stuff. Give us more

19:15

software. So those four things together

19:18

put us in the sense of crisis. Notice

19:20

subtly it's not the same kind of crisis

19:22

we have today where we worry about

19:24

surveillance, we worry about you know

19:26

crashes, that kind of thing. So the

19:28

nature of the problems have changed and

19:30

they do in every every golden age.

19:33

>> It's fascinating that this thing

19:34

existed, you know, living in our our

19:36

current reality.

19:38

>> Yes. Yes. It's a very different world

19:39

itself. But it was a the clear and

19:41

present danger at the time was that and

19:44

it was an exciting vibrant time because

19:46

there was so much that could be done and

19:49

software being such a funible elastic

19:51

fluid medium meant that we were

19:53

primarily limited just by our

19:55

imagination. You add to this then micro

19:58

miniaturaturization. Why did integrated

20:00

circuits come about? Why did Fairchild

20:03

uh come about and and establish Silicon

20:05

Valley be the basis for it? It's because

20:07

of the transistor. Who was the first

20:10

customer of the Fairchild? It was the

20:13

Air Force primarily for their men

20:17

missile. In fact, most of the

20:19

transistors being made in Silicon Valley

20:22

in the earliest days went to our cold

20:24

war programs. But that was great because

20:26

that established then the the economic

20:29

basis for the whole infrastructure for

20:31

doing it where it was possible to start

20:33

doing these things at scale and of of

20:35

course we knew that begat integrated

20:37

circuits that begat personal computers

20:39

and so on. So here we are now in the

20:42

late '7s and the software crisis was

20:45

quite clear. The US government in

20:47

particular, to focus on one story,

20:50

recognized that they had the problem of

20:52

Babel and that there were so many

20:55

programming languages in place. By their

20:57

count, there were at least 14,000

21:00

different programming languages used

21:02

through military systems. Oh wow. Back

21:05

then when software was so much smaller

21:07

than today. Wow.

21:08

>> Absolutely. It's incredible. And

21:10

languages like languages like Jovial was

21:13

a very popular one. a jovial kind of a

21:15

play on words for cobalt and and the

21:18

like. We had the rise of algal which was

21:20

not a military language but the formal

21:23

forces of caor and dystra and verth led

21:26

to this discipline of applying

21:27

mathematical rigor to our languages and

21:30

so the idea of you know formal language

21:32

research was born you had this wonderful

21:35

confluence of resources it said by the

21:37

late '7s the government recognizing that

21:41

we have a problem that's when they

21:42

funded the ADA project which at the time

21:45

was called the joint program working

21:48

group something something like that

21:50

which was an attempt to remove the

21:53

number of language that exist and try to

21:55

reduce it to one language that ruled

21:58

them all. Now what was interesting is

22:01

that you saw at this time there was a

22:03

lot of interesting research that was

22:05

feeding into it. the work of uh abstract

22:08

data types uh from Galan and the ideas

22:11

of information hiding from Dave Parnes

22:14

uh separation of concerns uh the ideas

22:18

today we would call it clean programming

22:20

clean coding but it's the ideas of

22:22

literate programming from canuth so

22:24

these kinds of things were bubbling away

22:27

in the late 70s and early 80s and ADA

22:30

was a little bit of a a push to make

22:33

that happen on a big scale no other

22:36

industry or company could really do it

22:38

because they didn't have the exposure or

22:40

weight or gravitas or economic

22:43

powerhouse as the US military at the

22:45

time did. At the same time, you had some

22:48

interesting work going on in

22:49

laboratories like at Bell which had

22:51

begat C and Unix and the like which was

22:54

becoming incredibly important. But there

22:56

was this crazy researcher at the time by

22:59

the name of Bjarn Struestrip who was

23:01

saying wow you know this is kind of cool

23:03

but hey let's take some of these ideas

23:05

from simula I should mention simula

23:07

which was the first object-oriented

23:09

language and let's see if we can apply

23:11

them to C because you know C's got

23:13

problems with it let's see if we can

23:14

move about so what was happening in the

23:16

background in academia and in in these

23:19

fringes was the realization that we

23:22

needed new kinds of abstractions and it

23:24

wasn't just algorithmic abstractions

23:26

But it was object abstractions. Turns

23:29

out there's an interesting history

23:31

behind that dichotomy.

23:33

There is a discourse in Plato about that

23:36

very kind of split in which he has he

23:40

has a dialogue between two people who

23:42

are you know talking about how I look at

23:44

the world and one of them says we should

23:47

look at the world in terms of its

23:49

processes. This is the ancient Greek

23:51

philosopher from like before Christ.

23:53

that guy that Plato he he he brought up

23:56

some parallel ideas.

23:58

>> He brought up the ideas of the dichotomy

24:00

of looking at the world through two

24:02

lenses. The very Plato whose work has

24:04

now been banned in certain US

24:07

universities because he was so radical.

24:09

Right? But but in one of these dialogues

24:11

he observed that one of the writers said

24:14

oh we have to look at the world through

24:16

through the processes how things flow.

24:18

And the other one said no no no we have

24:20

to look at them through things. And this

24:22

is where the idea of atoms came about.

24:24

The very term atom came from Greek terms

24:27

and and that terminology. So the idea of

24:31

looking at the world and looking at and

24:34

looking at the world are basically

24:35

abstractions is not a new one. But

24:38

people like Parnis and and others and

24:41

the the designers of Simula said, "Wait

24:44

a minute, we can apply these ideas to

24:47

software itself and we can look at the

24:49

world not just through algorithmic

24:51

abstractions, but we can look at them

24:53

through object abstractions. Now there's

24:56

another factor that came into the place

24:58

and this is where uh the inventor of

25:00

Forran came into be. After forran he

25:03

went off and he did this at IBM of

25:05

course he he was made a fellow and he

25:07

went off and said this was fun but I

25:08

want to do something else and he said

25:10

let's let's look at a different way of

25:12

programming and it was the idea of

25:14

functional programming which was looking

25:16

at the world through mathematical

25:17

functions stateless kinds of things so

25:19

there was work here we are talking what

25:21

in the the 70s now in which uh the ideas

25:25

of functional programming came to be I

25:27

had a chance to interview him a few a

25:29

few months before he passed away and I

25:31

asked asked him, you know, why did

25:33

functional programming never make the

25:35

big time? And his answer was because

25:37

functional programming makes it easy to

25:39

do hard things, but it makes it

25:42

astonishingly impossible to do easy

25:44

things.

25:44

>> Easy things.

25:45

>> Yeah. So, so functional programming has

25:48

a role. There's no doubt. And I think

25:50

its foundations were laid at the time by

25:53

John. But even today, it has a role. It

25:57

has a niche but it hasn't become

25:58

dominant because of that very same

26:01

edict. So any rate here we are at the

26:05

sort of end of the first golden age of

26:07

software engineering and moving into the

26:10

second. What were the forces that led us

26:12

into that? First off it was growing

26:15

complexity. Grady just mentioned how

26:17

growing complexity was a force pushing

26:18

the industry into a new golden age of

26:20

software engineering. Fast forward to

26:22

today and software complexity keeps

26:24

growing, growing and growing in part

26:26

thanks AI generating a lot more code a

26:28

lot faster. And this brings us nicely to

26:30

our season sponsor work OS. Work

26:32

provides the primitives that make it

26:34

easy to make your app enterprise ready.

26:36

But under the hood, there's so much

26:38

complexity that happens. I know this

26:40

because I recently took part in an

26:41

engineering planning meeting at work

26:43

called the Hilltop review. An engineer

26:45

walking through their proposed

26:46

implementation. In this review, we

26:48

discuss how to implement authentication

26:49

for customers when their users

26:51

authenticate across several platforms

26:53

using work OS. For example, what should

26:56

happen if a user logs out on the mobile

26:58

version? Should they stay logged in in

27:00

the web version? What about the other

27:02

way around? We covered 10 plus similar

27:04

questions. The answer, as I learned,

27:06

goes down to it depends what the

27:07

customer using work OS wants. The work

27:10

OS team walks through edge cases I had

27:12

no idea existed and then turns those

27:14

decisions into configurable behavior in

27:16

the admin panel so customers choose the

27:18

right trade-offs for their product and

27:20

their users without having to build and

27:22

maintain all of this logic themselves.

27:24

But this is not always enough. And when

27:26

customers have unique needs, the work

27:28

engineering team often works with them

27:29

directly to figure out how to solve

27:31

their very specific problem. They then

27:33

generalize these solutions so they

27:35

become part of the platform for

27:36

everyone. After this planning session, I

27:38

have a newfound appreciation for just

27:40

how much complexity works absorbs so

27:43

product and engineering teams don't have

27:44

to. The same planning goes into all work

27:46

products and customers get all the

27:48

benefit. Learn more at workowwise.com.

27:51

And with this, let's get back to Grady

27:53

and how the second golden age of

27:54

software engineering came about. As I

27:56

mentioned, growing complexity,

27:58

difficulty of building software fast

27:59

enough and building building big enough

28:01

software and I would add to this the

28:03

things that came about in in the defense

28:05

world which were the desire and an

28:08

obvious value in building systems from a

28:11

distributed kind of way. Now come on to

28:13

the scene because what was happening

28:15

around that same time is the fruits of

28:17

micro miniaturaturization came to be and

28:19

it led us to the personal computer. This

28:22

was because transistors, right? And and

28:24

the breakthroughs in in like electronics

28:26

and and

28:27

>> precisely and you know this too was a

28:30

vibrant time because you had you know

28:33

you had hobbyists who could put these

28:35

things together and and build them from

28:37

scratch and there were no personal

28:38

computers at the time. Was this the

28:40

first time that hobbyists could actually

28:42

like meaningfully get their hands on it

28:44

in in the history of computing? Really?

28:46

I think at scale, yes, you you had you

28:49

had hobbyists such as Pascal back in his

28:52

day who decided that his father was so

28:55

tediously working over his accounting

28:58

that Pascal built a little machine for

29:00

him. So there was hobbyist work at that

29:02

time, no doubt about it. But in terms of

29:04

scale and also remember post World War

29:06

II, you had the addition of especially

29:09

in the United States, you had more

29:11

disposable income which made it possible

29:14

for hobbyists to actually do these kinds

29:16

of things. And then lastly, you had the

29:18

military who was producing integrated

29:21

circuits and transistors. And all of a

29:23

sudden, especially in Silicon Valley,

29:25

you could go down to Fry or the Fry

29:28

equivalent. This is before Fries and buy

29:30

these things. they were just they were

29:32

there and so it enabled people to play

29:35

and play is an important part in the

29:37

history of software. So you had this

29:39

wonderful thing happening and I'd say

29:41

the late 70s and early 80s which was a

29:44

vibrant time of experimentation. There's

29:47

a delightful book called what the

29:48

doormouse said which posits that the

29:51

rise of the personal computer was also

29:54

tied together with the rise of the

29:57

hippie counterculture. And so this this

30:00

drive toward you know power to the

30:02

people and you know let's you know love

30:05

make love not war these kinds of things.

30:07

This is the era of Steuart Brand the era

30:10

of of the Murray pranksters and the like

30:12

and that led to things like the well

30:15

which was the very first social network

30:18

which was today we call them bulletin

30:20

boards which grew up in in Silicon

30:22

Valley. Quick aside, Stuart just a

30:25

lovely fellow. He was actually mentioned

30:27

as one of the merry pranksters in uh in

30:30

the book about uh about them. He's still

30:33

on the scene and he's just released a

30:34

wonderful book called maintenance part

30:36

one which looks at the problems of

30:39

systems. Software is one of them and the

30:41

problems of maint associated with them.

30:43

Anyway, here we are um late 70s early

30:46

80s uh also a very vibrant time because

30:49

there's a lot of cool stuff that could

30:51

be done.

30:52

>> Yeah. And and it's Strike Press is

30:53

publishing this actually. So, uh, I'll

30:55

I'll leave a link in the show notes

30:56

below. It looks like a really nice book

30:58

and Stride Press is known to produce

31:00

excellent quality. So, I'm actually

31:02

excited to look into this.

31:03

>> Yeah, it's a great great book. So, the

31:06

realization was that we now had the

31:10

beginnings of theories of looking at the

31:12

world not through processes, but through

31:14

objects and classes. We had the the

31:18

demand pull of distributed systems, the

31:21

demand pull from trying to build more

31:22

and more complex systems. And so there

31:25

was also this perfect storm that really

31:27

launched that second golden age. And

31:30

that's frankly where I came onto the

31:32

scene. I was just in a lucky place at a

31:33

lucky time. Um I was at the time working

31:36

at Vandenberg Air Force Base on uh

31:39

missile systems and space systems. Uh

31:42

there was envisioned military space

31:45

shuttle and I was part of that program

31:46

as well. It was great. It was a fun

31:48

place to be because we'd have launches

31:50

like twice a week. It was pretty cool.

31:51

You'd run up and say, "Wow, look at

31:53

that." It was it was pretty wild. At the

31:56

building in which I work, I had to

31:57

evacuate whenever there was a building,

31:59

ever a launch because if it was a Titan

32:01

launch, the Titan launch pad was really

32:03

close to us and if it had blown up on

32:05

the launch pad, it would have it would

32:07

have blown up our building, which would

32:08

have been really annoying. So, yeah.

32:11

Good stuff.

32:12

>> And one other one other quick story, you

32:13

could always tell when it was the secret

32:15

launches going off, the secret spy

32:17

satellites, because there were two main

32:20

clear indications. The first is all the

32:23

hotels would fill up because you'd have

32:25

the contractors come in. And second, the

32:27

day of the launch, the highway nearby

32:30

where you could see the launch would

32:31

fill up with people to watch it. So

32:33

there were no secrets in that world. So

32:35

here we are, late 80s. uh the the world

32:38

was poised for a new way of looking at

32:40

the world and that was object-oriented

32:42

programming and object-oriented design.

32:44

So how does that differ from the first

32:47

generation? It differs in the sense that

32:50

we approach the world at a different

32:52

layer of abstraction. Rather than just

32:55

looking at the data which was this raw

32:57

lake out here and the algorithms we have

33:00

to manipulate them, we bring them

33:02

together into one place. We combined the

33:04

the objects and the and the uh processes

33:07

together and it worked. My gosh, it'll

33:10

enable us to do things we could not do

33:12

before. It was the foundation for a lot

33:15

of systems. Uh go out to the computer

33:17

history museum and go look at the

33:19

software for for Mac Write and Mech

33:22

Paint. It was written in object Pascal,

33:24

one of the early object-oriented

33:26

programming languages. One of the most

33:27

beautiful pieces of software I've seen.

33:29

It's it's well structured. It's well

33:31

organized. And in fact, much of the

33:34

design decisions made in it, you still

33:36

see persist in systems such as Photoshop

33:39

today. Uh they still exist, which is an

33:42

interesting story unto itself about the

33:44

lifetime of software. So looking at

33:46

software through the lens of object

33:48

proved to be very effective because it

33:50

allowed us to attack software, the

33:52

software complexity problem in a new and

33:55

new and novel way. And so much like the

33:58

first golden age, this was also a very

34:00

vibrant time. in I would say the the 80s

34:03

and 90s where you had people such as the

34:06

three amigos, me, Ivar Gakasen, uh and

34:10

Jim Rumba, you had Pete Code, you had

34:13

Larry Constantine was back on the scene,

34:15

uh Ed Jordan was back on the scene, uh a

34:18

lot of folks who were saying, "Let's

34:21

look at software not from processes but

34:24

from objects and think about it." Now,

34:26

this was great. We made some mistakes.

34:28

there was an overemphasis upon the ideas

34:30

of inheritance. We thought this would,

34:32

you know, be the greatest thing. Uh that

34:35

was kind of wrong. But the idea of

34:37

looking at the world from classes and

34:38

objects, it was kind of built in. And so

34:41

what began to happen, this was also an

34:44

economic thing. As it's people started

34:46

building these things, all of a sudden

34:48

we saw the rise of platforms. Now there

34:51

was precedence for this because in the

34:53

first golden age of software people

34:55

started you know building the same kinds

34:57

of things over and over again. The idea

34:59

of collecting processes collecting

35:02

algorithms that were commonly used like

35:05

you know how do I manipulate a hard

35:07

drive or a drum? How do I write things

35:10

to a teletype? How do I you know put

35:12

things on a screen? uh these kind how do

35:15

I sort these kinds of algorithms could

35:19

be codified and so the first ideas of if

35:23

you will packaging them up into reusable

35:25

things came into be. This is when at

35:28

least in the the the world of of

35:30

business systems IBM share came to be.

35:33

Share was a customer uh organized group

35:38

that literally shared software among one

35:41

anothers. Totally.

35:42

>> And this was in the first golden age,

35:43

right?

35:44

>> This is the first golden age, right?

35:45

>> So So this was kind of like a primitive

35:46

or like I mean looking back a more

35:48

primitive way of just like packaging

35:50

stuff into like yeah related may that be

35:52

sorting algorithms or or as you said IBM

35:54

IBM was distributing just like functions

35:57

and things like that.

35:58

>> IBM wasn't doing it. It was perfect. It

36:00

was completely public driven. IBM

36:02

supported it but was done for it.

36:05

>> Yeah. So the point is this was the

36:07

earliest open- source software. So the

36:09

ideas of open source existed and

36:11

remember too in the economics of

36:13

software and hardware back in the time

36:15

software was pretty much given away free

36:18

by the main manufacturers. IBM did not

36:21

charge for software until later in the

36:24

later 60s7s they realized my gosh we can

36:26

make money and they decoupled software

36:28

and hardware and started charging you

36:30

for it. But in the earliest days, there

36:32

was this vibrant community of people who

36:35

could say, you know, gosh, I've written

36:36

this thing. Go ahead and use it. That's

36:38

fine. No problem. So, open source was

36:40

was late at that time. And the same

36:43

thing began to happen in the second

36:46

golden age in which we saw much like the

36:48

rise of operating systems, the rise of

36:51

open-source software, the same phenomena

36:54

applied in the second golden age, but

36:56

now it was a new layer of abstraction.

36:59

Oh, I want to have now a new uh library

37:03

for, you know, writing to these new

37:06

fangled CRTs. Here it is. No competitive

37:10

value in me having it, but by gosh, it

37:12

enables me to build some really cool

37:14

things. You can have it, too. So, open

37:16

source laid its roots, took its ideas

37:19

from the first golden age, applied

37:22

itself in the second golden age, but in

37:23

a different kind of abstraction. Lurking

37:25

in the background. Speaking of

37:26

economics, was the rise of platforms

37:29

because now all of a sudden these

37:30

libraries are becoming bigger and

37:32

bigger. And as we moved to distributed

37:35

systems, there was the rise of back then

37:38

we called it serviceoriented

37:39

architectures. There was this need of,

37:41

you know, we had HTML and the like. We

37:43

could, you know, pass links back and

37:44

forth, but there was some crazy folks

37:46

that said, wouldn't it be cool if we

37:48

could do things like, you know, share

37:49

images? And that was one of the things

37:51

that uh Netscape allowed which was they

37:54

they produced this addition to HTML that

37:57

allow you to put images. Wouldn't it be

37:59

cool if we could pass messages back and

38:01

forth via HTML? So all of a sudden uh

38:04

the internet became via HTML protocols,

38:06

HTTP protocols became a medium at a

38:09

higher level abstraction for passing

38:12

information and and processes around.

38:15

But there was a need to package it up.

38:17

So thus was born serviceoriented

38:19

architectures, SOAP, the serviceoriented

38:22

architecture, serviceoriented protocols,

38:24

all that the predecessors to what we

38:26

have today. And this was laying the

38:29

foundations in the second golden age for

38:32

the the beginnings of the platform era

38:35

which is you know what Bezos and and

38:37

others have really brought us to where

38:39

jumping ahead in our current age where

38:41

you have these islands which are sort of

38:45

formed by all sort of APIs around them.

38:47

But it was in the second golden age is

38:49

they were being born. And when you say

38:51

platforms what do you mean when you say

38:52

the rise of platforms? What how do you

38:55

think of a platform? AWS would be a good

38:57

one. Uh Salesforce would be another one

39:00

in which I have these economically

39:03

interesting castles defended by the moat

39:06

around them and those organizations like

39:09

Salesforce give you access across the

39:11

moat for you know a slight fee. Well,

39:14

not even a slight fee.

39:15

>> Yes. Not a slight fee.

39:17

>> Yeah. under the assumption that we as

39:20

like a salesforce uh the cost of you

39:23

doing it yourself is so high it makes

39:26

sense for you to buy from us. So during

39:29

the second golden age we saw the rise of

39:32

those kinds of businesses because the

39:34

cost of certain kinds of software was

39:36

sufficiently high and the complexity was

39:37

certainly high it allowed the business

39:40

and the industry of these kinds of SAS

39:43

companies. So, let's look at the the

39:47

late '9s, early 2000s. Also a vibrant

39:50

time, much like the first golden age. We

39:52

had the growth of the internet. Uh, when

39:55

did you get your first email address?

39:56

>> My first email address I got sometime in

39:59

maybe 2005 six. It was still very fresh

40:02

when Gmail launched. But when did you

40:04

get your first email address? 1987

40:08

when it was the ARPANET. And in fact, at

40:11

that time, yes, we had a little book. It

40:13

was probably a hundred pages long that

40:15

listed the email address of everybody in

40:17

the world. It was pretty cool. You can

40:18

find them online and you can see my

40:21

email there. Doesn't work anymore

40:22

because it doesn't have the same, you

40:24

know, top level domain kind of things.

40:25

So, I've been on email before email was

40:28

cool. And so as you saw these kinds of

40:31

structures like email becoming a

40:33

commodity thing in the second golden age

40:36

of software, this is when software began

40:38

to filter into the interstitial spaces

40:41

of civilization and it became not just

40:44

this one thing fueling businesses or

40:46

certain domains. It became something

40:48

that became part of the very fabric of

40:51

civilization. This was important. And so

40:54

now the things we worried about in the

40:56

first golden age, we'd solved them for

40:59

the most part. They were part of the

41:00

very atmosphere. We didn't think about

41:02

algorithms much because, you know, gosh,

41:05

everybody kind of knows about them. And

41:07

this is as technology should be. The

41:09

best technology evaporates and

41:11

disappears and becomes part of the the

41:14

air that we breathe. And that's what's

41:16

happening now. But it was in the second

41:19

golden age. The foundations of where we

41:21

are today are here. So what happened

41:24

around 2000 or so? Well, we had by that

41:27

time internet was big, lots of

41:29

businesses being built, but there was

41:31

the crash around that time because

41:34

economically it just didn't make sense.

41:36

So there was this great pullback. Also

41:38

happening was the whole Y2K situation

41:41

where a lot of effort was put into, you

41:43

know, solving that problem. You know,

41:45

people in retrospect say, well gosh, we

41:47

didn't need to worry about that. But

41:49

being in the middle of it, you realize,

41:50

oh no, there was a lot of heroic work.

41:52

And if that hadn't been done, then lots

41:55

of problems would have happened. So this

41:57

is a good example of how the best

41:59

technology you simply don't see. A lot

42:01

of effort and a lot of money was spent

42:03

to subvert a problem that simply did not

42:06

manifest itself. That's a great thing.

42:08

Grady just mentioned how the best

42:09

technology is one that you simply do not

42:11

see. This is an underrated observation

42:14

and it's true for most mission critical

42:15

software. When it works, it's invisible.

42:18

It's only when it breaks when users

42:20

notice that it's there. There is however

42:21

a problem with building reliable

42:23

invisible software. There's often a

42:25

tension between moving fast with few

42:27

guard rails that can make things break

42:29

or putting in more guard rails for

42:31

stability but then slowing down in

42:33

shipping speed. Well, there's a third

42:34

way which leads us nicely to our

42:36

presenting sponsor stats. Static built a

42:39

unified platform that enables the best

42:40

of both cultures continuous shipping and

42:43

experimentation. Feature flags let you

42:45

ship continuously with confidence. Roll

42:47

out to 10% of users. Catch issues early.

42:49

Roll back instantly if needed. Built-in

42:51

experimentation means every roll out

42:53

automatically becomes a learning

42:54

opportunity with proper statistical

42:56

analysis showing you exactly how

42:58

features impact your metrics. And

43:00

because it's all in one platform with

43:02

the same product data, analytics that

43:04

should replace everything. Teams across

43:06

your organization can collaborate and

43:08

make datadriven decisions. Companies

43:09

like Notion went from single digit

43:11

experiments per quarter to over 300

43:13

experiments with stats. They ship over

43:15

600 features behind feature flags,

43:17

moving fast while protecting against

43:19

metric regression. Microsoft, Atlashian,

43:21

and Brex use static for the same reason.

43:24

It's the infrastructure that enables

43:25

both speed and reliability at scale.

43:28

They have a generous free tier to get

43:29

started, and pro pricricing for teams

43:31

starts at $150 per month. To learn more

43:33

and get a 30-day enterprise trial, go to

43:35

stats.com/pragmatic.

43:37

And with this, let's get back to the Y2K

43:39

event that Grady was talking about.

43:41

Yeah, I I I I remember how stressful

43:43

that time was leading up to year 2000. I

43:46

think some movies even came out uh

43:47

predicting, you know, h how the world

43:49

would collapse, but there was this fear

43:51

of like will all these systems crash and

43:54

it it it started to become pretty

43:55

intense in in the few months leading up.

43:57

So I I I was, you know, like a a kid at

44:00

that time. But when the year 2000, like

44:03

that was probably the most stressful new

44:05

year because you weren't kind of sure.

44:06

You were hoping, you know, and then

44:08

nothing happened and you're like, okay,

44:10

it was just a hoax. So anyone who who

44:12

went through there uh like kind of

44:14

learned to like not trust these

44:15

predictions. But you're right like

44:17

knowing what know there was so much work

44:18

right to make to make sure that that

44:20

overflow did not like hit at the wrong

44:22

place. Yeah. So here we are mentally put

44:25

yourself in the the first first decade

44:28

of the 2000s is a fun place because well

44:31

yeah the there was the crash but still

44:34

so much fun stuff to do, so much great

44:37

software to be written. We were still

44:38

only limited largely by our imagination.

44:41

Now I'm going to pause for a moment and

44:43

backfill with some history that I hadn't

44:44

mentioned. We've been talking about

44:46

software in general. There was a

44:48

parallel history going on in AI in which

44:50

we saw also some generations. The first

44:53

golden age of AI was in the 40s and 50s

44:56

where you had people such as Herbert

45:00

Simon and Newell and Minsky in

45:02

particular. The focus there was upon

45:04

gosh we could build intelligence

45:06

artificially using symbolic methods. So

45:09

this was the first golden age first

45:12

great age of AI and the ideas of neural

45:15

networks were tried. The the thing they

45:17

built was the snark which was the first

45:20

vacuum tube artificial neuron. It took

45:23

like five vacuum tubes to make a single

45:25

neuron. And there was a report coming

45:27

out of the UK at the time that said

45:29

we're spending a lot of money here but

45:30

by gosh it doesn't work. And so the

45:32

first golden age ended when they

45:34

realized you can't really build anything

45:37

interesting. And furthermore, neural

45:39

networks are a dead end. Largely a dead

45:41

end because we didn't have the

45:42

computational power to do them. We

45:44

didn't have the algorithmic concepts,

45:47

the abstractions to to know what to do

45:50

with them once we had them at scale. The

45:52

second golden age of of AI was really in

45:56

the 80s when you had people like Falcon

45:59

come along and say hey there's another

46:00

way of looking at it and it's looking at

46:02

it through rules. Thus was born the idea

46:04

of machine learning uh things like m and

46:07

the like came upon the scene but there

46:10

too we saw the AI winter come about. By

46:14

the way there was an interesting rise in

46:15

hardware at the time. The list machine

46:17

the thinking machine were all built

46:19

during this time. vibrant periods of

46:21

time of a of computer architectures. So

46:24

you see these kind of feeding into one

46:25

another, but ultimately it failed

46:28

because they didn't scale up once you

46:30

got beyond a few hundred if then

46:32

statements. We simply didn't have a

46:35

means of building inference engines that

46:36

could do anything with them. So here we

46:38

are in exciting time again two first

46:40

decade of the 2000s. AI was kind of you

46:43

know back in in the back rooms. we still

46:46

had a lot of cool things to do and uh

46:49

more and more distributed kind of

46:50

systems plus fueling that also was the

46:53

fact that software was now in the hands

46:55

of individuals through personal

46:57

computers. So the demand for software

46:59

was even greater. I would claim and this

47:02

may be a little controversial. We are in

47:04

the third golden age of software

47:06

engineering but it actually started

47:09

around the turn of the millennium. It's

47:11

not it's not now but it's then. And the

47:14

first indication of the rise of it is we

47:17

saw a new rise in levels of abstraction

47:20

from individual

47:22

components of our software programs to

47:25

whole libraries and packages that were

47:28

part of our platform. Oh, I need to do

47:31

messaging. Well, I'm not going to do

47:32

that on my own machine. I can go out to

47:34

this library which does messaging. I

47:37

need to manage this whole chunk of data.

47:40

Let's, you know, use Hadoop or something

47:42

like that. it wasn't around the time but

47:44

the seeds where it was growing. So we

47:46

again saw a growth in levels of

47:48

abstraction from just simple programs to

47:52

now subcomponents of systems and that

47:55

was the next great shift that happened

47:57

and our methodologies and our languages

48:00

and all that began to follow. So the

48:03

third golden age we've been in for

48:06

several years already. And not to get

48:09

ahead of ourselves, what's happening

48:11

with AI assistance and the like in the

48:13

coding space is in many ways a reaction

48:18

to the growth of those kinds of things

48:20

because we want to accelerate their use.

48:23

We want to we have so many of those

48:25

kinds of libraries out there and not

48:27

enough people know about them. We want

48:29

to accelerate the use of them by having

48:31

aids that help us do so. So that's the

48:34

context in which I put AI agents such as

48:36

cursor and chat tpt in and that they are

48:39

in a way a follow on to the forces that

48:42

have already led us to this third golden

48:44

age. So we are now in a very vibrant

48:47

time but the problems are different from

48:50

the first and second generations. What

48:52

are the problems now? First, it's

48:53

problems of we have so much software.

48:56

How do we manage it? And we have to deal

48:58

with issues of safety and security. Can

49:01

somebody sneak in something that I can't

49:03

trust? How do I defend myself against

49:06

that? It is so easy to inject something

49:08

in the software supply chain. How do I

49:10

prevent the bad guys from putting stuff

49:12

inside there? How do I defend against

49:15

it? the whole history behind stuck necks

49:18

and the like is a good one uh to show

49:21

you know espionage and software. And so

49:24

all of a sudden the human issues that we

49:26

had for much of the history of software

49:28

we were insulated about because it was

49:31

so much part of civilization these human

49:33

issues became front and center clear and

49:36

present for our world. And the other

49:38

element is to the economic issues of it.

49:40

We had now companies that were too big

49:43

to fail. What would happen if a

49:46

Microsoft were to go under? What would

49:47

happen if a Google were to go under?

49:50

They're so economically important to the

49:52

world that the things they do, they

49:55

sneeze in some part of the world catches

49:57

a cold. And so the problems we have now

50:00

in this third golden age of software are

50:03

different than they were than the first

50:05

and second generations, but equally as

50:07

exciting. And then last, we have the the

50:09

ethical issues. because I can do this

50:11

kind of software, it is possible for me

50:13

to track where you are in every moment

50:16

of the day. I can do that. Should I do

50:19

that? Some will say yes, I should

50:21

because it, you know, it's a good thing

50:22

for humanity. Others will say not so

50:25

sure about that.

50:26

>> So, I like how you laid it on. It's very

50:29

interesting, especially through both

50:31

your experience and also sharing the

50:33

history that I think a lot of us don't

50:35

really reflect on, which is how it all

50:36

started and just honestly how young it

50:38

is. If if I mean you know like 70 or 80

50:40

years can be long depending on how old

50:42

you are but it is it's it's not even a

50:44

generation or barely generation.

50:46

>> It's a couple of generations. Yeah.

50:48

>> But one thing that I'm seeing across the

50:50

industry right now which feels very like

50:52

this setup makes sense but one thing

50:54

that kind of feels it contradicts it for

50:56

a lot of software engineers today

50:58

>> is there seems to be an ex existential

51:00

dread that is especially accelerating

51:03

especially over the winter break. What

51:04

happened over the winter break is before

51:06

the winter break, these AI uh LLMs were

51:08

were pretty good for autocomplete.

51:10

Sometimes they could generate this or

51:12

that. And over the winter break, I'm not

51:13

sure if you played with some of I have

51:15

with the new Yeah, with the new models,

51:17

they actually generate really good code

51:20

to the point that I'm starting to trust

51:21

them. And

51:23

>> yes,

51:23

>> as far as the history of software has

51:26

been, my understanding is that software

51:29

developers have written code and it's a

51:30

hard thing to do. And a lot of us, you

51:32

know, it takes years for us to learn and

51:34

to be excellent at it even longer. And

51:36

so a lot of us are starting to have this

51:38

really existential crisis of okay, well

51:41

the machine can write really really good

51:43

software code first of all like WTF and

51:45

how did this happen over the last few

51:47

months and then the question is what

51:49

next? this it feels that it could shake

51:51

the profession because I feel coding has

51:54

been so tightly coupled to software

51:57

engineering and and now it might not be

51:59

you know looking at I guess you know

52:01

like taking a breathe out first and

52:03

looking through the both the history and

52:05

and your your what is your take on

52:07

what's happening right now well let me

52:09

say that this is not the first

52:11

existential crisis the developers have

52:13

faced tell us more they have faced the

52:16

same kind of existential crisis in the

52:18

first and the second generation. So

52:21

that's why I look at this and say, you

52:23

know, this too will pass when I talk to

52:25

people who are concerned about it. Don't

52:27

worry, focus upon the fundamentals

52:30

because those skills are never going to

52:31

go away. I had a chance to meet Grace

52:33

Hopper. She was just delightful, you

52:35

know, fireplug of a woman. Just amazing,

52:37

amazing thing. For for your readers, go

52:40

Google Grace Hopper and David Letterman

52:42

and there's this she appeared on the

52:43

David Letterman show and you'll get a

52:45

sense of her personality.

52:46

>> Well, we're going to link in the show

52:47

notes below. She of course is the one

52:49

who recognized that it was possible here

52:52

we are in the 50s that it was possible

52:54

to separate our software from our

52:56

hardware. This was threatening to those

53:00

who were building the early machines

53:01

because they said you know gosh you

53:03

could never build anything efficient

53:05

because you have to be a tied so closely

53:07

to the machines and many in that field

53:10

and they wrote about it expressed

53:11

concerns that you know this is going to

53:14

destroy what we do and it should have.

53:16

So we had here the beginnings of the

53:18

first compilers. The same thing happened

53:21

with the invention of forran where

53:23

people were saying gosh you know we can

53:25

write tight assembly language better

53:27

than anybody else better than any

53:28

machine can kind of do but that was

53:31

proved wrong when we moved up a level of

53:33

abstraction from the assembly language

53:35

to the higher order programming

53:36

languages. And so you had a set of

53:39

people who were similarly concerned and

53:42

distressed by the changes in levels of

53:44

abstraction because they recognized that

53:46

the skills they had in that time were

53:48

going to go away and they were going to

53:50

be replaced by the very thing themselves

53:53

created. Now you didn't see as much of a

53:56

crisis because there weren't that many

53:59

of us back in that time frame. We're

54:02

talking, you know, a few thousands of

54:03

people now. We're talking millions of

54:06

people who ask quite legitimately the

54:08

question, what does it mean for me? So,

54:11

I've had, as I'm sure you have had, a

54:13

number of, you know, especially young

54:15

developers come up to me and say, Grady,

54:17

what should I do? Am I choosing the

54:19

wrong field? Should I, you know, do

54:22

something different? And I assure them

54:24

that this is actually an exciting time

54:27

to be in software because of the

54:30

following reasons. We are moving up a

54:32

level of abstraction much like what

54:34

happened in the rise from machine

54:36

language to assembly language from

54:38

assembly language to to higher order

54:41

programming languages from higher order

54:44

programming languages to libraries the

54:47

same kind of thing happened and we're

54:50

seeing the same change in levels of

54:52

abstraction and now I as a software

54:55

developer I don't have to worry about

54:57

those details so I view it as something

54:59

that is extraordinarily ly freeing from

55:02

the tedium of which I had to do, but the

55:05

fundamentals still remain. As long as I

55:08

am choosing to build software that

55:10

endures,

55:12

meaning that I'm not going to build it

55:13

and I throw it away. If you're going to

55:14

throw it away, do what you want. That's

55:16

great. And I see a lot of people using

55:19

these agents for that very purpose.

55:21

That's wonderful. You're going to go off

55:23

and automate things you could not have

55:24

afforded to do today. And if you're a

55:26

single user for it, then more power to

55:29

you. This is the hobbyist rarer and the

55:31

hobbyist side of software if you will

55:34

much like we saw in the earliest days of

55:36

personal and computers where people will

55:38

build these things. Great stuff. Great

55:39

ideas will come from it.

55:41

>> I like the comparison. Yes.

55:42

>> Yeah. Great ideas will come from it. You

55:45

know, people will build skills. We'll do

55:47

things we could not have done before.

55:48

We'll automate things that were

55:50

economically not possible, but they're

55:52

not going to endure necessarily, but

55:54

still we will have made a valuable

55:56

impact. And I guess just like in the

55:58

first era where personal people could

55:59

buy it, you will have people come into

56:01

the industry who have honestly nothing

56:02

to do with it and they might bring

56:03

amazing ideas, right? Like back then,

56:05

you know, school school teacher might

56:07

have bought a personal computer. Today I

56:08

I just talked to my neighbor upstairs,

56:10

an accountant. She has instructed Chad

56:12

GBT to build some appcript to uh help

56:16

their accounting teams process a bit

56:18

better because she knows how that thing

56:20

works. Nothing to do with software, but

56:22

now creating their own personal

56:24

throwaway software. by the way.

56:26

>> Yes, absolutely. The same parallels and

56:29

I celebrate that. I encourage it. I

56:31

think it's the most wonderful thing

56:33

which is why we are in this vibrant

56:35

period. In the early days of of the

56:36

personal computer, the very same thing

56:39

happened. You found artists drawn to

56:41

especially the PC and the amigga at the

56:43

time. You found gamers who realized I've

56:46

got a new medium for expression that I

56:48

did not have before and that's why it

56:50

was a very vibrant time. the same thing

56:52

is happening. And so much of the

56:54

lamenting of oh gosh, we have an

56:56

existential crisis are those who are

56:59

narrowly focused upon their industry not

57:02

realizing that what's happening here is

57:04

actually expanding in the industry.

57:07

We're going to see more software written

57:09

by people who are not professionals. And

57:11

I think that's the greatest thing around

57:14

because now we have software much like

57:16

in the in the counterculture era of of

57:20

the personal computer. The same thing is

57:22

happening today as well. I like what

57:24

you're saying. However, one however

57:27

[laughter] however one one thing that I

57:28

also pay attention to uh one person I

57:30

pay attention to is is Dario Amod the

57:32

CEO of Antropic. And the reason I pay

57:34

attention to him is I I try I tend not

57:36

to pay attention to CEOs but he actually

57:38

said about a year ago he said something

57:40

interesting. He says he thinks most code

57:42

will be generated by AI about 90% of it

57:44

maybe in a year and then more and we

57:47

thought that's silly and then he was

57:49

right and code was generated and now he

57:51

said some another thing interesting that

57:53

sounded interesting but the next one

57:55

sounds scary he said I quote software

57:57

engineering will be automatable in 12

57:59

months now this sounds a lot more

58:03

scarier for reasons we know coding is a

58:04

subset of software engineering but he

58:06

said this what is your take on on this

58:08

and you've had you've had a strong

58:10

response already. So,

58:13

>> u I have one or two things to say about

58:15

it. So, first off, I use Claude. I use

58:18

Anthropics work. I think it's it's my

58:20

it's my go-to system. I've been using it

58:23

for problems with JavaScript, with

58:25

Swift, uh with PHP of all things and

58:28

Python. So, I use it and it's it's been

58:31

a great thing for me primarily because,

58:34

you know, there are certain libraries I

58:35

want to use. Google search sucks.

58:38

documentation for these things suck and

58:40

so I can use these agents to accelerate

58:43

my understanding of them. But remember

58:45

also I have a foundation of at least one

58:48

or two years of experience in these

58:50

spaces okay a few decades where I sort

58:53

of understand the fundamentals and

58:55

that's why I said earlier that the

58:57

fundamentals are not going to go away

58:59

and this is true in every engineering

59:00

discipline the fundamentals are not

59:02

going to disappear the tools we apply

59:06

will change so Daario man I I respect

59:10

what you're saying but recognize also

59:12

that Daario has a different point of

59:16

view than I do. He's leading a company

59:18

who needs to make money and it's a

59:22

company who he needs to speak to his

59:24

stakeholders. So outrageous statements

59:26

will be said like that. I think he said

59:28

these kind of things at Davos if I'm not

59:30

mistaken.

59:30

>> It it was very Yes.

59:32

>> And and I'd say politely well I'll use a

59:35

scientific term in terms of how I would

59:37

characterize what Daario said and put it

59:40

in context. It's utter uh

59:43

that's the technical term because I

59:46

think he's profoundly wrong and and he I

59:48

think he's wrong for a number of

59:49

reasons. First, I accept his point of

59:51

view that it's going to accelerate some

59:53

things. Is it going to eliminate

59:55

software engineering? No. I think he has

59:57

a fundamental misunderstanding as to

59:59

what software engineering is. Go back to

60:01

what I said at the beginning. Software

60:03

engineers are the engineers who balance

60:06

these forces. So we use code as one of

60:10

our mechanisms, but it's not the only

60:12

thing that drives us. None of the things

60:14

that he or any of his colleagues are

60:16

talking about attend to any of those

60:19

decision problems that a software

60:21

engineer has to deal with. None of those

60:23

we see within the within the realm of

60:26

automation. His work is primarily

60:28

focused upon the automation at the

60:30

lowest levels which is I would put akin

60:33

to what was happening with compilers in

60:35

these days. That's why I say it's

60:37

another level abstraction. Fear not, O

60:40

developers. Your tools are changing, but

60:43

your problems are not. There's another

60:45

reason why I I push back on what he's

60:47

saying. And that is if you look at

60:49

things like cursor and the like, they

60:52

have mostly been trained upon a set of

60:54

problems that we have seen served over

60:57

and over again. And that's okay. Much

61:00

like I said in the first generation,

61:02

first golden age, we had a certain set

61:04

of problems. And so libraries are built

61:06

around them. The same thing is happening

61:08

here. If I need to build a UI on top of

61:11

CRUD, it's sub winter or some web

61:14

ccentric kind of thing. I can do it. And

61:16

much like your friend, more power to

61:19

them. They can do it themselves because

61:20

the power is there to do so. They're

61:23

going to, you know, probably not build a

61:24

business around it. Some small percent

61:26

of them might do so. But it's enabled

61:28

them to do things they could not do

61:30

before because they're now at a higher

61:32

level abstraction. what Daario neglects

61:34

and I used a a bit of a paraphrase from

61:38

from Shakespeare. There are more things

61:40

in computing Daario that are dreamt of

61:43

in your philosophy. The world of

61:45

computing is far larger than web centric

61:48

systems of scale. So we see many of the

61:51

things applied today on these webric

61:53

systems and I think that's great and

61:55

wonderful but it means that there's

61:58

still a lot of stuff out there that

61:59

hasn't yet been automated. So we have we

62:02

keep pushing these fringes away. So I

62:04

told you those stories at the beginning

62:05

because history is repeating itself

62:07

where some will say history is rhyming

62:10

again. The same kinds of phenomena are

62:12

applying today just at a different level

62:14

of abstraction. So that's the first one.

62:16

Software is bigger than this world of

62:18

software is bigger than what he's

62:19

looking at. It's bigger than just

62:21

software intensive systems. And then

62:23

second, you know, if you look at the

62:26

kinds of systems that most of these

62:28

agents deal with, they are in effect

62:30

automating patterns that we see over and

62:33

over again for which they have been

62:34

trained upon. Patterns themselves are

62:37

new abstractions that are in effect not

62:40

just single algorithms or single

62:42

objects, but they represent societies of

62:45

objects and algorithms that work

62:47

together. These agents are great at

62:49

automating generations of patterns. I

62:51

want to do, you know, this kind of thing

62:53

and I can tell you in English because

62:55

that's how I describe the pattern. So

62:57

anyway, that's why I think he's wrong.

62:59

More power to him. But, you know, I

63:01

think this is an exciting time more than

63:03

things to worry about exist

63:05

existentially. Let me offer another

63:07

story with regards to how we see a shift

63:10

in levels of abstraction. English is a

63:12

very imprecise language full of

63:15

ambiguity and nuance and the like.

63:17

Though one would wonder how could I ever

63:20

make that you know as a useful language

63:22

and the answer is we already do this as

63:24

software engineers. I go to somebody and

63:26

say hey I want my system to do this. It

63:29

kind of looks like this and I give them

63:31

some examples. I do that already. And

63:34

then somebody goes and turns that into

63:35

code. We've moved up a level of

63:37

abstraction to say I'd like it to do

63:39

this. I'll give you a concrete example.

63:41

I'm working with a library I'd never

63:43

touched before. It's the JavaScript D3

63:45

library which allows me to do some

63:47

really fascinating visualizations. I go

63:50

off and search for a site called

63:53

Victorian Engineering Connections. It's

63:55

just this lovely little site where the

63:57

gentleman did this for a museum Andrew

64:01

and you can, you know, put in a name

64:02

like George Bool and you see his name,

64:05

you find things about him and you find

64:07

his social network around him and you

64:09

can go touch it and explore. It's very,

64:11

very cool. And I said,"I want that kind

64:13

of thing, but my gosh, I don't know how

64:14

to do that. So, what can I do?" He gave

64:17

me his code. I realized it uses the D3

64:20

library. I knew nothing about the D3

64:22

library. So, I said to Cursor, "Go build

64:24

me the simplest one possible. Go do it

64:27

out of, you know, five nodes and show

64:29

me." So, I could then study the code.

64:31

And then I could say, "Well, what they

64:32

wanted would really wanted to do is

64:34

this. Go make the nodes look like this,

64:37

depending upon their kind." So, just

64:39

like I would do with a human, I was

64:41

expressing my needs in an English

64:44

language that now all of a sudden I

64:47

didn't need to labor to turn that into

64:49

reality. I could simply have a

64:51

conversation with my tool to help me do

64:54

that. So, it it reduced the distance

64:57

between what I wanted and what it could

65:01

do. And I think that's great. That's a

65:02

breakthrough. But remember, as I said to

65:04

Daario, this only works in those

65:06

circumstances where I'm doing something

65:08

that people have done hundreds and

65:10

hundreds of times before. I could have

65:12

learned it on my own. As Fineman would

65:14

have said, you know, go do it yourself

65:16

because then that's the only way you're

65:17

going to understand. And I my reaction

65:19

is that's great, but there's so much in

65:21

the world I'm curious about. I can't

65:23

understand it all. Let's go, you know,

65:25

let's decide what I want to do. So go do

65:27

it for me. So that's why I say these

65:29

kinds of tools are another shift in the

65:31

levels of abstraction because they're

65:33

reducing the distance from what I'm

65:35

saying my English language to the the

65:37

programming language. Last thing I'll

65:39

say is that you know what do we call a

65:41

language that is precise and expressive

65:44

enough to be able to build executable

65:46

artifacts? We call them programming

65:49

languages. And it just so happens that

65:51

English is a good enough programming

65:53

language much like Cobalt was in that if

65:57

I give it those phrases in a domain that

66:00

is well enough structured, it allows me

66:03

to have good enough solutions that I who

66:05

know those fundamentals can begin

66:07

nudging and cleaning out the pieces.

66:09

That's why the fundamentals are so

66:11

important. And speaking of history

66:13

rhyming, one thing that happened in both

66:15

the first age and the the sec second

66:17

golden age or as we jumped abstractions

66:19

or every time we had an abstraction is

66:22

some skills became obsolete and then

66:24

there was a demand for for new skills.

66:26

For example, when we from assembly level

66:28

the the skill of like knowing how the

66:31

instruction set of a certain board and

66:33

knowing how to optimize it, that became

66:34

obsolete in favor of thinking at a

66:36

higher level. In this jump right now

66:39

where I think it's safe to say we're

66:41

going from we do not need to write any

66:42

more code and the computer will do it

66:44

pretty good and we'll check it and tweak

66:46

it. What do you think will become

66:48

obsolete and what will become more

66:50

important as software professionals?

66:51

>> Great question. The software delivery

66:55

pipeline is far more complex than it

66:58

should be. Uh that my gosh just getting

67:01

something running is hard if you have no

67:03

pipeline. If you're within a company

67:05

such as a Google or a Stripe or

67:07

whatever, you have

67:09

>> you have a huge infrastructure about

67:11

around them.

67:12

>> A custom one.

67:13

>> Yes.

67:14

>> Yeah. A custom one. Yes. And so there is

67:16

lowhanging fruit for the automation of

67:18

those. I mean I don't need a human that

67:20

fills in the edges of those kind of

67:22

things. By the way, I'm talking about in

67:24

effect infrastructure is software.

67:27

[clears throat]

67:27

>> It's not just, you know, not just raw

67:28

lines of code. So, this is lowhanging

67:31

fruit where we could begin seeing these

67:33

agents that say, "Hey, you know, I want

67:36

you to go, you know, gosh, I don't know,

67:38

you know, spin up something for this

67:40

part of the world. I don't want to write

67:42

the code for that stuff because it's

67:43

complex and messy. I'd rather use an

67:46

agent that helps me do it." So there's a

67:48

case where I think you're going to have

67:50

the loss of jobs in those places where

67:53

it's messy and complex because the

67:55

automation has clear economic and you

67:59

know frankly value in terms of security.

68:01

That's a place where people are going to

68:03

need to reskill in the building of

68:05

simple applications and the like. Well,

68:08

I think you know people who had uh who

68:10

had skills in saying I want to build

68:12

this you know thing for iOS or whatever

68:15

they're going to lose you know they're

68:16

going to lose some jobs cuz frankly

68:18

people could do it just by you know

68:20

prompting it that's great that's fine

68:23

because we've enabled a whole another

68:24

generation of folks to do things that

68:26

professionals did in the past exactly

68:28

what happened in the era of PCs

68:30

themselves what should these people do

68:32

move up a level of abstraction start

68:34

worrying about systems so the shift now

68:37

I think is less so from dealing with

68:40

programs and apps to dealing with

68:42

systems themselves and that's where the

68:44

new skill set should come in. If you

68:46

have the skills of knowing how to manage

68:48

complexity at scale if you know as a

68:51

software engineer how to deal with all

68:54

of these multiple forces which are human

68:56

as well as technical your job's not

68:59

going to go away. If anything, there

69:00

will be even greater demand for what

69:02

you're doing because those human skills

69:05

are so rare and delicate.

69:06

>> So, you mentioned the importance of of

69:08

having strong foundations and and you've

69:10

previously said, I'm actually quoting

69:13

you, the field is moving at an incomp

69:15

incomprehensible pace for people without

69:17

deep foundations and a strong model of

69:18

understanding. What foundations would

69:21

you recommend people to look at? both

69:23

students, people who are at university

69:25

studying or looking for their first job

69:27

and also software professionals who you

69:30

know now actually want to go back and

69:31

strengthen those foundations that that

69:33

will be helpful. I find

69:36

my my uh my happy place if you will, my

69:40

sweet space that I retreat back to when

69:42

I'm faced with a difficult problem back

69:44

into systems theory. go read the work of

69:47

of Simon and Newell in the the sciences

69:51

of the artificial. Uh there's a whole

69:53

set of work that's come out on

69:55

complexity and systems from the Santa Fe

69:58

Institute. It's those kinds of

70:00

fundamentals of system theory that

70:03

ground me in the next set of things in

70:05

which I want to build. I think I

70:07

mentioned to you in in one of our our

70:09

previous discussions, I was doing some

70:11

really interesting work on NASA's

70:13

mission to Mars. we were faced with an

70:15

issue of saying, "Hey, you know, we we

70:18

want to, you know, have people go off on

70:20

these long missions. We want to put

70:21

robots on the surface of Mars." And so I

70:23

was commissioned to go off and think

70:25

about that for a while. And in effect, I

70:27

realized NASA wanted to build a howl.

70:30

And you'll notice I've got a how above

70:32

me here.

70:32

>> Yes.

70:32

>> Uh this is I I'm a great one for

70:34

history. This is my sword of Dicles that

70:37

passes behind me. If you know the

70:39

history behind the sword of Dacles, the

70:41

king Damacles, he was always kept humble

70:44

because at his throne there was a sword

70:47

right above him on a thread. So he felt,

70:50

you know, constantly, you know, unease.

70:53

And this is why I have Hal behind me as

70:55

well. For for some reason, NASA didn't

70:57

want the kill all the astronauts use

70:59

case. Don't understand why, but we we

71:02

threw that one kind of out. But if you

71:04

look at the problems there, this is a

71:05

systems engineering problem because you

71:08

needed something that was embodied in

71:10

the spacecraft.

71:12

Much of the kind of software we have

71:13

today in AI is disembodied. Uh the

71:16

cursor, the copilot and like they have

71:19

no connection to the physical world. So

71:21

our work was primarily in embodied

71:23

cognition. Around the same time, I was

71:26

studying under a number of

71:27

neuroscientists trying to better

71:29

understand the architecture of the

71:30

brain. And here's where the fundamentals

71:34

of that came together for me because I

71:36

began to realize there are some certain

71:38

structures we see in systems engineering

71:42

that I can apply to the structure of

71:44

these really large systems. Taking ideas

71:47

of Marvin Minsky society of mind which

71:50

is a way of of systems architecting

71:52

multiple agents. We're in agent

71:54

programming now which I think people are

71:55

just beginning to tap upon how those

71:58

things apply. they need to go look at

72:00

systems theory because that problem has

72:02

been looked at with multiple agents

72:03

already. Go read Minsky society of mine.

72:06

You'll see some ideas that will guide

72:08

you there in dealing with multiple

72:10

agents. The ideas from bears of uh which

72:13

was manifest in early AI systems such as

72:16

hearsay. The ideas of of global

72:19

workspaces, blackboards and the like.

72:21

Another architectural element. the ideas

72:24

of subumption architectures from uh from

72:27

Rodney Brooks. Uh his was influenced by

72:30

by biological things. If you look at a

72:32

cockroach, a cockroach is not a very

72:35

intelligent thing. But we know there's

72:38

there's there's not a central brain in

72:39

it and yet it does some magnificent

72:41

things. We have been able to map the

72:44

entire neural network of the common

72:46

worm. We're not flush with, you know,

72:48

evil worms running around the world.

72:50

There's something else going on there.

72:52

But biological systems have an

72:54

architecture to them. So to go back to

72:56

your question by looking at architecture

72:59

from a systems point of view from

73:01

biology from uh neurology from systems

73:05

in in the real world as Herbert Herbert

73:07

Simon and New did this is what's guiding

73:10

me to the next generation of systems and

73:12

so I would urge you know people looking

73:14

at systems now go back to those

73:17

fundamentals. There is nothing new under

73:19

the sun in many ways. We've just, you

73:22

know, applied them in different ways.

73:24

Those fundamentals in engineering,

73:27

they're still there. And then as

73:28

closing, uh, you gave some really good

73:30

recommendations to read, to ponder, to

73:33

educate yourself, and and get ideas that

73:35

will probably useful in this new world,

73:37

especially as as we're going to have a

73:38

lot more agents. For example, like I now

73:40

just heard that agents will be part of

73:42

Windows 11 and operating system. So,

73:44

they will be everywhere. But looking

73:46

back at the the previous rises of

73:49

abstractions and also the previous

73:51

golden ages, the people who who did

73:53

great at the start of a new golden age

73:56

or at the start of a new abstraction

73:58

even if they were not amazing at the

73:59

previous one, what have you seen those

74:02

people do? Like what and and based on

74:04

this historical lesson, what would you

74:06

recommend if if we were just kind to

74:07

kind of copy successful, you know,

74:10

things that that that people did because

74:12

I feel this is an opportunity as well,

74:13

right? we have this rise of abstraction.

74:15

A lot of people will be paralyzed. But

74:16

there will be new superstars being born

74:18

who will be basically riding the wave

74:20

and they will be the experts of uh

74:22

agents of of AI of building these new

74:24

and complex a lot more complex systems

74:26

that we could have done before.

74:28

>> So I as I alluded to earlier the main

74:32

thing that constrains us in software is

74:34

our imagination. Well actually that's

74:36

where we begin. We're actually not

74:37

constrained by imagination. We can dream

74:39

up amazing things and yet we are

74:41

constrained by the laws of physics by

74:43

how we build algorithms and the like

74:44

ethical issues and the like. So what's

74:47

happening now is that you are actually

74:50

being freed because some of the

74:52

friction, some of the constraints, some

74:55

of the costs of development are actually

74:58

disappearing for you. Which means now I

75:01

could put my attention upon my

75:03

imagination to build things that simply

75:06

were not possible before. I could not

75:09

have done them because I couldn't have

75:10

raised a teen to do them. I couldn't

75:12

have afforded that. I could not have uh

75:14

done it because I couldn't have had the

75:16

reach in the world as I did before. So

75:19

think of it as an opportunity. So it's

75:22

not a loss. It'll be a loss for some who

75:24

have a vested interest in the economics

75:26

of this, but it's an a net gain because

75:29

now all of a sudden these things unleash

75:32

my imagination to allow me to do things

75:35

that were simply not possible before in

75:37

the real world. This is an exciting time

75:40

to be in the industry. It's frightening

75:42

at the same time, but that's as it

75:44

should be. When there's an opportunity

75:46

where you're on the cusp of something

75:47

wonderful, you should look at the abyss

75:50

and say, you can either take a look and

75:52

say, "Crap, I'm gonna fall into it." Or

75:54

you can say, "No, I'm going to leap and

75:57

I'm going to soar. This is the time to

75:59

soar."

76:00

>> Grady, thank you so much for giving us

76:02

the the overview, the outlook, and and

76:04

for and for a little bit of perspective.

76:06

I I personally really appreciate this,

76:08

>> and I hope I offered some hope as well.

76:11

>> I think you definitely did. This was a

76:13

really inspiring episode. Thank you,

76:15

Grady. One thing that really struck with

76:17

me was when Grady pointed out that

76:18

developers [music] have faced this exact

76:20

existential crisis before, multiple

76:23

times, in fact. When compilers came

76:25

along, assembly programmers thought

76:26

their careers were over. When highle

76:28

languages emerged, [music] the same fear

76:30

ripped through the industry. And each

76:32

time the people who understood what

76:34

actually was happening, that [music] it

76:35

was just a new level of traction, they

76:37

came out ahead. This historical lens is

76:39

something that I think we often miss

76:41

when some of us are caught up in the

76:42

[music] day-to-day anxiety of new AI

76:44

capabilities. I don't think we're at the

76:46

end of software engineering and neither

76:48

does a Grady. We're at the beginning of

76:50

another chapter and if history has any

76:52

guide, it's going to [music] be a pretty

76:53

exciting one. If you found this episode

76:55

interesting, please do subscribe in your

76:57

favorite podcast platform and [music] on

76:58

YouTube. A special thank you if you also

77:00

leave a rating on the show. Thanks and

77:03

see you in the next one.

Interactive Summary

In this conversation, software engineering pioneer Grady Booch discusses the evolution of the field through three distinct 'golden ages.' He walks through the history of rising abstractions—from the early days of Margaret Hamilton coining the term 'software engineering' to the current era of massive platforms and AI agents. Booch argues that while AI-driven tools represent a significant shift, they are another level of abstraction rather than an existential threat to the profession. He critiques the notion that software engineering will be fully automated soon, emphasizing that the core of the discipline involves balancing complex technical, economic, and ethical forces that still require human judgment. His advice to modern developers is to focus on fundamental systems theory and move from thinking about simple programs to architecting large-scale systems.

Suggested questions

5 ready-made prompts

Recently Distilled

Videos recently processed by our community