WEBVTT

00:00:00.000 --> 00:00:04.059
Welcome to today's deep dive. We are really thrilled

00:00:04.059 --> 00:00:06.179
to have you with us because today we are talking

00:00:06.179 --> 00:00:09.660
about a very specific, highly relatable, kind

00:00:09.660 --> 00:00:12.720
of everyday frustration. Oh yeah, a very universal

00:00:12.720 --> 00:00:15.519
one. Right. So picture this. You are sitting

00:00:15.519 --> 00:00:18.859
at your desk. trying to type a massively long,

00:00:18.960 --> 00:00:22.559
complicated mathematical equation into your standard

00:00:22.559 --> 00:00:24.539
calculator. Maybe you're doing your taxes or

00:00:24.539 --> 00:00:26.559
something. Exactly, doing your taxes or trying

00:00:26.559 --> 00:00:28.320
to figure out a messy split bill with friends.

00:00:28.559 --> 00:00:30.760
You are opening parentheses, you're closing parentheses.

00:00:30.800 --> 00:00:33.799
You are hoping you remembered the order of operations

00:00:33.799 --> 00:00:36.740
from, you know, middle school algebra. Please

00:00:36.740 --> 00:00:39.890
excuse my dear Aunt Sally. Yes, but... You get

00:00:39.890 --> 00:00:42.170
paranoid. So you hit the clear button just to

00:00:42.170 --> 00:00:44.649
be safe, completely losing 10 minutes of tedious

00:00:44.649 --> 00:00:47.170
work. You start over, you finally hit the equal

00:00:47.170 --> 00:00:49.689
sign, and what do you get? Syntax error. Syntax

00:00:49.689 --> 00:00:52.890
error. You are lost in a sea of brackets. But

00:00:52.890 --> 00:00:54.649
what if there was an entirely different way to

00:00:54.649 --> 00:00:57.049
do math, a way where there are zero parentheses,

00:00:57.369 --> 00:00:59.710
and where you literally never have to worry about

00:00:59.710 --> 00:01:01.810
the order of operations ever again? I mean, it

00:01:01.810 --> 00:01:04.650
sounds almost like magic when you phrase it that

00:01:04.650 --> 00:01:07.730
way, but it's actually a highly logical, deeply

00:01:07.730 --> 00:01:10.840
practical system. And it isn't just a quirk of

00:01:10.840 --> 00:01:13.340
calculator history either. No, it's not. It's

00:01:13.340 --> 00:01:15.920
a fascinating study in how humans interact with

00:01:15.920 --> 00:01:19.159
machines and how sometimes the way we are traditionally

00:01:19.159 --> 00:01:21.700
taught to think isn't actually the most efficient

00:01:21.700 --> 00:01:24.079
way to get things done. Today, we're exploring

00:01:24.079 --> 00:01:27.120
the topic of reverse Polish notation, which is

00:01:27.120 --> 00:01:29.719
widely known as RPN. We've pulled together a

00:01:29.719 --> 00:01:32.219
really comprehensive Wikipedia article detailing

00:01:32.219 --> 00:01:34.700
the history, the mechanics, and the practical

00:01:34.700 --> 00:01:37.459
implications of RPN. It's a great source. It

00:01:37.459 --> 00:01:39.980
really is. Our mission for this Deep Dives is

00:01:39.980 --> 00:01:42.180
to understand how a purely theoretical logic

00:01:42.180 --> 00:01:45.620
concept from 1924 became a hidden powerhouse

00:01:45.620 --> 00:01:48.439
of early computing and eventually a cult favorite

00:01:48.439 --> 00:01:50.739
among engineers and Wall Street bankers. Wall

00:01:50.739 --> 00:01:53.219
Street loved this stuff. They really did. We

00:01:53.219 --> 00:01:55.180
are going to look at what this whole system teaches

00:01:55.180 --> 00:01:57.920
us about pure efficiency. And to help me synthesize

00:01:57.920 --> 00:02:00.200
this incredibly dense, globe -spanning history,

00:02:00.420 --> 00:02:03.030
I've got our resident expert here. I am very

00:02:03.030 --> 00:02:04.790
glad to be here. The story of reverse Polish

00:02:04.790 --> 00:02:07.609
notation is it's one of those great technological

00:02:07.609 --> 00:02:11.289
narratives. It spans from European logicians

00:02:11.289 --> 00:02:14.569
to wartime computer pioneers right down to the

00:02:14.569 --> 00:02:16.969
device sitting in your pocket today. Ultimately,

00:02:17.129 --> 00:02:19.590
it's a story about the relentless pursuit of

00:02:19.590 --> 00:02:22.129
absolute optimization. OK, let's unpack this.

00:02:22.210 --> 00:02:25.250
What actually is reverse Polish notation? If

00:02:25.250 --> 00:02:27.110
you have a standard calculator in front of you

00:02:27.110 --> 00:02:29.569
right now, you use what is called infix notation.

00:02:29.889 --> 00:02:32.250
Right. That just means the operator. the plus

00:02:32.250 --> 00:02:34.650
or minus sign goes in between the numbers, three

00:02:34.650 --> 00:02:37.469
plus four. But in reverse Polish notation, the

00:02:37.469 --> 00:02:40.090
operators follow the operands. So instead of

00:02:40.090 --> 00:02:42.569
three plus four, you'd enter three, then four,

00:02:42.650 --> 00:02:44.949
and then the plus sign. Right. And to understand

00:02:44.949 --> 00:02:46.509
the name itself, we kind of have to look at the

00:02:46.509 --> 00:02:48.370
Polish part first. Yeah. Where does that come

00:02:48.370 --> 00:02:50.789
from? It refers to the nationality of the brilliant

00:02:50.789 --> 00:02:55.069
logician Jan Ukasiewicz. Back in 1924, he invented

00:02:55.069 --> 00:02:58.419
standard Polish notation. In his system, which

00:02:58.419 --> 00:03:01.060
is also known as prefix notation, the operators

00:03:01.060 --> 00:03:03.340
precede the operands. So the plus sign comes

00:03:03.340 --> 00:03:05.780
first. Exactly. You'd put the plus sign first,

00:03:05.979 --> 00:03:09.819
then the 3, then the 4. RPN, or postfix notation,

00:03:10.300 --> 00:03:13.319
is quite literally the reverse of Ukasiewicz's

00:03:13.319 --> 00:03:16.719
invention. Entering 3 or 4 plus feels incredibly

00:03:16.719 --> 00:03:19.539
abstract until you understand how the machine

00:03:19.539 --> 00:03:22.550
is actually processing it. To do that, we really

00:03:22.550 --> 00:03:25.169
need to talk about the stack. The stack is everything.

00:03:25.590 --> 00:03:27.810
It is. Think of the stack like one of those spring

00:03:27.810 --> 00:03:29.689
-loaded plate dispensers you see at a buffet

00:03:29.689 --> 00:03:32.189
restaurant. It's last in, first out construct.

00:03:32.569 --> 00:03:34.590
You push a plate onto the top, and when you need

00:03:34.590 --> 00:03:36.590
one, you pop the top plate off. That's a great

00:03:36.590 --> 00:03:39.009
mental model. Thanks. Let's walk through a slightly

00:03:39.009 --> 00:03:41.090
longer example from our sources to make it clear.

00:03:41.330 --> 00:03:45.150
Say you want to calculate 3 minus 4 plus 5. In

00:03:45.150 --> 00:03:49.449
RPN, you would punch in 3, enter 4 minus 5 plus.

00:03:49.810 --> 00:03:52.139
Exactly. Exactly. And to visualize the physical

00:03:52.139 --> 00:03:53.900
mechanics of what you just described, the pushing

00:03:53.900 --> 00:03:56.240
and topping, we can look at it step by step.

00:03:56.520 --> 00:03:58.520
First, the number three is pushed onto the stack.

00:03:58.659 --> 00:04:01.020
The number four is pushed on top of it. At this

00:04:01.020 --> 00:04:03.479
moment, the four is on top and the three is sitting

00:04:03.479 --> 00:04:05.719
below it. OK, wait, let's hold there for a second.

00:04:05.939 --> 00:04:08.099
So I've pushed the three and I've pushed the

00:04:08.099 --> 00:04:10.419
four. They're sitting on my mental string loaded

00:04:10.419 --> 00:04:13.620
plate dispenser. The four is the top plate. What

00:04:13.620 --> 00:04:15.939
happens the exact millisecond I hit the minus

00:04:15.939 --> 00:04:18.639
button? What's fascinating here is that the calculator

00:04:18.639 --> 00:04:22.920
automatically removes or pops those top two items

00:04:22.920 --> 00:04:25.620
from the stack. It performs the calculation of

00:04:25.620 --> 00:04:28.860
3 minus 4, and then it puts the result, which

00:04:28.860 --> 00:04:31.680
is negative 1, right back onto the top of the

00:04:31.680 --> 00:04:33.540
stack. Oh, I see. Yeah, then you enter the 5,

00:04:33.720 --> 00:04:35.480
pushing it onto the stack above your negative

00:04:35.480 --> 00:04:38.019
1. You hit the plus sign, it pops them both off,

00:04:38.079 --> 00:04:40.139
adds them, and leaves you with your final answer

00:04:40.139 --> 00:04:43.100
of 4. I hear you saying it is elegant, but...

00:04:43.470 --> 00:04:46.410
If I'm being totally honest, writing 3, 4 plus

00:04:46.410 --> 00:04:49.670
feels incredibly counterintuitive. Does it actually

00:04:49.670 --> 00:04:52.050
save that much time, or is it just a flex for

00:04:52.050 --> 00:04:53.970
engineers who want to look smart? No, it saves

00:04:53.970 --> 00:04:56.589
a massive amount of time, and to see why, we

00:04:56.589 --> 00:04:59.250
have to look at a more complex equation. Think

00:04:59.250 --> 00:05:01.290
about the headache of a bulky equation like this.

00:05:01.610 --> 00:05:04.540
Open parenthesis, 3 plus 4. Close parenthesis,

00:05:04.560 --> 00:05:07.500
multiplied by, open parenthesis, 5 plus 6, close

00:05:07.500 --> 00:05:10.040
parenthesis. That's exhausting just to say out

00:05:10.040 --> 00:05:12.199
loud. Right. Think of how many keystrokes that

00:05:12.199 --> 00:05:15.579
takes. In RPN, that whole messy bracket -filled

00:05:15.579 --> 00:05:18.339
equation gracefully flattens out into a linear

00:05:18.339 --> 00:05:21.920
left -to -right sequence. 3, enter 4, plus 5,

00:05:22.120 --> 00:05:25.660
enter 6, plus multiply. Wow. No brackets, no

00:05:25.660 --> 00:05:27.660
holding numbers in your head. Here's where it

00:05:27.660 --> 00:05:29.759
gets really interesting. If this was invented

00:05:29.759 --> 00:05:32.879
as a theoretical logic concept in the 1920s,

00:05:32.899 --> 00:05:35.459
how did it actually make the jump into computers?

00:05:35.660 --> 00:05:39.120
Who was the first person to try coding a parenthesis

00:05:39.120 --> 00:05:42.120
-free system into a machine? The very first computer

00:05:42.120 --> 00:05:45.079
to use post -fix notation wasn't some sleek consumer

00:05:45.079 --> 00:05:48.879
gadget. It was Konrad Zuse's Z3 computer in Germany

00:05:48.879 --> 00:05:53.079
way back in 1941, followed by a Z4 in 1945. 1941,

00:05:53.420 --> 00:05:55.360
so right in the middle of the war. Yes, and Zuse's

00:05:55.360 --> 00:05:58.000
Z3 allowed operators in dialogue mode to enter

00:05:58.000 --> 00:06:00.120
two operands followed by the desired operation.

00:06:00.500 --> 00:06:02.600
But there is a tragic historical detail here,

00:06:02.699 --> 00:06:05.180
that pioneering Z3 machine was completely destroyed

00:06:05.180 --> 00:06:08.759
in a bombing raid on December 21st, 1943. Wow,

00:06:08.819 --> 00:06:10.839
so his breakthrough was just lost. to history

00:06:10.839 --> 00:06:13.879
in the rubble? Essentially, yes. It remained

00:06:13.879 --> 00:06:16.740
unknown outside of Germany for a long time, though

00:06:16.740 --> 00:06:19.360
a replica was eventually built with Zuse's help

00:06:19.360 --> 00:06:23.399
much later, in 1961. But that isolation during

00:06:23.399 --> 00:06:26.040
the wartime and post -war period set the stage

00:06:26.040 --> 00:06:28.139
for one of the most common phenomenons in the

00:06:28.139 --> 00:06:30.639
history of science. Parallel reinvention. Exactly,

00:06:30.899 --> 00:06:33.100
parallel reinvention. Right, where a bunch of

00:06:33.100 --> 00:06:35.160
different people... independently invent the

00:06:35.160 --> 00:06:37.839
exact same thing without ever talking to each

00:06:37.839 --> 00:06:40.180
other. Precisely. And the reason they were all

00:06:40.180 --> 00:06:42.819
inventing RPN at the same time comes down to

00:06:42.819 --> 00:06:44.879
what we could call the war for memory. If you

00:06:44.879 --> 00:06:46.819
are listening to this on a smartphone right now,

00:06:46.980 --> 00:06:50.160
you have billions of bytes of memory in your

00:06:50.160 --> 00:06:52.579
pocket. Basically unlimited. Right. But in the

00:06:52.579 --> 00:06:55.879
1950s, computer memory was physical, massive

00:06:55.879 --> 00:06:58.899
and incredibly expensive. It relied on vacuum

00:06:58.899 --> 00:07:01.759
tubes and delay lines. Storing a parenthesis

00:07:01.759 --> 00:07:04.160
in a computer's memory cost. precious hardware

00:07:04.160 --> 00:07:06.519
space. Literally wasting physical space on a

00:07:06.519 --> 00:07:10.079
bracket. Yes. So scientists were desperate to

00:07:10.079 --> 00:07:13.060
optimize. The reverse Polish scheme was proposed

00:07:13.060 --> 00:07:17.220
again in 1954 by Arthur Birx, Don Warren, and

00:07:17.220 --> 00:07:20.839
Jesse Wright. Then it was independently reinvented

00:07:20.839 --> 00:07:23.980
again in the early 1960s by Friedrich Bauer and

00:07:23.980 --> 00:07:26.879
Edsger Dijkstra to reduce computer memory access

00:07:26.879 --> 00:07:29.220
times. I want to highlight Dijkstra for a moment

00:07:29.220 --> 00:07:31.579
because the sources give a really great visual

00:07:31.579 --> 00:07:34.220
detail about his work. When he was figuring out

00:07:34.220 --> 00:07:36.740
how to mechanically convert standard math into

00:07:36.740 --> 00:07:39.839
this post -fix notation. He invented something

00:07:39.839 --> 00:07:42.279
called the shunting yard algorithm. That's a

00:07:42.279 --> 00:07:44.459
classic algorithm. Yeah. And he named it that

00:07:44.459 --> 00:07:46.720
because he envisioned the numbers as train cars

00:07:46.720 --> 00:07:49.199
rolling down a track and the mathematical operators

00:07:49.199 --> 00:07:51.860
pluses and minuses being temporarily held on

00:07:51.860 --> 00:07:53.899
a side rail, just like the sorting of trains

00:07:53.899 --> 00:07:56.300
in a railroad shunting yard. That train analogy

00:07:56.300 --> 00:07:58.680
is vital because it highlights a massive conceptual

00:07:58.680 --> 00:08:01.449
shift. Dijkstra wasn't trying to build a machine

00:08:01.449 --> 00:08:03.389
that could read math like a grammatical sentence.

00:08:03.670 --> 00:08:06.069
He was trying to turn math into a set of actionable

00:08:06.069 --> 00:08:08.350
instructions. An active recipe rather than a

00:08:08.350 --> 00:08:10.850
static statement. Exactly. And he wasn't alone

00:08:10.850 --> 00:08:14.389
in this realization. In the mid -1950s in Australia,

00:08:14.689 --> 00:08:17.550
a philosopher and computer scientist named Charles

00:08:17.550 --> 00:08:20.490
Hamlin created a high -level programming language

00:08:20.490 --> 00:08:22.970
called George, which utilized these concepts.

00:08:23.290 --> 00:08:26.050
His work was largely driven by the sheer memory

00:08:26.050 --> 00:08:28.670
overhead required to process mathematical brackets.

00:08:29.009 --> 00:08:32.029
So we have Germany, the UK, Australia. What about

00:08:32.029 --> 00:08:34.740
the United States? Over in the U .S., around

00:08:34.740 --> 00:08:38.539
1958, a designer named Robert Barton was independently

00:08:38.539 --> 00:08:41.879
developing RPN for the massive Burroughs B5000

00:08:41.879 --> 00:08:45.159
computer. And how did he stumble onto it? Was

00:08:45.159 --> 00:08:48.210
he reading Hamblin's work from Australia? Not

00:08:48.210 --> 00:08:51.149
at all. He happened to read a 1954 textbook on

00:08:51.149 --> 00:08:54.210
symbolic logic by Irving Kopi. Barton found a

00:08:54.210 --> 00:08:56.590
brief reference to Polish notation in the text,

00:08:56.690 --> 00:08:59.830
went down a massive rabbit hole reading Jan Jukasiewicz's

00:08:59.830 --> 00:09:02.289
original works, and applied it to computer architecture

00:09:02.289 --> 00:09:04.389
before he even knew about the innovations happening

00:09:04.389 --> 00:09:06.809
in Australia. That's incredible. It really highlights

00:09:06.809 --> 00:09:09.090
how this concept was a fundamental puzzle piece

00:09:09.090 --> 00:09:10.950
waiting to be found by the hardware designers

00:09:10.950 --> 00:09:13.539
of the era. But it didn't stay locked away in

00:09:13.539 --> 00:09:15.720
those massive room -sized mainframes forever.

00:09:16.279 --> 00:09:18.580
Eventually, it had to make the jump to the calculators

00:09:18.580 --> 00:09:20.559
sitting on people's desks. The transition really

00:09:20.559 --> 00:09:23.919
kicked off in June 1963 with the Fryden EC130

00:09:23.919 --> 00:09:27.120
desktop calculator. This device was designed

00:09:27.120 --> 00:09:29.980
by Bob Reagan. And it featured a four level stack

00:09:29.980 --> 00:09:32.440
that was actually displayed on a tiny cathode

00:09:32.440 --> 00:09:35.159
ray tube screen. A CRT screen on a calculator.

00:09:35.360 --> 00:09:37.220
Yeah. And they showed the stack upside down.

00:09:37.259 --> 00:09:39.659
So the last in first out register was visibly

00:09:39.659 --> 00:09:41.820
sitting at the bottom of the screen. Following

00:09:41.820 --> 00:09:45.139
that, you had the Monroe Epic around 1966 supporting

00:09:45.139 --> 00:09:48.000
a similar input scheme. But the company that

00:09:48.000 --> 00:09:50.919
truly turned RPN into a religion. Was Hewlett

00:09:50.919 --> 00:09:52.980
Packard. Was absolutely Hewlett Packard. Hewlett

00:09:52.980 --> 00:09:55.879
Packard totally dominated this space. Their engineers

00:09:55.879 --> 00:09:58.679
designed the 9100A desktop. top calculator in

00:09:58.679 --> 00:10:02.039
1968, utilizing a three -level stack. They had

00:10:02.039 --> 00:10:04.500
working registers named X for the keyboard, Y

00:10:04.500 --> 00:10:07.179
to accumulate data, and a visible storage register

00:10:07.179 --> 00:10:10.419
Z for temporary holds. A very solid design. It

00:10:10.419 --> 00:10:13.500
was. This calculator was a massive hit and popularized

00:10:13.500 --> 00:10:15.759
RPN among the scientific and engineering communities.

00:10:16.080 --> 00:10:18.759
But in 1972, they fundamentally changed the game.

00:10:18.899 --> 00:10:22.190
That was the year they released the HP -35. It

00:10:22.190 --> 00:10:25.490
was the world's first handheld scientific calculator.

00:10:25.789 --> 00:10:27.750
If you are listening to this and trying to visualize

00:10:27.750 --> 00:10:31.149
that era, imagine you were an engineer in 1972

00:10:31.149 --> 00:10:35.070
holding this HP -35. This wasn't just a calculator.

00:10:35.190 --> 00:10:37.470
This was a supercomputer that could suddenly

00:10:37.470 --> 00:10:39.870
fit inside your pocket. And it introduced what

00:10:39.870 --> 00:10:42.750
is now known as the classical four -level RPN

00:10:42.750 --> 00:10:46.210
stack. Instead of three levels, you had the XYZ

00:10:46.210 --> 00:10:50.080
and T -registers T standing for top. This specific

00:10:50.080 --> 00:10:52.940
architecture had very distinct, highly optimized

00:10:52.940 --> 00:10:55.779
rules. How so? Well, for instance, the enter

00:10:55.779 --> 00:10:57.860
key, which was mandatory since you didn't have

00:10:57.860 --> 00:11:00.919
an equals sign, uniquely duplicated values into

00:11:00.919 --> 00:11:03.299
the Y register under certain conditions. And

00:11:03.299 --> 00:11:04.820
when you popped a number off the stack, that

00:11:04.820 --> 00:11:07.200
top T register would duplicate itself on drops.

00:11:07.379 --> 00:11:09.679
They called it top stack level repetition. So

00:11:09.679 --> 00:11:11.580
it was just copying that top value down as you

00:11:11.580 --> 00:11:13.899
worked. Right. The entire purpose was to ease

00:11:13.899 --> 00:11:16.480
complex calculations and save the user precious

00:11:16.480 --> 00:11:19.580
keystrokes. HP lean. into this identity hard.

00:11:19.799 --> 00:11:21.840
In the 1980s, they even handed out promotional

00:11:21.840 --> 00:11:24.980
hats that just said no equals. I love that. It

00:11:24.980 --> 00:11:27.179
is such an incredibly nerdy piece of marketing,

00:11:27.299 --> 00:11:29.580
but it was brilliant. It was a boast about the

00:11:29.580 --> 00:11:32.019
quality of their engineering and a literal reference

00:11:32.019 --> 00:11:34.700
to the fact that their RPM calculators didn't

00:11:34.700 --> 00:11:38.080
have an equals key. They used RPN on every handheld

00:11:38.080 --> 00:11:41.000
calculator they sold, scientific, financial,

00:11:41.120 --> 00:11:44.419
programmable, until about 1977. But it didn't

00:11:44.419 --> 00:11:46.480
stop there. Right. The sources note that the

00:11:46.480 --> 00:11:48.379
evolution didn't stop with that four -level stack.

00:11:48.639 --> 00:11:53.740
In 1986, HP introduced RPL. The shift to RPL

00:11:53.740 --> 00:11:56.480
was incredibly significant. It moved away from

00:11:56.480 --> 00:11:59.240
that fixed, rigid four -level stack and introduced

00:11:59.240 --> 00:12:02.460
a dynamic stack. This new stack was only limited

00:12:02.460 --> 00:12:04.559
by the amount of available memory on the physical

00:12:04.559 --> 00:12:07.539
device. Wait, the sources also call RPL an object

00:12:07.539 --> 00:12:10.500
-oriented successor to RPN. I'm used to my calculator

00:12:10.500 --> 00:12:12.600
just handling flat numbers. What does it actually

00:12:12.600 --> 00:12:15.179
mean for a calculator to treat something as an

00:12:15.179 --> 00:12:17.460
object on a stack? That is a great clarification

00:12:17.460 --> 00:12:21.320
to make. In the older traditional RPN calculators,

00:12:21.360 --> 00:12:24.320
the stack could only hold numbers, a three, a

00:12:24.320 --> 00:12:27.940
four, a decimal. But a dynamic object -oriented

00:12:27.940 --> 00:12:30.879
stack can hold entirely different kinds of data.

00:12:31.039 --> 00:12:33.080
You could push a text string onto the stack.

00:12:33.240 --> 00:12:35.500
You could push a complex mathematical matrix

00:12:35.500 --> 00:12:38.980
or an entire list of variables. So it's not just

00:12:38.980 --> 00:12:41.559
basic arithmetic anymore. Not at all. You could

00:12:41.559 --> 00:12:44.299
even push a graphic image onto the stack, and

00:12:44.299 --> 00:12:46.379
the calculator's programming would know how to

00:12:46.379 --> 00:12:49.220
handle that specific object. That drastically

00:12:49.220 --> 00:12:51.059
changes the behavior of the machine, doesn't

00:12:51.059 --> 00:12:53.539
it? Because if you have an unlimited stack holding

00:12:53.539 --> 00:12:55.899
all these different objects, there is no top

00:12:55.899 --> 00:12:57.879
register to automatically duplicate when you

00:12:57.879 --> 00:13:00.350
drop a value anymore. Correct. Plus, instead

00:13:00.350 --> 00:13:02.529
of just silently dropping values off the stack

00:13:02.529 --> 00:13:04.450
when it overflowed like the older models did,

00:13:04.590 --> 00:13:06.789
the RPL system would actually display an error

00:13:06.789 --> 00:13:09.350
message if you ran out of physical memory. But

00:13:09.350 --> 00:13:11.009
we should be careful to point out that while

00:13:11.009 --> 00:13:13.929
HP gets the lion's share of the historical credit,

00:13:14.389 --> 00:13:17.070
RPN was definitely not just an HP phenomenon.

00:13:17.590 --> 00:13:19.509
Right. The sources list a surprising number of

00:13:19.509 --> 00:13:22.470
fascinating implementations globally. In Britain,

00:13:22.649 --> 00:13:24.950
Clive Sinclair released the Sinclair Scientific

00:13:24.950 --> 00:13:29.490
in 1974 using RPN. Commodore produced their Minuteman

00:13:29.490 --> 00:13:32.009
models. The Soviets used it too. Yes. In the

00:13:32.009 --> 00:13:34.129
Soviet Union, programmable calculators like the

00:13:34.129 --> 00:13:38.509
MK -52 and MK -61 utilized RPN for both automatic

00:13:38.509 --> 00:13:41.950
mode and programming. It is amazing how enduring

00:13:41.950 --> 00:13:44.450
those designs are. Modern Russian calculators

00:13:44.450 --> 00:13:46.850
designed in Novosibirsk since 2007 are actually

00:13:46.850 --> 00:13:49.190
still backwards compatible with those Soviet

00:13:49.190 --> 00:13:51.990
models. That's wild. And there is a huge community

00:13:51.990 --> 00:13:54.250
today building modern hardware, like the Swiss

00:13:54.250 --> 00:13:57.509
Micro's replicas of classic HP devices. You also

00:13:57.509 --> 00:14:00.110
see RPN living on in software languages. The

00:14:00.110 --> 00:14:02.529
PostScript page description language uses it,

00:14:02.590 --> 00:14:04.889
as does the stack -oriented programming language

00:14:04.889 --> 00:14:07.500
for it. So what does this all mean? We have traced

00:14:07.500 --> 00:14:09.500
this from wartime mainframes to modern software,

00:14:09.759 --> 00:14:11.559
but the lingering question for anyone listening

00:14:11.559 --> 00:14:14.659
is, why? If I already spent years in school learning

00:14:14.659 --> 00:14:17.320
how to write 3 plus 4, why should I retrain my

00:14:17.320 --> 00:14:19.799
adult brain to write 3, 4 plus? The answer comes

00:14:19.799 --> 00:14:22.940
down to two highly measurable metrics, speed

00:14:22.940 --> 00:14:26.929
and accuracy. Testing comparing RPN with standard

00:14:26.929 --> 00:14:29.929
algebraic notation consistently found that RPN

00:14:29.929 --> 00:14:33.289
led to much faster calculations. Now, initially,

00:14:33.409 --> 00:14:35.549
people assumed this was because the system placed

00:14:35.549 --> 00:14:38.649
a lower cognitive load on the brain, but later

00:14:38.649 --> 00:14:40.769
research clarified the nuance. It wasn't that

00:14:40.769 --> 00:14:42.710
the brain was working less, right? It was purely

00:14:42.710 --> 00:14:45.549
physical. Exactly. The increased speed simply

00:14:45.549 --> 00:14:47.669
came down to the fact that the user had to press

00:14:47.669 --> 00:14:50.850
far fewer keys. Without the need to open and

00:14:50.850 --> 00:14:53.409
close parentheses, you are physically doing less

00:14:53.409 --> 00:14:56.169
work. to input a complex formula. Furthermore,

00:14:56.370 --> 00:14:58.470
the testing showed that users of reverse Polish

00:14:58.470 --> 00:15:01.009
calculators actually make fewer mistakes than

00:15:01.009 --> 00:15:03.330
users of standard calculators. I really like

00:15:03.330 --> 00:15:05.990
the comparison from the text that likened using

00:15:05.990 --> 00:15:08.750
an RPN calculator to the workflow of using a

00:15:08.750 --> 00:15:11.070
traditional analog slide rule. Yes, that's the

00:15:11.070 --> 00:15:14.129
perfect analogy. With a slide rule, you are constantly

00:15:14.129 --> 00:15:16.590
feeding intermediate results right back into

00:15:16.590 --> 00:15:18.690
the next step of the problem without needing

00:15:18.690 --> 00:15:20.450
to write anything down on a piece of scratch

00:15:20.450 --> 00:15:23.509
paper or hit an equals key to finalize a thought.

00:15:24.469 --> 00:15:27.309
RPN operates the exact same way. You aren't stopping

00:15:27.309 --> 00:15:29.250
and starting. You're just flowing through the

00:15:29.250 --> 00:15:31.350
math. If we connect this to the bigger picture,

00:15:31.409 --> 00:15:33.169
though, we do have to acknowledge the catch.

00:15:33.929 --> 00:15:36.009
The sources provide a very balanced view here.

00:15:36.549 --> 00:15:39.330
Anecdotal evidence strongly suggests that RPN

00:15:39.330 --> 00:15:41.809
is, in fact, more difficult for users who have

00:15:41.809 --> 00:15:45.570
already had standard algebraic notation hardwired

00:15:45.570 --> 00:15:48.289
into their brains. It demands a totally different

00:15:48.289 --> 00:15:50.590
way of parsing a problem. That makes total sense.

00:15:50.789 --> 00:15:52.850
If you spend your whole life reading sentences

00:15:52.850 --> 00:15:55.610
formatted as subject -verb -object, suddenly

00:15:55.610 --> 00:15:57.610
switching to subject -object -verb is going to

00:15:57.610 --> 00:16:00.009
trip you up, even if it technically uses fewer

00:16:00.009 --> 00:16:03.169
letters. Exactly. So it represents a classic...

00:16:03.309 --> 00:16:05.769
human -computer interaction trade -off. You are

00:16:05.769 --> 00:16:08.330
trading a steep initial learning curve for a

00:16:08.330 --> 00:16:10.970
lifetime of long -term efficiency. Let's recap

00:16:10.970 --> 00:16:13.809
this incredible journey. We started with a Polish

00:16:13.809 --> 00:16:17.889
logician, Jan Jukasiewicz, in the 1920s, who

00:16:17.889 --> 00:16:20.370
just wanted a cleaner way to write logic equations.

00:16:21.580 --> 00:16:24.460
purely theoretical concept, was grabbed by Conrad

00:16:24.460 --> 00:16:26.580
Zuse for the earliest computers to save precious

00:16:26.580 --> 00:16:29.600
memory, and then mathematically refined by computer

00:16:29.600 --> 00:16:32.100
scientists all over the globe, from Australia

00:16:32.100 --> 00:16:34.639
to the United States. A truly global effort.

00:16:34.940 --> 00:16:37.940
It revolutionized the calculator industry, largely

00:16:37.940 --> 00:16:40.440
thanks to HP putting an incredibly powerful four

00:16:40.440 --> 00:16:42.960
-level stack right into the pockets of engineers

00:16:42.960 --> 00:16:45.639
and scientists. And ultimately, it proved that

00:16:45.639 --> 00:16:48.139
the way we are taught math in grade school isn't

00:16:48.139 --> 00:16:50.159
the only way for humans and machines to communicate.

00:16:50.620 --> 00:16:53.320
I think that is the most enduring lesson of reverse

00:16:53.320 --> 00:16:55.399
Polish notation. We touched on this earlier with

00:16:55.399 --> 00:16:57.539
Dijkstra's train yard analogy. But RPN forces

00:16:57.539 --> 00:16:59.879
us to look at an equation not as a static sentence

00:16:59.879 --> 00:17:02.580
to be passively read, but as an active sequence

00:17:02.580 --> 00:17:05.039
of events to be executed. And that is a mindset

00:17:05.039 --> 00:17:07.680
shift that goes far beyond mathematics. How so?

00:17:08.079 --> 00:17:10.140
Well, I would encourage you listening to this

00:17:10.140 --> 00:17:13.180
to consider your own workflows. How many systems

00:17:13.180 --> 00:17:15.839
in your daily life are currently bogged down

00:17:15.839 --> 00:17:18.980
by metaphorical parentheses? What standard conventions

00:17:18.980 --> 00:17:21.420
are you clinging to just because it is how you

00:17:21.420 --> 00:17:23.740
were initially taught? You might find that some

00:17:23.740 --> 00:17:26.200
areas of your work or thinking could become infinitely

00:17:26.200 --> 00:17:29.099
faster if you just stripped away those conventional

00:17:29.099 --> 00:17:31.700
brackets, embraced a sleeper learning curve,

00:17:31.779 --> 00:17:34.019
and learned to approach the problem in reverse.

00:17:34.440 --> 00:17:36.930
That is a brilliant thought to end on. Thank

00:17:36.930 --> 00:17:38.630
you so much for joining us on this custom deep

00:17:38.630 --> 00:17:41.130
dive into reverse Polish notation. We hope you

00:17:41.130 --> 00:17:43.269
walk away with a little more appreciation for

00:17:43.269 --> 00:17:45.369
that trusty calculator and perhaps a totally

00:17:45.369 --> 00:17:47.589
new perspective on what efficiency really looks

00:17:47.589 --> 00:17:50.490
like. Until next time, keep questioning the obvious.
