Keynote: Making Progress - Alan Kay

From Viewpoints Intelligent Archive
Jump to: navigation, search
pinnacle 21 is the leader in software for
clinical trial data we enable a clean data pipeline from
sponsors to health authorities smooth submissions bring life-saving
medicines to patients faster we are enthusiastic
supporters of the philadelphia technical community and proud
to sponsor today's keynote it is hard
to fairly summarize the career and experience of our speaker today
he is a pioneer in programming language design the
father of the modern gui and a decorated recipient of just about
award the software field has to offer
today i have the pleasure of introducing
a visionary mind who happened to cross paths with a fledgling industry
invention more than 50 years ago and it has managed
to hold its interest ever since
our modern software industry stands on the shoulders
of them here today philly ete
please welcome dr alan kaye
thank you
it's great to come to phil to philly
even if it's by the internet no
cheese steak sandwiches but
uh we'll get there next year
uh this talk is about making progress
uh i always like to
acknowledgements first because they
get lost at the end so these
people were especially helpful for
me preparing this talk
so
making progress the traditional
way going back hundreds of thousands
of years is just through smarts
and here's a very smart guy leonardo
smarter than any of us
uh he had big ideas many
kinds of vehicles to roll around
and fly but none of them worked
because his normal
the normal of his century failed
him and he wasn't smart enough to transcend it
and in fact you can imagine what it might
be like to have twice leonardo's iq
but be born in uh
say 10 000 bc
you're not going to get too far before they burn you
at the stake so here's a guy
henry ford who was nowhere near as smart
as leonardo but he didn't
have to be because he was born in the right century
and normal was enough for
him he was able to make millions of the vehicles
that leonardo couldn't
and the reason normal was enough for ford was because of
this guy isaac newton
who changed the context of the century
that he was in
this book which is
uh about many things including
the system of the planets
has nothing about it about
automobiles except everything about it
because it changed what normal was
about and so one way of thinking about this is
knowledge is silver
context is gold and very often
iq is led
you have to couple iq with the right
kind of knowledge and you get that most
strongly by finding the right kind of
context now in computing
draws smart people
they tend not to have enough knowledge
and they tend to be in very weak context there are a bunch
of reasons for this but this talk is
really about finding the context
that are available and making use
of them so
one way of thinking about today we have a
all have a perception
of normal that is somewhat subjective
it's what we think is normal
and these normals are embedded in now
hich has a lot of stuff in it that we're not
aware of we can't see much in
normal because we think of it as reality so we have to look at
it really closely to start finding
distinctions everything that's going on
in normal is definitely not good there's
also this concept of bad there's worse
there's qualitatively better
and so we
can make choices here
but as engineers
as technical people in general making
progress is about what is actually needed
that is a threshold it's the
important threshold we can ever determine
it's not better
it's not perfect it's what is actually
needed for the task at
hand in the context that we're in
and engineer
engineering is works
at its smoothest when what is actually
needed is in the normal context of the engineers
doing the work it's well known
stuff skill can be
used to apply it and things often
go quite well but
uh in some cases like
doing the space program and
bending some new technology
we have to get outside of
the normal of people participating
in it but some of the knowledge is already
the now and so what we have to do there
is just learn it
but for instance inventing something
like the internet getting
to the moon we have to get outside
of what's known and
in order to do that we have to venture
into research something that
much more tentative and explorative but
can extend out the knowledge that we have
children are actually in a nice place they don't know
a lot but they operate in a really nice
area because they don't have a strong notion of what
normal is school will eventually give them a bad
version of normal but up to that point
they're in a kind of state of grace
now i think for much of computing going forward
what's in most people's normals
good enough we'll talk about that
a little bit as we move along so my
job in this talk is to channel one of my mentors
jerry bruner and
instead of talking about
uh strange things and trying to make them familiar
i'm going to try and take what we think we know and
strange again so we can actually think about
and so here's some code
uh this is some of my
favorite code to look at and we can see it's
actually the lunar lander
from the pilot uh
guidance computer
this was used in the 60s and it's the thing we went to
the moon on cubic foot
of some of the earliest silicon transistors
they had all of 4k bytes
of random access memory
73k bytes of
read-only memory no disks no
tapes no secondary or tertiary memories
that was it it ran at a
85 000 instructions
million not billion
and it had a higher level language
in it for a variety of reasons it
ran at 41 operations per
second nonetheless it had
a real-time operating system and it had to
ccasionally thousands of processes
memory because it was
the only computer on the spacecraft
and it had to do both the
apollo
crew module and the the land the lunar
lander so this is a very interesting process
for writing software and we can see some of these comments
might be familiar to
you the hope i hope a hope there's
a kind of a sequential
flavor to this
programming but down below we say
uh continue with the automatic landing the automatic
landing this thing is landing the
uh something on the on the moon
it's restarting has there been a restart what
does all this mean so here's the
head of all of the software except
for the operating system in this
computer and here are the listings
to that software margaret
hamilton uh had a degree in pure
math and learned a program
as a for
fun and then worked on the big sage system
air defense system and then
started as a programmer at draper labs
to do this software and in a few years
they made her the head of all
of the application software
um when she showed
this uh to some friends of hers they said well
this doesn't look like pure math at all and
she said well it isn't and they said well what are you doing
she said well it's essentially software engineering
she is one of the three corners
phrase of our profession software engineering
what is it
many people today will tell you software engineering is what
they're doing but that isn't the way she thought about
it she took the word engineering very very seriously
and here's why
a few years later
we did make it to the moon
it's an oh yeah
technical term for oh yeah it's holy
oh yeah is what you want to get to
when you're doing engineering
and during this landing old 1202
popped up while they were trying to land
on the moon and that was a signal that
the computer was being overloaded
this is because an astronaut
actually threw a switch when he wasn't supposed
to uh
she was told several years earlier that astronauts
mistake and don't bother about
fault tolerance in this
on this tiny computer and she doubted
this for a very good reason we can talk about that in the
if you want and she decided to make everything fault
olerant and so her answer was
when overloaded it's designed to keep restarting throughout
throwing out low priority processes and never
crash and so they
trusted her kept on with the landing and we made
it and in fact
here's hal lanning who did this
uh the operating system and design part of the computer
uh through all of the lunar
the apollo program there
was not one bug not one crash
no astronauts were harmed
in any way and
many were saved because of the way these
two did this software
and as they said well we're making
systems not simple programs simple
programs are like stories but systems are not like
stories and engineering is making
secure systems with integrity
that's what that's what engineering means
whereas a few months ago 52
years after the lunar landing
i saw this in the paper the
is set up to get
people their vaccinations crashed
how is this possible
people undoubtedly died
because of this they spent months trying to get
this very very simple application going
well you have to deal with something that is
larger that has more
relationships than regular
programming deals with now of course i'm
knows here real question is
not whether you know it but how often do you
do it in every line of whatever code
writing systems design looks
more like a constitution than a collection of laws
or a story it's a bigger thing
and as they said you're in deep trouble if you don't use
fault tolerant loose coupling
late binding not early
and as margaret
said what is actually needed is development before the
fact software engineering what she meant
by that the fact is
an error a bug a
crash that hurts somebody or something
you want to develop before
the fact so that doesn't happen you're going to have errors
but the way they went
about things is that no error
should actually be able to
propagate to cause real harm
because the moonshot
was done really early
in many kinds of technology
and so it was actually a systems
coordination of 400 000 people
maybe 20 000
companies and uh 178
or so billion dollars of today's money
so everything that they did was about
trying to think in terms of systems
half million
parts just in the apollo command
module and another two and a half million parts
in the lunar lander
well
if what you're trying to do is not a story
we know how to tell stories that's what i'm doing right now
it's a system how do you tell a system
well you have to make something like this
and the purpose of these big rooms
wide angles is to answer questions like
these these are the things that we need to know
them about the entire system
so we
notice that if your user interface designer which most
people aren't this is also the main job of the
user interface this is what you have to think about
the questions you have to answer
what when i've been asked in
do some consulting the first thing i want to see
when i visit a software organization
is where is your situation room
where you can understand what's going on virtually
nobody has them and
there's no really no excuse for it not just because
video projectors are cheap now but because
if you think about it real hard wide
angle virtual reality is fantastic
for dealing with
a system you don't even need 3d
just virtual reality and 2d
will give you the sense
thing and allow the kind of
meetings that you need to have when you're dealing with
complexity
and of course here's a famous one
grander than the ones that we actually need
the
bible is full of
stories but what michelangelo
wanted to do was to give a sense of the system
and it's a wide-angle thing
many people who are listening to this talk will have have been
and the
problem with the laptop screen is the the angle
of vision is too wide we can get a
huge angle of vision by getting close but our eyes are not made
so we need
something that allows us to deal with
information in our periphery as well
as uh in our fovea
and at the bottom i say systems are about happenings
i mean stories are about happening systems are about
relationships okay so
here's a big body of water of
course we want to get across it and historically
the way things started was somebody
something could be a log
in this case it's a rope bridge
tinker little bridge
it's one kind of knowledge and tinkering we share
tinkering with uh all primates
and most mammals and
the second kind of knowledge we have is liking
what we tinker or not and
often that will lead us to be much more careful about
thinking about building something or cooking
a meal and engineering got started
really early because it didn't have to know why
things worked it just had to find out what worked
and so in the old days you would gather a kind
whether it's for a bridge or for
people
soon started realizing that you could do a
lot of work with symbols and this is one
of the biggest drivers for the mathematics that we
know today to replace with symbols
and models uh
the more costly having to build large
things that fall down
then only a few hundred years ago we get
science science
is a very different kind of way of
looking at things it gives us a theory
in this case it's a theory
artifact a theory of a bridge because science doesn't
care where the phenomena come from
science is about the relation we can
talk about this if you want in the
q a so five
knowledge this is their historical
if we come back and look at
the akashi strait here and how big is this
straight well there's the empire state building and
the great pyramid of giza in
europe in egypt
and oh yeah yeah we can get
so this
is the largest suspension bridge in the world
and it required a
combination of
getting the science done feeding the
science back into the engineering using
models and
making a wonderful synthesis of
these main disciplines
that is why it's really uh our greatest
be born into this time
uh of science engineering and mathematics
working together
well here's another dream about water
this time about flight
icarus leonardo took
had engine problems
people tried to do man-powered flight
a british industrialist henry cramer
put up money big money about
seven or eight hundred thousand dollars today
for the first real man-powered flight
they kept on crashing the planes
and after some decades of this
uh the guy who was the first world
champion and an aeronautical engineer
mccready was trying to figure out how
to pay off a debt his brother-in-law
had incurred and that morning he had noticed that the exchange
rate made the kramer prize for
flight exactly
the debt his brother-in-law had incurred and started
thinking about and his main thought was well
the best people in the world
knew a lot of the people who were doing this best people in the world have
n't had anything close
to his success what's what is the problem and he said
well the problem is we don't understand the problem
so he abandoned thinking about human-powered
flight and asked what is a better problem
and he went back to his group
in simi california
bout human-powered flight
something that
can be repaired so quickly that we can handle 10 crashes
a day something is just made
out of really scotch tape and some mylar and
some aluminum struts
and six weeks later they had
had more flights and more crashes than everybody
else in history put together
and
in six months
they won the kramer prize
and
a few months later
they won the lot even larger kramer prize
nglish channel about 22
and the british
press interviewed mccready and
asked well how could you do this
so easily when everybody else was struggling
for decades and and he said well
they were trying to build an airplane we were trying to do human-powered
flight in other words having an airplane
as a goal was actually counterproductive
because
these ultralight planes with these huge
wings and huge difficulty in turning
weren't really enough like an airplane so that prior
instead some science
had to be done probing what the real world
was actually about in this place
where airplanes didn't scale
so
here's one way of thinking about this
so we're taught to go
from a to b in school
that's problem solving
but in fact real problems have more dimensions
so often there the things
get really really difficult in various ways we're
smart we'll abandon the what we're trying to do
and explore that will sometimes allow
super highway that's much more
efficient we could invent something to fly over the uh the
obstacles basically we have to get out of
this pink way of thinking and sometimes
when we do that we will find
a sea that's a destination that we couldn't even imagine
before and so
that allows us to come back
to the dream of icarus which is much
more than uh getting across
the channel in fact it's 72
miles from crete to santorini
that was the the flight of the fable
well we got had the dream the tinkering
was done the engineering
was done really well to get across the channel
now we need to science the out of it as matt damon would
say and uh mit
and a number of nasa and a number
of other big guns got interested in what mccready
had done and really went out
after it so they could then engineer the out of
it
and not too many years ago this
flight likened
to two marathons was made
from crete to santorini
following the route of daedalus
so this is another one of those oh yeahs
that if you don't love this
you shouldn't be in engineering
so we've talked about these five
of activities knowledge outlooks
and these five different things attract
different personalities
and but
we can see that there could be uh an intersection
where all five of these are actually
more powerful now all of the great research
groups that i've been in
uh have people who
are good at each one of these things who have learned all
and this is where the modern
world comes into play it's just not enough
to be a tinkerer or an engineer
when you're working on important problems
o a great group you
can think of this like a basketball team this is a five
there are five kinds
things here so outside shooting passing
play making dunking
reat group is smarter than the smartest
member a great basketball team is
a better basketball player than the best
person on the team bad group is stupider
than the stupidest member a bad basketball team is worse
than the worst member so a
whole deal here and this is
110 of the problem
real things according to the best
i know is getting the
right people robert hyland had a good
the only form of life with 10 bellies
and no brain so you don't want that
now when i look out
at the world software still seems
like a fair amount of tinkering a little bit of engineering
people like their tinkering too much
well we've seen that there can be
a real engineering of software
it happens rarely but it has happened
something that can stand up to
sense of the term engineering
what margaret and hal did for the moonshot
the work on the internet and so forth but
what about science of computing what if we took the word science
not as a metaphor
but what if we took it seriously for what science is actually all
well science looks at phenomena so we
get phenomena from artifacts and we don't want to look at the artifacts
directly we want to see the fireflies
cientists try and find the fireflies it's you don't want
to get distracted by what seems to be there it's
what underlies it and john mccarthy
in 1958 came up with a hell of a t-shirt
to uh characterize
what he thought computing was about
and it's kind of like maxwell's equations for
software but uh
on a on a t-shirt like maxwell's equations
are and he wrote a great paper
of newton-esque one of the things he
pointed out in 1958 he said look
programs are going to
participate in their programs
in order to do that
the representations that they deal with have to
represent meaning in ways that are not
just outside the programs the way most programs are
but where the meanings are actually
encoded as relationships that
other programs can understand so this is part about
what he was about which was not just doing a
programming language that was very high
level but doing a programming language that was also meta
eye level and could look at itself what we call
reflection today
okay
well math
doesn't have to be real but
in computing we have to implement stuff to
vet it and steve russell
said well looking at mccarthy's t-shirt
if i implement it we'll have a running system and as john
said he did and we did
so you get all of these things in computing if you do
the design really well
and it doesn't have to be slow
because you can make a machine that will run it fast this is like
people have finally gotten around to the idea
of gpus uh 40
years ago they are derided wait for moore's law
and but in fact before that
uh people who are really serious about high-level
were building special machines that would run them very
efficiently and this is a list machine
and the idea is a
great idea that slow can often be optimized and retain
goodness
remember computers are only there to run programs
and the job of programmers is not to make intel look
good intel has got it backwards
hould be doing is learning
about software which it doesn't
and making processors
that will run the highest level languages
most efficiently and they don't
and the problem is trying to optimize
early makes it very very difficult for most people
to even have a good idea
so this is where you have study this is
from more than 60 years ago and again
you can learn a lot from just learning lisp
and how mccarthy went about it but
really the main point is what are the fireflies
from this landmark piece of work
well here's my
research community and some
of the oyas that it did in the 60s
just point out here's hal lanning again he did
the first interactive higher level language
it actually started working
before fortran and fortran was not interactive
the bottom row was done by xerox
about five years by a
grand total of 25 researchers so
this is not all the technology we use today but a lot
of it was done by this one community
and outside the community there's a lot
of pushback you know why would you want
would say well why we'll make a qualitative difference
doing no you really aren't why is too slow
well we know how to speed it up why it takes too long to make well
quickly well y is for sissies
so this has happened in waves
over a very long time
our funders
didn't worry about what the outside world
was thinking and let
stuff and
here is the uptake on some of these ideas
only about 30 percent on engelbart there over on
the uh the middle right
100 on the internet nobody
to do one 100 on the ethernet
nobody knew how to do one similarly the laser printer
only 50
on uh the alto personal
computer because people thought they knew
computers especially intel
and so what you've got is something that looked kind of like
but couldn't do what it could do and
the best software we did i estimate there
was only about 10 percent take up everybody thought
program and in fact everybody
does that's not the
point okay so but here we
go back to where we were talking if remember we
decided i decided that
most uh computer
people is actually hurting
and another way of looking at this
is to
think about and this is in my
that too much of software
is still like tinkering
the aesthetics are actually people loving their
tinkering too much and there's a little bit of engineering
here and there and occasionally a whole big thing of
engineering it's not that everything is bad
it's that too much of it is
and so we really need after 40
years of this we've got
something like all of the plastic junk in the pacific
going we actually need something that
gets beyond uh the best stuff
that is known now we
need more research and the good old funders they aren't around
anymore but i think for practical
are working for companies who are
trying to make progress at a more local
level the question really is is
what is the thing that
can be done that uses some
of what you do know and
requires a little bit of learning of stuff that is already
known that could make a huge impact
the thing i picked for this talk
was scaling
because scaling was forced on computing by
moore's law and except
for a few uh special cases
the industry has done extremely
badly at dealing with scaling
so i use this font
heuristic here says if
big needs try to do a
margaret margaret had limited resources she
had big needs and what she thought
through is what is what do you absolutely have
to do in order to make some
progress and especially to do
build the rest of the stuff that's needed on
okay this is a real picture
i like it because it reminds me of a lot of things
ign do not touch any of these wires
this wire over here was
once a good idea and so
somebody added another wire and added
another wire and pretty soon you got this
so the two biggest problems here are
lack of systems thinking because most
people are taught programming as algorithms and data structures
not as systems thinking
and the other is this idea of premature
optimization of intertwining the
optimizations in the code rather than
meaning out from the
optimizations
okay so this tangle of wires
is
involving everything together but you
can replace everything in this room with just a simple
ethernet it's just a simple thing in fact
cars are starting to do this now after 40
years and we spent a long time
trying to get xerox to replace the wiring harness
in xerox machines with something like a simple ethernet
so if we look at networking
at in this arpa park
research community
look lighter called for an intergalactic computer
network in 1963
he was asked why and he said well
engineers always give you the minimum i wanted to cover the earth
so i've asked for intergalactic i need to force
them out away from trying to
use things that don't scale like the way the telephone system
is done and he was a psychologist but he
had a very good sense of systems
and he said if we succeed in making the intergalactic
then our main problem will be learning to communicate
with aliens we'll see what that means
a bit and so
thinking about networking
in this community the idea was what can we
scale can we scale communication by
uh let's say 10 or 11 orders of magnitude
without the thing breaking
and of course if we scale it like that we can't afford to
take it down so it has to run continuously
no matter what goes wrong with it
and many of you will be familiar
well although many i've found to many computer
people don't really understand why the internet
works it works so well it doesn't seem to be a
rtifact like it never crashes
you cannot crash the internet
because messages cannot be commands
any crashes that happen
happen inside individual computers because of bad
software somebody put there
ach computer on the
alien as is the
software inside of it so you have to think about what
communicate with aliens even just to send
it's too big to control from a center
you can't have a hierarchical control system
you have to have something that's more like biology where there's
no center the system itself
has to take care of keeping itself stable
that was one of the most fun problems to work on
and under
this scheme and a few other things i'm not mentioning here
the computers can't be other than servers
you can't command them
you can only ask
would you do this for me please they can say
no you separate
everything you can separate the transport
from the assembly and error correction
that's what the slash means there
the reason it was done is when they were working on tcp
they're already thinking of things like udp
you need to have various ways of
with uh this very complicated
being made so here are
some of the many heroes for
both the internet and the uh
ethernet
okay so while this was going on a bunch of us
were also working on the idea of
a software internet where you have virtual
computers computer uh connect with a software bus here
some of the heroes there i single
out dan angles because he was the first one to make
an artifact that you could
do large systems completely
successfully in
same basic idea you
have to have 100 percent encapsulation
messages can't be commands you have to
deal with aliens and
these virtual computers can't be other than servers
well
this is a problem because
now that we've got this software net
still doesn't tell us how to organize our computations
o first let's analyze some of the mess that we've made
and a good book to read about this is alexander's
first book which is a better
book i think about design
than his pattern language books
so
you've got a bunch of things that you have to deal with let's
them processes but if we look closely we
really complex about them are the relationships
between them
and what you want to do is find
the least connectivity
to make modules
figure those to be
the communications paths and then encapsulate everything
now you've
simplified that one part of
it but it's not that simple because
what if you want to reformulate things
that might not be the best decomposition there's
a lot more things to think about and going in the opposite
direction designing a system is more difficult
because you have to supply the information
that extra information to come up with relationships
so here are some of the heroes
thought about this especially
how you do the intercommunication
note that some of the things that
favorites today like type schemes and naming
of things don't scale at all well
send to something that's across a billion node
network the chances you're going to get type
matching is zero
and that you'll know the names of all the things you need to
know are close to zero also
you have to go from types
of things to descriptions and behaviors
the descriptions and behaviors can
bit like types but they're of a larger
scope you're
two of the most interesting thinkers about this
doug lennon for meanings of things and glerder
thought
about how you coordinate all of these things over arbitrary
scales did a system in the 80s called linda
it has a really nice t-shirt you
should look at it and see
what you think about it okay
so
now that we've virtualized everything
can put our software internets on
all the hardware
and we can connect those
up by messaging and what this
allows us to do is to completely disappear all of
the hardware of the internet
and do all of our software using virtual processes
this allows us to
send a virtual process somewhere else if it needs
to run faster there or can do a better job
one of the first times this was done in a
way that was really important was in postscript
done by john warnock and chuck
geschke who later went on to found
a little company called adobe if you
think about it the an
interpreter is smaller than all
of the knowledge you have to know to parse all of the
might have to parse to deal with all
of the possible printers printing of pages
you need to have so you're much better off
sending the program that
is what we used to call
objects just send a process to
the printer the printer can execute it blindly and
safely and you print out what's left and
that is why adobe is the company that it is
this was done in a general way
by jerry popek for unix
system called locus wrote a
book take a look at it so here's
a big idea that's hard for people to get
to a computer is universal
so every kind of thing at every scale
can be represented and made from a software computer
you only need one kind of abstraction
wrap everything in and
if you do that it will allow you
to unsnarl all the problems of meaning
from the many separate problems of
optimization
today there are many different kinds
of manifestations of this thing but
virtually none of them are complete enough to actually
scale
well
complete encapsulation i'm
now saying publish and subscribe because it's
usually done really badly so i'm
saying publish and subscribe done really well
you need to understand
what both leonard and galender
are getting to you have to wrap everything
you've got controls
the mess in the pacific make every new
stuff in the new thing and then there's a whole bunch
that actually has to be learned
beyond this but the nice thing about it
is that this stuff that has to be learned beyond
this and the research that has to be done is something
that actually can build on
on what i'm talking about here
okay i'm gonna
wind up here with how not to make progress
it's hard not to love this guy
here's macarthur wheeler robbing a bank
and being caught by the camera
here he is handcuffed in
jail it was very easy to run him down and
he was incredulous he said but i wore the juice i wore the juice
what juice well he smeared his face with
lemon juice because somebody had shown
can make invisible link with lemon juice and he figured
smearing his face with lemon juice would make it impossible
pick him up yep
true story and he's not the only one
this is sometimes called the dunning-kruger
those are the two psychologists who studied wheeler
it's now a syndrome and of course all humans
have it we are always
almost always overconfident but
some people have it to a ridiculous extent
these smug pilots have lost touch with regular
passengers like us who thinks i should fly the plane well
crazily peop some people do
we just had a president who
could run the comp country without any basis
whatsoever and people agreed with them
on the other hand if you really want dunning-kruger
take a look at most software if you want something that is more
confident than its actual abilities take
software of all kinds
the difference that
software needs is rarely built in by programmers
this one is particularly dangerous
the boeing 737 max
autopilot and now
we are not funny anymore because everybody here
is literally going to die and they
two plane loads died because
of boeing management
so a combination of doing a really bad job
of every phase of engineering here
the management killed a bunch
of people and i found this
picture uh some months ago
about the that showed the electronics
bay in the 737 and
my reaction was whiskey tango
foxtrot as we used to say in the air force it's like what
the this this is what this
aircraft and then about three
weeks ago i found this in the new york times
potential electrical problem with the max
component of the electrical power system
on max planes was sufficiently fastened or
so this is what we
really have to deal with here this is what real engineering
is about is dealing with the whole system
and
we end with this tranquil scene here's a bridge
that's just about 2 000 years ago uh
old and it looks many parts of it look like
it was built yesterday here's a plane that's about 10 years
the pledge
of a real engineer is the bridge must not collapse
the plane must not crash
must not harm or fail
and the software has more
degrees of freedom and reach than anything so the
engineering has to be of an even higher quality
than developed engineering
we don't really know how to do this very well but we
need to aspire to it and think about it
every second of our careers
thank you very much
uh so
alan if we have uh if we have time for questions
hown up in the uh in the chat
and in slack um
so i i see one right here what are your thoughts on the progress of
interfaces in the last 20 years specifically as programs
have moved from running natively to running on browsers
well
so i think the first thing is
the i think the best exercise any
software engineer can go through is to see
if they can find out how to criticize
the web and the
browser in
a way that
has some objectivity to it
one of the worst designs that has ever been done in
computing and at least
in the when i teach a class at ucla
i can't find even the graduate students who can
criticize it they can't
even criticize it and compare it to much better
applications done on personal computers
o that's the first thing then the second
thing is the good news is
that although the overall user interface
uh i think is
much worse so one of
just access to
controls the user interface
is uh
let's see
sorry
a user interface is something where
you need to be able to
explore you need to be able to try things and recover
from and so if you look for example
on the iphone and the ipad
you find almost no undo
left one of the ideas was you shake the iphone
but almost nobody who implements an app for
the iphone or the ipad that
implements an undo from the act of shaking
it so this is a great step backwards to help
how do i find out how to do something
like how do i find out what gestures would
really make me powerful in this app
doesn't exist and a
gesture based system is actually something that
is designed to become an expert
it's designed to be more efficient than
uh dealing with uh
simple pointing and so you need to have
help systems so what i think of as
the paraphernalia that are needed just
to deal with things that are like personal computing
in the web and the web browser
are really badly lacking
but then it's also been 50 years since
the park gui and
there are many more things that need to be done
but the good news is i'll just give you one name
who uh
that name is brett victor look him
up take a look at his web page
he is one of the best user
interface designers ever
as every bit as good as we were 40
50 years ago and if you look at
the stuff that he's been working on the last few years
he's not just doing some of the nitty-gritty stuff
better but he's also doing some of the larger thinking
better i think of him as
a worthy intellectual
heir of uh doug engelbart
so it's actually hard to pick the questions out there's a lot of activity
on the slack channel with with all kinds of positive feedback
and applause for the uh for your talk
so so thank you again uh for everything i've i've picked a couple
there's there's a few questions in here with people asking for you to
clarify some of the comments that you you made
one of them is to talk a little more about uh what
means for a language to be interactive versus non-interactive
well
the last time i looked c plus plus was not interactive
meaning it doesn't even have
print loop screen
and that is a far cry from
where small talk got to 50 years
ago which
is not just being
able to type commands in but being able
to deal with an entire live environment
so part of the thing is uh
if you think about the internet the internet
is has to be
it has to always be live
it cannot be taken down to fix it just
as our bodies
we have to be fixed while we're still alive it's hard to bring us
back to life and so once
you get into that range which people started
getting into very seriously because this is the message
when you're doing scaling of
computing systems is you have to move from this
idea of running little jobs or doing little
something or taking out a server
to do maintenance on it that's crazy the
server on the internet is just a name
if something wrong with one server hardware put in
another piece of hardware they're cheap
copy the stuff over and then take the bad hardware
offline so the whole attitude
about liveness
and by the way liveness is a relatively
new phrase which is crazy considering
that was what the opera community and the park community
all about personal computing the whole
it was to make live things
that people
that acted as sort of complementary
partners in people's intellectual
and artistic pursuits
well thank you again
if you have a few extra minutes we'd invite you to
join us on the slack channel there's some other questions
to in the um and we're gonna
room a um and we'll we'll copy some
chant the questions in there so um
so so thank you again