WEBVTT

1
00:00:00.120 --> 00:00:03.720
<v Speaker 1>You know, there is this really profound, almost kind of

2
00:00:03.799 --> 00:00:05.320
<v Speaker 1>unsettling concept in.

3
00:00:05.400 --> 00:00:08.759
<v Speaker 2>Linguistics, Oh right, the idea that the language you use

4
00:00:08.839 --> 00:00:10.199
<v Speaker 2>fundamentally limits.

5
00:00:09.880 --> 00:00:12.839
<v Speaker 1>Your thoughts exactly. The theory argues that if you don't

6
00:00:12.839 --> 00:00:15.800
<v Speaker 1>have the vocabulary or like the grammatical structure to describe

7
00:00:15.800 --> 00:00:18.600
<v Speaker 1>a concept, you physically cannot conceptualize it.

8
00:00:18.760 --> 00:00:22.719
<v Speaker 2>Yeah, you're basically trapped inside the borders of your own vocabulary.

9
00:00:22.800 --> 00:00:26.399
<v Speaker 1>Right, And today's deep dive into Robert W. Sebesta's definitive

10
00:00:26.440 --> 00:00:31.079
<v Speaker 1>text Concepts of Programming Languages takes that exact linguistic theory

11
00:00:31.320 --> 00:00:33.280
<v Speaker 1>and applies it to the digital world.

12
00:00:33.079 --> 00:00:35.679
<v Speaker 2>Which is such a fascinating lens to view this through.

13
00:00:35.840 --> 00:00:38.960
<v Speaker 1>It really is. Our mission today is to decode, you know,

14
00:00:39.039 --> 00:00:41.679
<v Speaker 1>why programming languages are built the way they are. We're

15
00:00:41.719 --> 00:00:43.920
<v Speaker 1>going to look at the hidden trade offs their designers

16
00:00:44.000 --> 00:00:47.880
<v Speaker 1>made and how these invisible architectures shape the modern digital

17
00:00:47.920 --> 00:00:50.520
<v Speaker 1>infrastructure that you interact with every single day.

18
00:00:50.640 --> 00:00:53.479
<v Speaker 2>Because looking at the blueprints of these languages, it reveals

19
00:00:53.520 --> 00:00:56.960
<v Speaker 2>a lot about the hard physical constraints and the deeply

20
00:00:57.079 --> 00:01:02.399
<v Speaker 2>human decisions that gave us everything from modern artificial intelligence

21
00:01:02.439 --> 00:01:04.519
<v Speaker 2>to global banking systems.

22
00:01:04.920 --> 00:01:07.079
<v Speaker 1>Yeah, and some of those decisions were brilliant and some

23
00:01:07.159 --> 00:01:09.680
<v Speaker 1>were well, deeply flawed.

24
00:01:09.439 --> 00:01:13.480
<v Speaker 2>Very flawed. But we aren't here to learn syntax, you know.

25
00:01:14.040 --> 00:01:17.359
<v Speaker 2>We are analyzing the history of digital thought itself.

26
00:01:17.280 --> 00:01:20.840
<v Speaker 1>Absolutely, But before we can even judge that history, we

27
00:01:20.959 --> 00:01:23.879
<v Speaker 1>really have to understand the metrics, like what makes a

28
00:01:23.959 --> 00:01:25.400
<v Speaker 1>language good or bad?

29
00:01:25.519 --> 00:01:26.359
<v Speaker 2>Right, the criteria?

30
00:01:26.480 --> 00:01:29.760
<v Speaker 1>Yeah, And the fascinating thing is how drastically those metrics

31
00:01:29.760 --> 00:01:33.439
<v Speaker 1>shifted over time. If you look the nineteen fifties, a

32
00:01:33.560 --> 00:01:36.560
<v Speaker 1>language was evaluated almost entirely on machine.

33
00:01:36.239 --> 00:01:39.959
<v Speaker 2>Efficiency because the hardware was astronomically expensive back then, right,

34
00:01:40.000 --> 00:01:43.120
<v Speaker 2>the computer cost millions and the programmers were relatively cheap.

35
00:01:43.439 --> 00:01:45.719
<v Speaker 1>But by time we hit the nineteen seventies, the economists

36
00:01:45.760 --> 00:01:50.319
<v Speaker 1>completely flipped. The evaluation became totally human centric.

37
00:01:50.480 --> 00:01:53.560
<v Speaker 2>Yeah, it became all about readability and write ability because

38
00:01:53.599 --> 00:01:56.840
<v Speaker 2>humans had to read it exactly. That shift was essentially

39
00:01:56.879 --> 00:02:00.519
<v Speaker 2>an economic survival tactic. The software industry at a wall

40
00:02:00.519 --> 00:02:03.519
<v Speaker 2>when they realize the life cycle of software isn't just

41
00:02:03.560 --> 00:02:05.400
<v Speaker 2>about you know, writing code once.

42
00:02:05.200 --> 00:02:07.040
<v Speaker 1>Right, You don't just write it and walk away.

43
00:02:07.079 --> 00:02:11.560
<v Speaker 2>No, not at all. The massive hidden financial drain is maintenance.

44
00:02:12.360 --> 00:02:16.280
<v Speaker 2>Sebesta's text highlights that for large systems with long lifetimes,

45
00:02:16.639 --> 00:02:19.680
<v Speaker 2>maintenance costs often run two to four times higher than

46
00:02:19.680 --> 00:02:21.159
<v Speaker 2>the initial development cost.

47
00:02:21.280 --> 00:02:23.919
<v Speaker 1>Wow, two to four times Yeah.

48
00:02:23.520 --> 00:02:25.400
<v Speaker 2>So I mean if you write a program that is

49
00:02:25.560 --> 00:02:29.280
<v Speaker 2>mathematically efficient but impossible for a future human to decipher,

50
00:02:29.680 --> 00:02:32.719
<v Speaker 2>it becomes an immense financial liability.

51
00:02:32.159 --> 00:02:36.039
<v Speaker 1>Which brings up orthogonality. Oh yeah, a big one. It's

52
00:02:36.039 --> 00:02:38.840
<v Speaker 1>a huge factor in whether a language is readable and writeable.

53
00:02:39.240 --> 00:02:41.840
<v Speaker 1>But I'll admit it sounds like a terrifying math term.

54
00:02:41.919 --> 00:02:43.240
<v Speaker 2>It does sound a bit intimidating.

55
00:02:43.319 --> 00:02:46.719
<v Speaker 1>Okay, let's unpack this. Letn write an analogy. Worthogonality is

56
00:02:46.840 --> 00:02:51.080
<v Speaker 1>like having a bucket of standard Lego bricks. I like that.

57
00:02:51.120 --> 00:02:53.879
<v Speaker 1>You can build absolutely anything you want because every single

58
00:02:53.919 --> 00:02:56.199
<v Speaker 1>brick clicks together perfectly with any other brick.

59
00:02:56.319 --> 00:02:57.280
<v Speaker 2>Right, They're universal.

60
00:02:57.520 --> 00:02:59.960
<v Speaker 1>Yeah. A lack of orthogonality, on the other hand, is

61
00:03:00.080 --> 00:03:03.599
<v Speaker 1>like having a bunch of highly specific action figure accessories

62
00:03:03.599 --> 00:03:06.719
<v Speaker 1>that only fit into the hands of one specific toy.

63
00:03:06.759 --> 00:03:09.479
<v Speaker 2>And the cognitive load of that action figure approach is

64
00:03:09.560 --> 00:03:11.759
<v Speaker 2>exactly what designers try to avoid.

65
00:03:11.759 --> 00:03:14.560
<v Speaker 1>Because you have to memorize every single exception exactly.

66
00:03:15.080 --> 00:03:18.680
<v Speaker 2>In language design, orthogonality means you have a relatively small

67
00:03:18.719 --> 00:03:21.439
<v Speaker 2>set of primitive constructs that can be combined in a

68
00:03:21.520 --> 00:03:24.479
<v Speaker 2>small number of consistent ways, So no surprises.

69
00:03:24.599 --> 00:03:24.800
<v Speaker 1>Right.

70
00:03:25.479 --> 00:03:29.800
<v Speaker 2>Critically, every possible combination is legal and meaningful. There are

71
00:03:29.840 --> 00:03:34.439
<v Speaker 2>no weird exceptions to memorize. The text illustrates this beautifully

72
00:03:34.439 --> 00:03:36.759
<v Speaker 2>by comparing early computer architectures.

73
00:03:36.840 --> 00:03:39.039
<v Speaker 1>Oh, the Vax versus IBM example.

74
00:03:39.159 --> 00:03:43.400
<v Speaker 2>Yeah, the Vax mini computer featured an orthogonal thirty two

75
00:03:43.479 --> 00:03:46.919
<v Speaker 2>bit edition instruction. It allowed the operands to live in

76
00:03:46.960 --> 00:03:48.560
<v Speaker 2>any combination of memory.

77
00:03:48.280 --> 00:03:50.560
<v Speaker 1>Or registers, so it didn't matter where the data was.

78
00:03:50.800 --> 00:03:54.159
<v Speaker 2>Exactly, the instruction executed the exact same way regardless.

79
00:03:54.319 --> 00:03:58.319
<v Speaker 1>The consequence of the older IBM mainframe design, by contrast,

80
00:03:59.000 --> 00:04:01.960
<v Speaker 1>was this mass of cognitive burden on the programmer. It

81
00:04:02.000 --> 00:04:03.360
<v Speaker 1>is completely non orthogonal.

82
00:04:03.560 --> 00:04:07.000
<v Speaker 2>It required entirely different instructions depending on where the data lived.

83
00:04:07.199 --> 00:04:09.879
<v Speaker 1>Right, and certain combinations just weren't allowed at all. You

84
00:04:09.879 --> 00:04:13.479
<v Speaker 1>spend half your time fighting the language's arbitrary rules instead

85
00:04:13.520 --> 00:04:16.079
<v Speaker 1>of solving the actual problem. Yeah.

86
00:04:16.160 --> 00:04:19.319
<v Speaker 2>But even if you have perfect orthogonality, you can still

87
00:04:19.399 --> 00:04:22.720
<v Speaker 2>ruin a language's readability if you obscure the context.

88
00:04:22.920 --> 00:04:23.680
<v Speaker 1>Oh. Absolutely.

89
00:04:23.720 --> 00:04:27.040
<v Speaker 2>A perfect example of this is the Unix operating system.

90
00:04:27.439 --> 00:04:30.680
<v Speaker 2>The command REP is famous for being incredibly powerful but

91
00:04:31.160 --> 00:04:32.720
<v Speaker 2>totally baffling to look at.

92
00:04:33.000 --> 00:04:34.079
<v Speaker 1>It just looks like a typo.

93
00:04:34.319 --> 00:04:36.680
<v Speaker 2>It really does. The appearance of the word tells you

94
00:04:36.800 --> 00:04:39.519
<v Speaker 2>nothing about its function. People just memorize it as a

95
00:04:39.519 --> 00:04:43.079
<v Speaker 2>search tool, but its syntax is deeply tied to the

96
00:04:43.120 --> 00:04:45.680
<v Speaker 2>context of a completely different, older tool.

97
00:04:45.800 --> 00:04:48.759
<v Speaker 1>Right. It's an acronym born from the old Unix text

98
00:04:48.920 --> 00:04:52.160
<v Speaker 1>editor EAD. To search for something globally, you type G,

99
00:04:52.600 --> 00:04:55.480
<v Speaker 1>then the slash, then the regular expression you were looking for,

100
00:04:55.560 --> 00:04:57.759
<v Speaker 1>another slash, and P for print.

101
00:04:58.040 --> 00:04:59.879
<v Speaker 2>So g regular expression.

102
00:04:59.480 --> 00:05:02.560
<v Speaker 1>P exactly GRIP. So if you don't know the history

103
00:05:02.560 --> 00:05:04.879
<v Speaker 1>of a nineteen seventies text editor, the command just looks

104
00:05:04.879 --> 00:05:05.959
<v Speaker 1>like random keystrokes.

105
00:05:06.000 --> 00:05:10.800
<v Speaker 2>Because context dictates meaning, and beyond readability, there is reliability,

106
00:05:10.839 --> 00:05:14.759
<v Speaker 2>which heavily depends on type checking, ensuring.

107
00:05:14.439 --> 00:05:17.600
<v Speaker 1>The data being passed around actually matches what the program expects.

108
00:05:18.000 --> 00:05:22.160
<v Speaker 2>Right, the original C language famously omitted parameter type checking.

109
00:05:22.759 --> 00:05:25.600
<v Speaker 2>You could pass a floating point representation of a number

110
00:05:25.839 --> 00:05:28.680
<v Speaker 2>into a function that was strictly expecting an integer.

111
00:05:28.439 --> 00:05:31.600
<v Speaker 1>And because the bitstring format of a float is completely

112
00:05:31.639 --> 00:05:34.879
<v Speaker 1>different from an integer at the machine level, the CPU

113
00:05:35.040 --> 00:05:37.879
<v Speaker 1>just blindly reads those float bits as if they were

114
00:05:37.879 --> 00:05:38.399
<v Speaker 1>an integer.

115
00:05:38.560 --> 00:05:42.120
<v Speaker 2>It results in total untraceable garbage data.

116
00:05:42.800 --> 00:05:45.920
<v Speaker 1>But there's a tension here that seems almost impossible to resolve.

117
00:05:46.519 --> 00:05:50.680
<v Speaker 1>If you prioritize extreme readability and strict reliability, the code

118
00:05:50.680 --> 00:05:51.759
<v Speaker 1>gets endlessly.

119
00:05:51.480 --> 00:05:53.160
<v Speaker 2>Verbose, right, yes, very wordy.

120
00:05:53.240 --> 00:05:56.279
<v Speaker 1>But if you try to make it highly expressive, I imagine

121
00:05:56.160 --> 00:05:58.519
<v Speaker 1>you start losing the humans who have to maintain it.

122
00:05:58.759 --> 00:06:00.199
<v Speaker 1>How do designers balance that?

123
00:06:00.600 --> 00:06:04.160
<v Speaker 2>It is the defining trade off in language design. Prioritizing

124
00:06:04.199 --> 00:06:08.160
<v Speaker 2>pure expressivity gives you a language like APL. APL incorporates

125
00:06:08.199 --> 00:06:11.680
<v Speaker 2>an enormous number of highly powerful, specialized operators. You can

126
00:06:11.720 --> 00:06:15.639
<v Speaker 2>execute a massive, complex matrix calculation in a single line.

127
00:06:15.439 --> 00:06:17.160
<v Speaker 1>Of code, which sounds great on paper.

128
00:06:17.399 --> 00:06:20.360
<v Speaker 2>It does, but the cost of that conciseness is that

129
00:06:20.399 --> 00:06:24.560
<v Speaker 2>the code looks like alien hieroglyphics. Daniel McCracken, a prominent

130
00:06:24.560 --> 00:06:28.600
<v Speaker 2>computer science author, once spent four hours deciphering a single

131
00:06:28.759 --> 00:06:32.120
<v Speaker 2>four line APL program. Wait four hours for four live

132
00:06:32.279 --> 00:06:36.439
<v Speaker 2>four hours. When code becomes that dense, readability basically drops

133
00:06:36.439 --> 00:06:36.920
<v Speaker 2>to zero.

134
00:06:37.160 --> 00:06:39.959
<v Speaker 1>That is wild. But you know, we keep evaluating these

135
00:06:40.040 --> 00:06:42.920
<v Speaker 1>languages based on human readability. But humans aren't the ones

136
00:06:42.959 --> 00:06:43.920
<v Speaker 1>executing the code.

137
00:06:44.040 --> 00:06:45.519
<v Speaker 2>No, the machine is right.

138
00:06:45.920 --> 00:06:49.720
<v Speaker 1>The physical hardware is a dictator here. It fundamentally forces

139
00:06:49.839 --> 00:06:53.079
<v Speaker 1>software to look a certain way. Specifically because of the

140
00:06:53.639 --> 00:06:54.759
<v Speaker 1>von Neuman bottleneck.

141
00:06:55.000 --> 00:06:57.959
<v Speaker 2>Yeah, nearly all computers since the nineteen forties operate on

142
00:06:57.959 --> 00:07:02.120
<v Speaker 2>the von Neumann architecture. The defining characteristic is that the

143
00:07:02.160 --> 00:07:05.759
<v Speaker 2>memory where the data and instructions reside is physically separated

144
00:07:05.759 --> 00:07:08.600
<v Speaker 2>from the CPU where the execution actually.

145
00:07:08.279 --> 00:07:10.959
<v Speaker 1>Happens, and they are connected by a data bus exactly.

146
00:07:11.040 --> 00:07:13.959
<v Speaker 1>So to visualize that bottleneck, it's like having a massive,

147
00:07:13.959 --> 00:07:16.879
<v Speaker 1>sprawling library from memory full of all the data. Right.

148
00:07:17.639 --> 00:07:20.720
<v Speaker 1>But the CPU is this genius speed reader locked in

149
00:07:20.720 --> 00:07:24.000
<v Speaker 1>a completely separate room. The only way they can communicate

150
00:07:24.120 --> 00:07:26.519
<v Speaker 1>is through a tiny, slow dumbwaiter.

151
00:07:26.680 --> 00:07:27.800
<v Speaker 2>That's a great way to put it.

152
00:07:27.920 --> 00:07:30.279
<v Speaker 1>To do any work, the speed reader have to request

153
00:07:30.279 --> 00:07:32.759
<v Speaker 1>a specific book, wait for the dumbwaiter to bring it,

154
00:07:33.160 --> 00:07:36.319
<v Speaker 1>read one line, send it back, request another book, and

155
00:07:36.360 --> 00:07:36.680
<v Speaker 1>so on.

156
00:07:36.959 --> 00:07:39.839
<v Speaker 2>And that fetch execute cycle is the heartbeat of the machine,

157
00:07:39.879 --> 00:07:44.240
<v Speaker 2>and that dumbwaiter is the bottleneck. The genius of imperative

158
00:07:44.279 --> 00:07:48.519
<v Speaker 2>programming languages like see Java and fortran is that they

159
00:07:48.560 --> 00:07:52.120
<v Speaker 2>are direct software models of that physical hardware.

160
00:07:52.399 --> 00:07:54.839
<v Speaker 1>So variables aren't just an abstract math concept.

161
00:07:54.959 --> 00:07:58.560
<v Speaker 2>Now. Variables don't exist because they are conceptually elegant. They

162
00:07:58.600 --> 00:08:03.000
<v Speaker 2>exist to directly models specific memory cells in that library.

163
00:08:02.720 --> 00:08:05.680
<v Speaker 1>And the assignment statement, like saying exquos five, is literally

164
00:08:05.680 --> 00:08:09.199
<v Speaker 1>just modeling the physical operation of moving data onto that

165
00:08:09.279 --> 00:08:10.759
<v Speaker 1>dumbwaiter and dropping it into a.

166
00:08:10.680 --> 00:08:14.120
<v Speaker 2>Specific cell precisely. And iterative loops exist for the exact

167
00:08:14.120 --> 00:08:18.199
<v Speaker 2>same reason. On a von Numann machine, sequentially executing instructions

168
00:08:18.240 --> 00:08:20.680
<v Speaker 2>located next to each other in memory and then branching

169
00:08:20.720 --> 00:08:23.399
<v Speaker 2>back to repeat them is the absolute fastest way to

170
00:08:23.439 --> 00:08:24.160
<v Speaker 2>process data.

171
00:08:24.480 --> 00:08:26.160
<v Speaker 1>Okay, I have to push back on this a little

172
00:08:26.199 --> 00:08:29.120
<v Speaker 1>because the implications are kind of wild. We're saying that

173
00:08:29.480 --> 00:08:34.759
<v Speaker 1>the fundamental building blocks of modern programming variables, assignments, loops

174
00:08:35.320 --> 00:08:38.320
<v Speaker 1>aren't necessarily the natural way for human brains to solve

175
00:08:38.399 --> 00:08:39.559
<v Speaker 1>mathematical logic.

176
00:08:39.759 --> 00:08:40.240
<v Speaker 2>That's right.

177
00:08:40.399 --> 00:08:43.159
<v Speaker 1>They only exist because a guy in the nineteen forties

178
00:08:43.559 --> 00:08:47.000
<v Speaker 1>decided to physically separate the processor from the memory to

179
00:08:47.080 --> 00:08:50.759
<v Speaker 1>save on vacuum tubes. We are literally thinking in the

180
00:08:50.799 --> 00:08:53.080
<v Speaker 1>shape of a mid century circuit board.

181
00:08:53.279 --> 00:08:56.120
<v Speaker 2>If we connect this to the bigger picture, that hardware

182
00:08:56.200 --> 00:09:01.279
<v Speaker 2>architecture completely dominated software design. There are all alternative paradigms

183
00:09:01.360 --> 00:09:05.200
<v Speaker 2>like functional programming languages which calculate using mathematical functions without

184
00:09:05.240 --> 00:09:07.440
<v Speaker 2>standard variables or assignment statements.

185
00:09:07.480 --> 00:09:09.080
<v Speaker 1>But they aren't the default. No.

186
00:09:09.200 --> 00:09:13.159
<v Speaker 2>They have historically struggled to achieve mainstream dominance because translating

187
00:09:13.200 --> 00:09:18.240
<v Speaker 2>functional concepts onto imperative von Neuman hardware inherently introduces inefficiencies.

188
00:09:18.559 --> 00:09:20.399
<v Speaker 2>The hardware prefers its own reflection.

189
00:09:20.919 --> 00:09:23.960
<v Speaker 1>Man that is fascinating. Let's look at the pioneers who

190
00:09:24.000 --> 00:09:26.919
<v Speaker 1>first tried to bridge the gap between human thought and

191
00:09:26.960 --> 00:09:30.879
<v Speaker 1>that rigid hardware. The story essentially starts in nineteen forty

192
00:09:30.919 --> 00:09:34.799
<v Speaker 1>five in a remote Bavarian village with Conrad.

193
00:09:34.519 --> 00:09:39.799
<v Speaker 2>Zeus Zuusi's environment was uniquely isolating. His lab in Berlin

194
00:09:39.960 --> 00:09:43.480
<v Speaker 2>was destroyed by Allied bombing, so he relocated to Hinterstein

195
00:09:43.559 --> 00:09:46.159
<v Speaker 2>and worked without access to a functioning computer.

196
00:09:46.440 --> 00:09:49.039
<v Speaker 1>Heeb no computer at all, none, and in.

197
00:09:48.919 --> 00:09:55.120
<v Speaker 2>That isolation he invented plangcolicol, the very first programming language.

198
00:09:55.159 --> 00:09:58.440
<v Speaker 1>And he didn't just build like a basic calculator language either.

199
00:09:58.919 --> 00:10:03.000
<v Speaker 1>He designed advance data structures, including nested records, even wrote

200
00:10:03.039 --> 00:10:05.559
<v Speaker 1>forty nine pages of algorithms to play chess in Plank

201
00:10:05.559 --> 00:10:07.519
<v Speaker 1>cal core, which is incredible, and he wasn't even a

202
00:10:07.559 --> 00:10:09.320
<v Speaker 1>chess expert. He was just utilizing the rules of the

203
00:10:09.320 --> 00:10:12.200
<v Speaker 1>game to prove his language could handle complex conditional logic.

204
00:10:12.720 --> 00:10:16.159
<v Speaker 1>He even implemented mathematical assertions to prove his code was correct,

205
00:10:16.360 --> 00:10:18.759
<v Speaker 1>which is a feature you see in modern Java today.

206
00:10:18.919 --> 00:10:21.480
<v Speaker 2>Yeah. The historical tragedy there is that his work remained

207
00:10:21.519 --> 00:10:23.440
<v Speaker 2>unpublished until nineteen seventy two.

208
00:10:23.519 --> 00:10:25.120
<v Speaker 1>Oh wow, so no one knew about.

209
00:10:24.879 --> 00:10:28.639
<v Speaker 2>It, right, The computing world had to independently reinvent all

210
00:10:28.679 --> 00:10:33.080
<v Speaker 2>of those concepts. Throughout the early nineteen fifties, developers relied

211
00:10:33.120 --> 00:10:36.159
<v Speaker 2>on pseudocodes like short code and speed coding, and those

212
00:10:36.159 --> 00:10:40.840
<v Speaker 2>were slow, right extremely slow. They were pure interpreters, essentially

213
00:10:40.879 --> 00:10:45.360
<v Speaker 2>simulating hardware capabilities like floating point math that the physical

214
00:10:45.399 --> 00:10:49.519
<v Speaker 2>machines lacked. Because the software was simulating non existent hardware,

215
00:10:49.559 --> 00:10:51.879
<v Speaker 2>the execution was just agonizingly slow.

216
00:10:52.039 --> 00:10:54.879
<v Speaker 1>But that dynamic shifted completely in nineteen fifty four with

217
00:10:54.919 --> 00:10:58.480
<v Speaker 1>the IBM seven oh four. It finally included hardware support

218
00:10:58.480 --> 00:11:01.480
<v Speaker 1>for floating point math, which remove the primary excuse for

219
00:11:01.600 --> 00:11:03.120
<v Speaker 1>using slow interpreters, and.

220
00:11:03.039 --> 00:11:05.879
<v Speaker 2>That hardware upgrade opened the door for John Bachis to

221
00:11:05.919 --> 00:11:07.039
<v Speaker 2>invent Fortran.

222
00:11:06.759 --> 00:11:08.639
<v Speaker 1>The first major compiled language.

223
00:11:08.759 --> 00:11:12.120
<v Speaker 2>Yes, and the economic environment of the nineteen fifties dictated

224
00:11:12.120 --> 00:11:16.840
<v Speaker 2>FORTRAN's entire design philosophy. Computers cost millions of dollars, while

225
00:11:16.879 --> 00:11:20.399
<v Speaker 2>programmer salaries were a rounding error by comparison, so efficiency

226
00:11:20.480 --> 00:11:23.080
<v Speaker 2>was king. The only metric that mattered was the raw

227
00:11:23.159 --> 00:11:27.720
<v Speaker 2>execution speed of the compiled code. Bacchus's team dedicated the

228
00:11:27.840 --> 00:11:30.919
<v Speaker 2>vast majority of their effort to writing an optimizing compiler

229
00:11:31.240 --> 00:11:36.639
<v Speaker 2>capable of generating machine code that rivaled handwritten assembly language inefficiency.

230
00:11:37.000 --> 00:11:40.600
<v Speaker 1>Here's where it gets really interesting, though. The original documentation

231
00:11:40.720 --> 00:11:45.399
<v Speaker 1>for Fortran boldly claimed that the language would eliminate coding

232
00:11:45.519 --> 00:11:47.200
<v Speaker 1>errors and the debugging process.

233
00:11:47.360 --> 00:11:49.960
<v Speaker 2>Laughs. Yeah, that was incredibly optimistic.

234
00:11:50.039 --> 00:11:52.919
<v Speaker 1>Obviously that didn't happen, but it's fascinating how that sheer

235
00:11:53.000 --> 00:11:58.240
<v Speaker 1>optimism masked the brutal realities of early programming. Fortran I

236
00:11:58.279 --> 00:12:00.320
<v Speaker 1>didn't even have independent compilation.

237
00:12:00.159 --> 00:12:02.639
<v Speaker 2>Which was a massive operational hurdle. If you needed to

238
00:12:02.759 --> 00:12:05.200
<v Speaker 2>change a single line of code, you had to recompile

239
00:12:05.240 --> 00:12:06.879
<v Speaker 2>the entire program from scratch.

240
00:12:06.960 --> 00:12:09.960
<v Speaker 1>And those early vacuum tube machines were incredibly prone to

241
00:12:10.000 --> 00:12:10.759
<v Speaker 1>hardware films.

242
00:12:10.799 --> 00:12:14.519
<v Speaker 2>Oh they crashed constantly, so compiling a large program was

243
00:12:14.559 --> 00:12:18.279
<v Speaker 2>basically a race against the machine crashing. You practically couldn't

244
00:12:18.279 --> 00:12:20.480
<v Speaker 2>write a program longer than three hundred or four hundred

245
00:12:20.559 --> 00:12:23.799
<v Speaker 2>lines because the computer would fail before the compiler finished.

246
00:12:23.960 --> 00:12:27.960
<v Speaker 1>That sounds like a nightmare. Despite those limitations, though, proving

247
00:12:28.000 --> 00:12:30.879
<v Speaker 1>that a high level language could be compiled into efficient

248
00:12:30.960 --> 00:12:36.639
<v Speaker 1>machine code changed everything. Fortran became the lingua franca of computing.

249
00:12:36.960 --> 00:12:40.279
<v Speaker 1>It did, but it was built by scientists for scientists

250
00:12:40.320 --> 00:12:44.039
<v Speaker 1>to do heavy math. As the nineteen fifties closed, divergent

251
00:12:44.080 --> 00:12:48.279
<v Speaker 1>evolution took hold, people needed computers to handle completely different domains,

252
00:12:48.559 --> 00:12:51.480
<v Speaker 1>leading to two massive new languages in nineteen fifty nine,

253
00:12:52.039 --> 00:12:53.679
<v Speaker 1>Lisp and cobl Right.

254
00:12:53.799 --> 00:12:56.879
<v Speaker 2>So John McCarthy at MIT needed a language for the

255
00:12:56.960 --> 00:12:59.759
<v Speaker 2>nascent field of artificial intelligence.

256
00:12:59.159 --> 00:13:02.600
<v Speaker 1>Which is completely different from calculating missile trajectories exactly.

257
00:13:02.840 --> 00:13:06.960
<v Speaker 2>AI didn't require number crunching, it required symbolic computation. It

258
00:13:07.000 --> 00:13:11.559
<v Speaker 2>needed to manipulate words, logic, and abstract concepts. So McCarthy

259
00:13:11.600 --> 00:13:14.840
<v Speaker 2>created Lisp, moving away from standard variables and loops in

260
00:13:14.960 --> 00:13:16.919
<v Speaker 2>favor of linked lists and recursion.

261
00:13:17.120 --> 00:13:19.759
<v Speaker 1>The syntax is famously jarring to look at, though it's

262
00:13:19.799 --> 00:13:21.759
<v Speaker 1>just endless nested parentheses.

263
00:13:21.840 --> 00:13:23.039
<v Speaker 2>It takes some getting used to.

264
00:13:23.200 --> 00:13:27.279
<v Speaker 1>But the underlying mechanism is brilliant. In pure Lisp, the

265
00:13:27.320 --> 00:13:30.320
<v Speaker 1>code and the data share the exact same structural format.

266
00:13:31.080 --> 00:13:33.200
<v Speaker 1>A list can represent a simple set of data, or

267
00:13:33.240 --> 00:13:36.519
<v Speaker 1>it can represent an abstract syntax tree like a function

268
00:13:36.639 --> 00:13:37.399
<v Speaker 1>you execute.

269
00:13:37.559 --> 00:13:41.720
<v Speaker 2>And that property homochinicity means a list program can treat

270
00:13:41.720 --> 00:13:45.279
<v Speaker 2>its own code as data, modifying and rewriting itself on.

271
00:13:45.240 --> 00:13:47.799
<v Speaker 1>The fly, which is mind blowing for nineteen fifty nine.

272
00:13:47.879 --> 00:13:51.120
<v Speaker 2>It really is. That parody is precisely why it became

273
00:13:51.159 --> 00:13:55.399
<v Speaker 2>the foundational language for early AI research. Meanwhile, across the aisle,

274
00:13:55.519 --> 00:13:57.720
<v Speaker 2>the business world had entirely different.

275
00:13:57.440 --> 00:14:01.600
<v Speaker 1>Requirements, right they needed to process payrolls, trek inventory format

276
00:14:01.639 --> 00:14:02.519
<v Speaker 1>accounting reports.

277
00:14:02.639 --> 00:14:06.279
<v Speaker 2>Grace Happer laid the conceptual groundwork there with phlomatic, proving

278
00:14:06.320 --> 00:14:11.440
<v Speaker 2>computers could be programmed using English keywords rather than mathematical symbols, which.

279
00:14:11.279 --> 00:14:14.159
<v Speaker 1>Directly paved the way for cobl. And you know, computer

280
00:14:14.200 --> 00:14:16.480
<v Speaker 1>scientist seem to look down on cobol because it's highly

281
00:14:16.559 --> 00:14:20.120
<v Speaker 1>verbose and lacks mathematical elegance, but looking at the domain

282
00:14:20.200 --> 00:14:22.960
<v Speaker 1>it was built for, if it runs the global banking system,

283
00:14:23.000 --> 00:14:26.840
<v Speaker 1>and handled decimals perfectly. Isn't that a massive design success?

284
00:14:27.080 --> 00:14:31.120
<v Speaker 2>I completely agree it was a huge success. Kobol's real

285
00:14:31.240 --> 00:14:36.080
<v Speaker 2>architectural triumph was its data division. It introduced hierarchical data

286
00:14:36.120 --> 00:14:39.679
<v Speaker 2>structures and allowed variable names up to thirty characters long,

287
00:14:39.799 --> 00:14:41.360
<v Speaker 2>complete with hyphens, so.

288
00:14:41.279 --> 00:14:43.159
<v Speaker 1>You could name a variable year to.

289
00:14:43.159 --> 00:14:47.799
<v Speaker 2>Date tex exactly. That was revolutionary for business logic. It

290
00:14:47.879 --> 00:14:50.799
<v Speaker 2>allowed accountants and managers to actually read the structure of

291
00:14:50.840 --> 00:14:54.519
<v Speaker 2>the data. And the sheer scale of its adoption is staggering.

292
00:14:54.120 --> 00:14:55.879
<v Speaker 1>Because the Department of Defense mandated it.

293
00:14:55.960 --> 00:14:59.879
<v Speaker 2>Yes, they forced it into existence, and it embedded its

294
00:15:00.080 --> 00:15:04.200
<v Speaker 2>self into the world's infrastructure. During the Y two K preparations,

295
00:15:04.720 --> 00:15:08.000
<v Speaker 2>estimate showed eight hundred million lines of COBAL were still

296
00:15:08.039 --> 00:15:10.480
<v Speaker 2>actively running in just the twenty two square miles of

297
00:15:10.480 --> 00:15:12.720
<v Speaker 2>Manhattan alone, just in Manhattan. That's in Manhattan.

298
00:15:12.720 --> 00:15:15.360
<v Speaker 1>So by the early nineteen sixties, the computing landscape was

299
00:15:15.399 --> 00:15:19.159
<v Speaker 1>totally fractured. You have the fourtran tribe doing scientific calculations

300
00:15:19.240 --> 00:15:22.840
<v Speaker 1>and the Cobal tribe handling business administration. Naturally, the industry

301
00:15:22.840 --> 00:15:26.080
<v Speaker 1>decided this was inefficient and attempted to forge one universal

302
00:15:26.120 --> 00:15:27.120
<v Speaker 1>language to rule them all.

303
00:15:27.279 --> 00:15:29.759
<v Speaker 2>And those unification efforts resulted in some of the most

304
00:15:29.799 --> 00:15:31.919
<v Speaker 2>dramatic failures and software engineering.

305
00:15:32.080 --> 00:15:35.200
<v Speaker 1>Yeah. The first major attempt was ALGL sixty, created by

306
00:15:35.200 --> 00:15:37.320
<v Speaker 1>a joint European and American committee right.

307
00:15:37.279 --> 00:15:41.279
<v Speaker 2>Yes, motivated largely by a shared fear of IBM dominating

308
00:15:41.360 --> 00:15:46.960
<v Speaker 2>the industry. ALGAEOL sixty was conceptually brilliant. It introduced block structures,

309
00:15:47.000 --> 00:15:49.759
<v Speaker 2>which fundamentally changed how variables were managed.

310
00:15:50.000 --> 00:15:52.480
<v Speaker 1>Right. Instead of a variable being global, where changing X

311
00:15:52.519 --> 00:15:55.679
<v Speaker 1>in one part of the program accidentally changes x everywhere else,

312
00:15:56.080 --> 00:16:00.360
<v Speaker 1>causing absolute chaos, block structures essentially allowed program is to

313
00:16:00.360 --> 00:16:02.480
<v Speaker 1>build fenced in yards for their data.

314
00:16:02.519 --> 00:16:04.720
<v Speaker 2>Fencedin yards is a perfect way to describe it.

315
00:16:04.799 --> 00:16:08.120
<v Speaker 1>A variable could exist entirely locally within a specific block

316
00:16:08.159 --> 00:16:11.279
<v Speaker 1>of code and then just disappear when the block finished executing.

317
00:16:11.720 --> 00:16:15.360
<v Speaker 1>ALGL was also the first language formally described by BNF

318
00:16:15.679 --> 00:16:17.000
<v Speaker 1>backus NARFM.

319
00:16:16.840 --> 00:16:19.320
<v Speaker 2>And BNF was a huge breakthrough because it provided a

320
00:16:19.320 --> 00:16:22.879
<v Speaker 2>formal metal language to define the exact syntax grammar of

321
00:16:22.919 --> 00:16:26.480
<v Speaker 2>a programming language. It's much like diagramming a complex sentence

322
00:16:26.480 --> 00:16:30.120
<v Speaker 2>in linguistics. It removed the ambiguity from language specification.

323
00:16:30.279 --> 00:16:32.080
<v Speaker 1>So it's a brilliant, but it fail in the US,

324
00:16:32.159 --> 00:16:33.080
<v Speaker 1>right it did.

325
00:16:33.320 --> 00:16:37.039
<v Speaker 2>Despite these innovations, Algaeoli failed to achieve widespread adoption in

326
00:16:37.080 --> 00:16:40.399
<v Speaker 2>the US because it lacked standardized input and output statements.

327
00:16:40.639 --> 00:16:43.000
<v Speaker 1>They didn't standardize how data goes in and out.

328
00:16:43.519 --> 00:16:48.399
<v Speaker 2>No, the designers considered IO two machine dependent to standardize. Consequently,

329
00:16:48.559 --> 00:16:52.240
<v Speaker 2>moving an Algaol program from one computer to another required

330
00:16:52.399 --> 00:16:55.120
<v Speaker 2>rewriting the data handling code entirely.

331
00:16:55.440 --> 00:16:58.480
<v Speaker 1>That's a deal breaker. The second major unification attempt came

332
00:16:58.480 --> 00:17:01.759
<v Speaker 1>from IBM with their System three sixty. They wanted to

333
00:17:01.799 --> 00:17:04.599
<v Speaker 1>sell a single hardware architecture to both the scientific and

334
00:17:04.640 --> 00:17:07.440
<v Speaker 1>business markets, so they tried to build the ultimate software

335
00:17:07.480 --> 00:17:09.200
<v Speaker 1>Swiss Army Knife PLI.

336
00:17:09.359 --> 00:17:12.440
<v Speaker 2>They attempted to mash together four trans ross speed, Kobol's

337
00:17:12.440 --> 00:17:15.640
<v Speaker 2>complex data structures, and Algel's block.

338
00:17:15.400 --> 00:17:17.920
<v Speaker 1>Structure, and then they bolted on twenty three different exception

339
00:17:17.960 --> 00:17:22.119
<v Speaker 1>handlers and extensive concurrency features. It was an everything bagel

340
00:17:22.480 --> 00:17:25.279
<v Speaker 1>that basically gave the industry indigestion. It tried to be

341
00:17:25.319 --> 00:17:27.400
<v Speaker 1>everything to everyone and became too heavy to lift.

342
00:17:27.680 --> 00:17:31.119
<v Speaker 2>This raises an important question, how do we keep our

343
00:17:31.160 --> 00:17:36.240
<v Speaker 2>tools from escaping our intellectual control. The legendary computer scientist

344
00:17:36.480 --> 00:17:41.880
<v Speaker 2>Edsgardistras severely criticized PLI, stating that its sheer baroqueness escaped

345
00:17:41.880 --> 00:17:43.119
<v Speaker 2>our intellectual control.

346
00:17:43.440 --> 00:17:46.400
<v Speaker 1>Sheer baroquness. That's brutal, but true.

347
00:17:46.640 --> 00:17:51.039
<v Speaker 2>When a language incorporates every conceivable paradigm, the feature interactions

348
00:17:51.079 --> 00:17:55.440
<v Speaker 2>become hopelessly complex. A programmer using one subset of the

349
00:17:55.519 --> 00:17:59.839
<v Speaker 2>language might trigger entirely unpredictable bugs because those features interact

350
00:17:59.839 --> 00:18:02.599
<v Speaker 2>in visibly with another subset they don't even understand.

351
00:18:02.799 --> 00:18:05.559
<v Speaker 1>It's like designing an airplane cockpit where turning on the

352
00:18:05.599 --> 00:18:08.680
<v Speaker 1>windshield wipers might accidentally fire the thrusters because the wiring

353
00:18:08.720 --> 00:18:11.480
<v Speaker 1>is just too dense to track exactly. So if the

354
00:18:11.559 --> 00:18:14.720
<v Speaker 1>universal Swiss army knife approach collapsed under its own weight,

355
00:18:15.359 --> 00:18:18.920
<v Speaker 1>how did language design evolve to manage the explosive complexity

356
00:18:18.960 --> 00:18:20.400
<v Speaker 1>of modern software systems.

357
00:18:20.519 --> 00:18:23.960
<v Speaker 2>Well, the industry realized they needed specialized paradigms, not an

358
00:18:24.079 --> 00:18:28.279
<v Speaker 2>endless accumulation of features. A perfect illustration is Simulus sixty.

359
00:18:27.960 --> 00:18:30.200
<v Speaker 1>Seven, developed in Norway, right yes.

360
00:18:30.400 --> 00:18:35.480
<v Speaker 2>By Kristin Nigard and Olohandal. They were building system simulations

361
00:18:35.559 --> 00:18:38.359
<v Speaker 2>like modeling the traffic of hundreds of independent ships in

362
00:18:38.400 --> 00:18:38.759
<v Speaker 2>a port.

363
00:18:38.920 --> 00:18:41.400
<v Speaker 1>Oh wow, that sounds complicated.

364
00:18:40.960 --> 00:18:44.519
<v Speaker 2>It is, Using traditional procedural code to track the individual

365
00:18:44.519 --> 00:18:48.000
<v Speaker 2>state of every single ship is a logistical nightmare. They

366
00:18:48.000 --> 00:18:51.880
<v Speaker 2>needed subprograms that could pause their execution, retain their state,

367
00:18:52.000 --> 00:18:53.160
<v Speaker 2>and resume later.

368
00:18:53.079 --> 00:18:55.000
<v Speaker 1>What we call corotines today, right.

369
00:18:55.440 --> 00:18:58.880
<v Speaker 2>And by trying to solve that highly specific simulation problem,

370
00:18:58.920 --> 00:19:01.160
<v Speaker 2>they realized they needed to bind the data like the

371
00:19:01.200 --> 00:19:05.119
<v Speaker 2>ship's tonnage its destination, together with the functions like sailing

372
00:19:05.559 --> 00:19:09.119
<v Speaker 2>docking into a single independent, simulated entity, And.

373
00:19:09.079 --> 00:19:13.359
<v Speaker 1>In doing so they accidentally invented classes and data abstraction.

374
00:19:13.519 --> 00:19:15.759
<v Speaker 1>They birthed object oriented programming.

375
00:19:15.880 --> 00:19:18.880
<v Speaker 2>It was a massive paradigm shift derived entirely from a

376
00:19:18.920 --> 00:19:21.839
<v Speaker 2>practical requirement. Around the same time, in nineteen seventy one,

377
00:19:22.160 --> 00:19:27.799
<v Speaker 2>Nicholasworth introduced PASCAL, designed explicitly for teaching. Pascal completely rejected

378
00:19:27.839 --> 00:19:32.599
<v Speaker 2>the PLI philosophy of infinite features. It prioritized simplicity, expressivity,

379
00:19:32.599 --> 00:19:35.759
<v Speaker 2>and safety, which allowed it to dominate university computer science

380
00:19:35.759 --> 00:19:37.079
<v Speaker 2>departments for two decades.

381
00:19:37.480 --> 00:19:41.200
<v Speaker 1>Then, in nineteen seventy two, Dennis Ritchie at Bell Labs

382
00:19:41.240 --> 00:19:45.279
<v Speaker 1>created c It was designed for systems programming, specifically to

383
00:19:45.279 --> 00:19:50.160
<v Speaker 1>write the Unix operating system Seagay programmers high level structural tools,

384
00:19:50.400 --> 00:19:53.839
<v Speaker 1>but retained the ability to manipulate raw memory addresses like

385
00:19:53.880 --> 00:19:54.960
<v Speaker 1>an assembly language.

386
00:19:55.000 --> 00:19:58.559
<v Speaker 2>But to achieve that power, Richie intentionally left out strict

387
00:19:58.680 --> 00:20:00.319
<v Speaker 2>type checking was.

388
00:20:00.240 --> 00:20:04.400
<v Speaker 1>Built for systems programmers who inherently needed to bypass rigid

389
00:20:04.480 --> 00:20:08.559
<v Speaker 1>data rules to interface directly with hardware. The language trust

390
00:20:08.599 --> 00:20:09.960
<v Speaker 1>the programmer implicitly.

391
00:20:10.039 --> 00:20:13.279
<v Speaker 2>It provides incredible execution speed and power, but the tradeoff

392
00:20:13.400 --> 00:20:16.799
<v Speaker 2>is a massive surface area for security vulnerabilities and memory

393
00:20:16.839 --> 00:20:19.079
<v Speaker 2>leaks if the programmer makes a mistake.

394
00:20:18.960 --> 00:20:22.599
<v Speaker 1>Which brings us to the ultimate counter approach ADA. By

395
00:20:22.640 --> 00:20:25.319
<v Speaker 1>the late nineteen seventies, the Department of Defense realized they

396
00:20:25.319 --> 00:20:28.640
<v Speaker 1>were actively maintaining over four hundred and fifty different programming

397
00:20:28.680 --> 00:20:30.559
<v Speaker 1>languages across their embedded system.

398
00:20:30.599 --> 00:20:34.160
<v Speaker 2>Four hundred and fifty languages. It was an unsustainable logistical nightmare.

399
00:20:34.200 --> 00:20:37.680
<v Speaker 2>So they launched a massive, rigorous international competition to develop

400
00:20:37.720 --> 00:20:40.319
<v Speaker 2>a single, ultra reliable language.

401
00:20:39.920 --> 00:20:42.759
<v Speaker 1>And Genich Bias team won the contract, naming the language

402
00:20:42.799 --> 00:20:45.119
<v Speaker 1>ADA after Augusta Ada Byron.

403
00:20:44.920 --> 00:20:46.160
<v Speaker 2>The world's first programmer.

404
00:20:46.720 --> 00:20:50.920
<v Speaker 1>Yeah. Ada was a monumental triumph of strict software engineering.

405
00:20:51.359 --> 00:20:56.119
<v Speaker 1>It introduced advanced packages for data hiding, generic subprograms, and

406
00:20:56.200 --> 00:20:58.519
<v Speaker 1>incredibly rigorous exception handling.

407
00:20:58.200 --> 00:21:01.400
<v Speaker 2>Because it was engineered for environments where a runtime failure

408
00:21:01.440 --> 00:21:05.119
<v Speaker 2>could mean a plane crashing or a medical device malfunctioning.

409
00:21:05.519 --> 00:21:08.240
<v Speaker 1>So what does this all mean? The juxtaposition of these

410
00:21:08.319 --> 00:21:12.359
<v Speaker 1>languages reveal so much about technology adoption. You have ATA,

411
00:21:12.799 --> 00:21:15.599
<v Speaker 1>engineered from the top down to be an impenetrable fortress

412
00:21:15.599 --> 00:21:19.400
<v Speaker 1>of reliability. Then you have C, this fast, highly accessible,

413
00:21:19.759 --> 00:21:22.799
<v Speaker 1>and slightly dangerous systems language, and.

414
00:21:22.799 --> 00:21:25.759
<v Speaker 2>Parallel to both, you had Dartmouth's Basic, which was designed

415
00:21:25.759 --> 00:21:28.920
<v Speaker 2>to bring time sharing to liberal arts students.

416
00:21:28.680 --> 00:21:31.319
<v Speaker 1>Operating on the radical new assumption that a user's time

417
00:21:31.400 --> 00:21:34.079
<v Speaker 1>was actually more valuable than the computer's processing time.

418
00:21:34.039 --> 00:21:37.359
<v Speaker 2>Exactly, and looking at which languages ultimately conquered the industry,

419
00:21:37.799 --> 00:21:41.160
<v Speaker 2>C undeniably won the popular vote over the ATA, not

420
00:21:41.240 --> 00:21:44.079
<v Speaker 2>because it was fundamentally safer, but because C was bundled

421
00:21:44.119 --> 00:21:48.279
<v Speaker 2>seamlessly with the Unix operating system, compilers became widely and

422
00:21:48.359 --> 00:21:49.200
<v Speaker 2>cheaply available.

423
00:21:49.440 --> 00:21:53.000
<v Speaker 1>So the history of C proves that accessibility, a low

424
00:21:53.039 --> 00:21:57.359
<v Speaker 1>barrier to entry, and a pervasive ecosystem often triumph over

425
00:21:57.480 --> 00:22:01.480
<v Speaker 1>strict top down engineering mandates. Time and time again, every

426
00:22:01.519 --> 00:22:04.160
<v Speaker 1>piece of syntax we type today carries the DNA of

427
00:22:04.160 --> 00:22:07.480
<v Speaker 1>that history. I mean, we started with Conrad Zoo's sketching

428
00:22:07.519 --> 00:22:11.359
<v Speaker 1>chess algorithms in an isolated Bavarian village. We explored how

429
00:22:11.400 --> 00:22:14.480
<v Speaker 1>the physical bottleneck of the von Neumann processor forced us

430
00:22:14.480 --> 00:22:17.759
<v Speaker 1>to model human logic into sequential imperative steps.

431
00:22:18.119 --> 00:22:23.200
<v Speaker 2>We watched the industry tribalize into fortrans scientists and cobal business.

432
00:22:22.839 --> 00:22:26.640
<v Speaker 1>Admins, attempt a disastrous unification with PLI, and finally embrace

433
00:22:26.720 --> 00:22:31.119
<v Speaker 1>the specialized object oriented paradigms that power our digital infrastructure today.

434
00:22:31.240 --> 00:22:33.920
<v Speaker 2>It really shatters the illusion that computer science is purely

435
00:22:34.000 --> 00:22:37.240
<v Speaker 2>abstract mathematics. The digital world is deeply human, built in

436
00:22:37.279 --> 00:22:42.200
<v Speaker 2>a foundation of economic compromises, strict hardware limitations, and brilliant

437
00:22:42.279 --> 00:22:43.920
<v Speaker 2>leaps of lateral thinking.

438
00:22:43.839 --> 00:22:48.400
<v Speaker 1>Which leads you, with one final thought to molover. We

439
00:22:48.480 --> 00:22:51.200
<v Speaker 1>open this deep dive discussing the linguistic theory that the

440
00:22:51.240 --> 00:22:55.759
<v Speaker 1>language you use fundamentally limits the thoughts you can conceive. Today,

441
00:22:56.400 --> 00:22:58.640
<v Speaker 1>the brightest minds on Earth are writing the code for

442
00:22:58.680 --> 00:23:02.119
<v Speaker 1>the first artificial jet mineral intelligence, and they're doing it

443
00:23:02.240 --> 00:23:06.319
<v Speaker 1>using languages like Python, C and Lisp. As we've learned today,

444
00:23:06.599 --> 00:23:10.160
<v Speaker 1>the fundamental logical structures of all those languages were directly

445
00:23:10.160 --> 00:23:13.480
<v Speaker 1>dictated by the physical limitations of the nineteen forties Von

446
00:23:13.559 --> 00:23:17.880
<v Speaker 1>Neumann hardware architecture. Are we inadvertently trapping the boundless potential

447
00:23:17.920 --> 00:23:21.440
<v Speaker 1>of the first digital minds inside a mid twentieth century framework.

448
00:23:21.960 --> 00:23:24.640
<v Speaker 1>If language truly dictates thought, what kind of thoughts are

449
00:23:24.640 --> 00:23:27.279
<v Speaker 1>we forcing our ai to have. Thank you for joining

450
00:23:27.359 --> 00:23:29.319
<v Speaker 1>us on this deep dive into the architectures of our

451
00:23:29.319 --> 00:23:32.799
<v Speaker 1>digital world. Keep questioning the invisible structures around you.
