Transcript
IT__Nrr3PNI • James Gosling: Java, JVM, Emacs, and the Early Days of Computing | Lex Fridman Podcast #126
/home/itcorpmy/itcorp.my.id/harry/yt_channel/out/lexfridman/.shards/text-0001.zst#text/0449_IT__Nrr3PNI.txt
Kind: captions
Language: en
the following is a conversation with
james gosling the founder and lead
designer behind the java programming
language
which in many indices is the most
popular programming language in the
world
or is always at least in the top two or
three
we only had a limited time for this
conversation but i'm sure we'll talk
again several times in this podcast
quick summary of the sponsors public
goods betterhelp
and expressvpn please check out these
sponsors in the description to get a
discount and to support this podcast
as a side note let me say that java is
the language
with which i first learned object
oriented programming
and with it the art and science of
software engineering
also early on in my undergraduate
education i took a
course on concurrent programming with
java
looking back at that time before i fell
in love with neural networks
the art of parallel computing was both
algorithmically
and philosophically fascinating to me
the concept of a computer in my mind
before then was something that does one
thing at a time
the idea that we could create an
abstraction of parallelism where you
could do many things at the same time
while still guaranteeing stability and
correctness was beautiful
while some folks in college took drugs
to expand their mind
i took concurrent programming if you
enjoy this thing subscribe on youtube
review it with five stars on apple
podcast follow on spotify
support on patreon or connect with me on
twitter at lex friedman
as usual i'll do a few minutes of ads
now and no ads in the middle
i try to make these interesting but i do
give you timestamps
so go ahead and skip but please do check
out the sponsors
by clicking the links in the description
it's the best way to support this
podcast
this show sponsored by public goods the
one-stop shop for affordable sustainable
healthy
household products i take their fish oil
and use their toothbrush
for example their products often have a
minimalist black and white design that i
find to be just beautiful
some people ask why i wear this black
suit and tie
there's a simplicity to it that to me
focuses my mind
on the most important bits of every
moment of every day
pulling only at the thread of the
essential in all that life has to throw
at me
it's not about how i look it's about how
i feel that's what design is to me
creating an inner conscious experience
not an external look
anyway public goods plants one tree for
every order placed
which is kind of cool visit
publicgoods.com
lex or use codelex at checkout to get 15
bucks off your first order
this show is also sponsored by better
help spelled h-e-l-p
help check it out at betterhelp.com lex
they figure out what you need and match
you with a licensed professional
therapist in under 48 hours
i chat with the person on there and
enjoy it
of course i also regularly talk to david
goggins these days
who is definitely not a licensed
professional therapist
but he does help me meet his and my
demons
and become comfortable to exist in their
presence
everyone is different but for me i think
suffering is essential for creation
but you can suffer beautifully in a way
that doesn't destroy you
i think therapy can help in whatever
form that therapy takes
and i do think that better help is an
option worth trying
they're easy private affordable and
available worldwide
you can communicate by text anytime and
schedule weekly audio and video sessions
check it out at betterhelp.com lex
this show is also sponsored by
expressvpn you can use it to unlock
movies and shows that are only available
in other countries
i did this recently with star trek
discovery and uk netflix
mostly because i wonder what it's like
to live in london
i'm thinking of moving from boston to a
place where i can build the business
i've always dreamed of building london
is probably not in the top three
but top ten for sure the number one
choice currently
is austin for many reasons that i'll
probably speak to another time
san francisco unfortunately dropped off
from the number one spot but is still in
the running
if you have advice let me know anyway
check out expressvpn
it lets you change your location to
almost 100 countries and it's super fast
go to expressvpn.com lexbod to get an
extra three months of expressvpn for
free
that's expressvpn.com lex
pod and now here's my conversation
with james gosling i've read somewhere
that the square root of two is your
favorite irrational number
i have no idea where that got started
um is there any truth to it is there
anything in mathematics or numbers that
you find beautiful
oh well there's lots of things in in
math that's
really beautiful um you know i
i used to consider myself really good at
math and these days i consider myself
really bad at math
i never had really had a thing for the
square root of two
but when i was a teenager
there was this book called the the
dictionary of curious and interesting
numbers
which for some reason i
read through and damn near memorized the
whole thing
and i started this weird habit
of when i was like filling out
checks you know or you know paying for
things with credit cards
i would want to make the the receipt add
up to an interesting number
is there some numbers that stuck with
you that just kind of make you feel good
they all have a story and fortunately
i've actually
mostly forgotten all of them
um are they uh so like 42
uh well yeah i mean that one 42 is
pretty magical
and then the irrationals i mean but is
there a square root or two
story in there somewhere well it's
it's like the only number that has
destroyed a religion
in which way well the the
pathagorians they they believed that all
numbers were perfect and you could
represent anything as as a as a rational
number
and
[Music]
in that in that time period
um the this proof came out
that there was no
you know rational fraction whose value
was equal to the square root of two
and that that means nothing in this
world is perfect not even mathematics
well it it means that your definition of
perfect was imperfect
well then then there's the ghetto and
completeness theorems in the 20th
century that ruined it once again
for everybody yeah although although
although
girdle's theorem um
you know the lesson i take from girdle's
theorem is not that
you know there are things you can't know
which
is fundamentally what it says um
but you know people want black and white
answers
they want true or false
um but if you if you allow a three-state
logic
that is true false or maybe
then then life's good
i feel like there's a parallel to uh
modern political discourse in there
somewhere
but yeah let me let me ask
um so with your kind of
early love or appreciation of the beauty
of mathematics
do you see a parallel between that world
and the world of programming you know
programming is
all about logical structure
understanding the the patterns
that um come out of
computation understanding
sort of i mean it's often
like you know the path through the graph
of possibilities
to find a short a short route
meaning like uh find a short program
that gets the job done
yeah kind of thing but uh so then on the
topic of irrational numbers
do you see dc programming
you just painted it so cleanly uh it's a
little this trajectory
to find like a nice little program but
do you see it as fundamentally messy
maybe unlike mathematics i don't think
of it as
i mean i mean you know you watch
somebody who's good at math do
math and you know often
it's it's fairly messy sometimes it's
kind of
magical um
when i was a grad student
um one of the students his name was jim
sax
was he had this this this
this this reputation of being sort of a
walking talking human uh theorem proving
machine
and if you were having a hard problem
with something you could just like
accost him in the hall
and say jim and
and he would do this this this funny
thing where he would
stand up straight his eyes would kind of
defocus he'd
go uh you know just just like get you
know like like
something in today's movies
and then you straighten up and say and
log in and walk away
and and and you go well okay so n log n
is the answer how did he
get there
by which time he's you know down the
hallway somewhere yeah
it is just the the oracle the black box
just gives you the answer
yeah and then you have to figure out the
path from the question to the answer
i think in one of the videos i watched
you mentioned
uh don knuth uh well
at least recommending his uh you know
his his book
is something people should read oh yeah
but in terms of
you know theoretical computer science
do you do you see something beautiful in
in
that has been inspiring to you speaking
of n log n
in your work on programming languages
that's in the in that whole world of
algorithms and complexity
and you know these kinds of more formal
mathematical things
um or did that not really
stick with you in your programming life
it did stick pretty clearly for me
because
one of the things that i care about is
being able to
sort of look at a piece of code and and
be able to prove to myself that it works
um you know and
you know so so for example i find that
um
i'm i'm at odds with many of the people
around me
over um issues about like
how you lay out a piece of software
right you know so so software engineers
get really cranky
about how they format their the
documents that are the programs you know
where they put new lines and where they
put you know the braces
the braces and all the rest of that
right
and i tend to go
for a style that's very dense
to minimize the white space um yeah well
to maximize the amount that i can see
at once right so i like to be able to
see
a whole function and to understand what
it does
rather than have to go scroll scroll
scroll and remember right yeah
i'm with you on that yeah that's and
people don't like that
yeah i've i've had i've had you know
multiple times when
engineering teams have uh staged
what was effectively an intervention
um you know where they they invite me to
a meeting and everybody's arrived before
me and they so all look at me and say
james about your coding style
i'm sort of an odd person to be
programming because i don't think
very well verbally um
i am just naturally a slow reader
um i'm what most people would call
a visual thinker so when you think about
a program what do you
what do you see i see pictures right so
when i look at a piece of code on a
piece of paper
it very quickly gets transformed into a
picture
um and you know it's almost like a piece
of machinery with
you know this connected to that and like
these gear
knobs yeah yeah i i see them more
more like that than i see the the
the sort of verbal structure or the
lexical structure of
of letters so then when you look at the
program that's why you want to see it
all in the same place then you could
just map
it to something visual yeah and just
kind of like like it leaps off the page
at me and
yeah what are the inputs where the
outputs what the heck is this thing
doing yeah
and yeah getting a whole vision of it
can we uh
go back into your memory memory
long-term memory access what's the first
program
you've ever written
oh i have no idea what the first one was
i mean i i know the first machine that i
learned that i learned to program on
what is it was a
pdp-8
um at the university of calgary
do you remember the specs oh yeah so
so the thing had 4k of ram
nice 12-bit words
the clock rate was um
it was about a third of a megahertz
oh so i didn't even get to the to the m
okay yeah
yeah so you know we're we're like
10 000 times faster these days
um and was this kind of like a super
computer like a serious computer
for no the pdp 8i was the
the first thing that people were calling
like mini computer
got it they were sort of inexpensive
enough
that a university lab could maybe afford
to buy one
and was there time sharing all that kind
of stuff um there there actually was a
time sharing os
for that but it wasn't
used really widely the machine that i
learned on
was one that was kind of hidden in the
back corner
of the of the computer center
um and it was
it was bought as a as part of a
um project to do computer networking
um but
you know they didn't actually use it
very much it was mostly just kind of
sitting there
and it was kind of sitting there and i
noticed it was just kind of sitting
there and
so i started fooling around with it and
nobody seemed to mind so i just kept
doing that and
i had a keyboard and like a monitor
oh this is way before monitors were
common
so it was it was literally a a model 33
teletype
okay with a paper tape reader
okay so the user interface wasn't very
good yeah
yeah it was it was the first computer
ever
built with integrated circuits
but by integrated circuits i mean that
they would have
like 10 or 12 transistors
on one piece of silicon right not the 10
or 12
billion that machines have today
so what did that i mean feel like if you
remember those
i mean did you have kind of inklings of
the
the magic of exponential kind of
improvement of moore's law
of the potential of the future that was
at your fingertips kind of thing oh it
was
just a cool yeah it was just a toy
you know i had always liked building
stuff
but one of the problems with building
stuff is that you need to have
parts you know you need to have pieces
of wood or wire
or switches or stuff like that and those
all cost money
and here you could build you could build
arbitrarily complicated things
and i didn't need any physical materials
um it required no money that's right
it's a good way to put
programming you're right it's uh if you
love building things
it uh okay so it you know completely
accessible
you don't need anything and anybody from
anywhere could just build something
really cool
yeah yeah if you've got access to a
computer you can
you can build all kinds of crazy stuff
um and
you know and when you were somebody like
me who had like really no money
um and i mean i
i remember just lusting after being able
to buy like
a transistor
um you know and when i would do
sort of electronics kind of projects
they were mostly made
done by like dumpster diving for trash
you know and you know one of my big
hauls was
uh discarded relay racks from the back
of a
the phone company switching center oh
nice
that was the big memorable treasure oh
yeah yeah
that was what do you use that for i i
built a machine that played tic-tac-toe
nice out of relays of course the thing
that was really hard
um was that all the relays required a
specific voltage
but getting a power supply that will
would
do that voltage was pretty hard and
since i had a bunch of trashed
television sets i had to
um sort of cobble together something
that was
wrong but worked um
so i was actually running these relays
at 300 volts
and and none of the electrical
connections were
like properly sealed off
you survived that period of your life oh
for so many reasons
for so many reasons i mean you know
you're
you know it's pretty common for teenage
geeks to
discover oh thermite that's real easy to
make
yeah well i'm glad you did but do you
remember the
do you remember what program in calgary
that you wrote anything that stands out
and what language
well so mostly the
anything of any size was
assembly code um
and actually before i learned assembly
code there was this
programming language on the pdp called
focal five
and focal five was kind of like a really
stripped down
fortran and
i remember playing but you know building
programs that did things like
um play blackjack um
[Music]
or solitaire or for some reason or the
things that
i really liked were ones where they were
just like
plotting graphs so something with
uh like a function or a data and then
you'd plot it
yeah yeah i did a bunches of those
things and
went ooh pretty pictures um
and so this would like print out again
no
no monitors right so it was like
on a teletype yeah
so using something that's kind of like a
a typewriter and then using those
to plot functions so when i apologize to
romanticize things
but when did you first fall in love with
programming you know what was the first
programming language like it's a serious
maybe software engineer where you
thought this is a beautiful
thing i guess i never really thought of
any particular language as being like
beautiful because it was never really
about the language for me it was about
what you could do with it
um and you know even today
you know people try to get me into
arguments about
particular forms of syntax for this or
that and i'm like
who cares you know it's it's about what
you can do
not not not how you spell the word
um and you know so back in those days i
i learned like pl one and fortran
and cobalt and and you know by the time
that
people were willing to hire me to do
stuff
you know it was mostly assembly code and
you know pvp assembly code and and
fortran code and
control data assembly code for like the
cdc 6400 which was an
early i guess super computer
even though that super computer has less
compute power than my phone
by a lot and that was mostly
like said fortran yeah world
that said you've also showed
appreciation for the greatest language
um ever that i think everyone agrees is
lisp
um well lisp was definitely on my list
of the greatest ones that have have um
existed is that number one or i mean
um are you i mean you know that you know
the thing is that it's it that you you
know
i wouldn't put it number one now is it
the parentheses what uh
um what do you love what do you not love
about lisp
um well i guess the number one thing to
not love about it is so freaking many
parentheses yeah um on the
on the love thing is you know out of
those
tons of parentheses you actually get an
interesting language structure
and i've always thought that there was a
friendlier version of lisp
hiding out there somewhere but i've
never really
spent much time thinking about thinking
about it but
you know so like like up the food chain
for me um then from lisp is
simula which a very small number of
people have ever used
but a lot of people i think he had a
huge influence right
yeah the programming but in the simula
i apologize if i'm wrong on this but is
that one of the first functional
languages
um or no no it was it was it was the
first object-oriented programming
language
got it it's really where object-oriented
and languages sort of came together
um and it was also the
the language where co routines first
showed up as a part of the language
so you could have a programming style
that was
you could think of it as multiple uh
sort of multi-threaded
with a lot of parallel parallelism
really there's ideas of parallelism in
there yeah
yeah so that was that was back you know
so the first stimulus spec was simula 67
like 1967. yeah
wow so it had it it had co-routines
which are
almost threads the the thing about co
routines is that they don't have
true concurrency so you can get away
without
um really complex locking you can't
usably do co-routines on a
on the multi-core machine or if you try
to do core
code routines on the multi-core mute
machine you
don't actually get to use the multiple
cores
um either that or you you know because
you start
then having to get into the universe of
you know semaphores and locks and things
like that
um but you know in terms of the
the style of programming you could
write code and think think of it as
being
multi-threaded the mental model
was very much a multi-threaded one and
all kinds of problems you could approach
very differently
to to return to uh the world of lisp for
a brief moment you uh at cmu you've
you uh wrote a version of emacs
that i think was very impactful on the
history of emacs
um what was your motivation
for for doing so at that time
so that was in like 85 or 86.
um i had been using
unix for a few years
and um most of the editing was
this this tool called edie um
which was sort of an ancestor of vi
and is it a pretty good editor
not a good editor well if if what you're
using
um if your input device is a teletype
it's pretty good yeah it's certainly
more humane than tico
which was kind of the the common thing
in
a lot of um the dec universe at the time
tico is both tk is that the tico t-e-c-o
the text editor and corrector corrector
huh
so many features um
and the original emacs
came out as so emac stands for editor
macros
and tico had a way of writing macros
and so the original um
emacs from mit sort of started out as
a collection of macros for tico
but then you know you know the the sort
of emac
style got got popular originally at
at mit and then people
did a few other implementations of emacs
that were you know the the the code base
was entirely different but it was sort
of the philosophical style
of the original emacs what was the
philosophy of emacs and by the way were
all the implementations always in c
and then no and how does lisp fit into
the picture
no so so the very first emacs was
written as a bunch of macros for the
tico text editor
wow this is so interesting and the
the the macro language for tico
was probably the most ridiculously
obscure
format you know if you just look at a
tico program on a
on a page you think it was just random
characters
it really looks like just line noise
just kind of like latex or something oh
worse
way worse than the tick way way worse
than latex
um but you know if you use tico a lot
which i did the the tico was completely
optimized for touch typing
at high speed um
so there were no two character commands
well there were a few but mostly they
were just one character so every
character on the keyboard was a separate
command
um and actually every character on the
keyboard was usually two or three
commands because you know you hit shift
and control and all of those things you
know it's just a way of
very tightly encoding it and
mostly what emacs did was it made that
that visual right so
one way to think of tico is use emax
with your eyes closed
where you have to maintain a mental
model of
you know sort of a mental image of your
document you have to go
okay so the the cursor is
between the a and the e
and i want to exchange those so i do
these
these things right so it almost it is
almost exactly the emax command set
well it's roughly approximate roughly
the same as emacs command set
but using emacs with your eyes closed
um so what
emacs you know part of what emacs added
to the whole thing was
was being able to visually see what you
were editing
um in a form that matched your document
um and you know a lot of things
changed in the in the command set it
um you know because it was programmable
it was
really flexible you could add new
commands for all kinds of things
and then people rewrote emacs
like multiple times in lisp there was
one done at
mit for the lisp machine there was one
done
for multix and one summer i got a
got a summer job to work on the
pascal compiler for multix
and that was actually the first time i
used emacs
and and and so to write the compilers
you've worked in compilers too it's yeah
that's fascinating
yeah so i did a lot of work you know
i mean i spent like like a really
intense three months
working on this pascal compiler um
basically living in emacs and it was
it was the one written in mac list by
bernie greenberg
and i thought wow this is a just a way
better way to do editing
um and then i got back to cmu
where we had kind of one of everything
and two of a bunch of things and four of
a few things and
um since i mostly worked in the unix
universe
and unix didn't have an e-max i decided
that i needed to fix that problem
so i so i wrote this this implementation
of emacs in c
because at the time c was really the
only language that worked on
on uh on unix
um and you were comfortable with c as
well oh yeah at that point
yeah at that time i had done a lot of c
coding that this was in like 86.
um and
you know it was running well enough to
be used for me to use it to edit itself
within a
month or two and um then it kind of
took over the university and and it
spread
and then it died yeah and then it went
outside the
and largely because unix kind of
took over the research community
on the on the on the arpanet
then and emacs was
kind of the best editor out there it
kind of took over and
there was a actually a brief period
where
i actually had login ids on every
non-military host on the on the arpanet
you know because people would say oh can
we install this and and i'd like
well yeah but you'll need some help
uh the days when security wasn't uh when
nobody cared nobody cared
yeah we can ask briefly
what were those early days of arpanet
and the internet
like what was uh
what i mean did you uh again sorry for
the silly question
but could you have possibly imagined
that uh the the internet would look like
what it is today
you know some of it is remarkably
unchanged
so like one of the things that i noticed
really early on
um at you know when i was at
at carnegie mellon was that
a lot of social life
became centered around the arpanet
so things like you know between email
and
text messaging because the
you know text messaging was a part of
the arpanet really early on
there were no cell phones but you know
you're sitting at a terminal and you're
typing stuff
and essentially email or like what what
is well just like
like a one-line message right so so so
oh cool so like chat like chat yeah
right so it's like like sending a
one-line message to somebody right
and and and so pretty much
everything from you know
arranging lunch to going out on dates
you know
it was all like driven by social media
so you know right in the in the in
the 80s easier than phone calls yeah
you know and my life had gotten to where
you know i was you know
living on social media you know from
like
the early mid 80s
um and
and so when when it sort of transformed
into the internet
and social media explodes i was kind of
like
what's the big deal it's just a scale
thing
it's it's right the the scale thing is
just
astonishing yeah um but the fundamentals
um in some ways the fundamentals have
have hardly changed and
you know the the technologies behind the
the networking have changed
significantly the
you know the the the watershed moment of
you know going from the arpanet to the
internet
um and then people starting to just
scale and scale and scale i mean the
the the the scaling that happened in the
early 90s
and the way that
so many vested interests fought the
internet
oh who oh interesting what was the oh
because you can't really control the
internet yeah
so so so fundamentally the
you know the cable tv companies and
broadcasters
and phone companies um
you know at the deepest fibers of their
being
they hated the internet but
it was often kind of a funny thing
because um
you know so so so think of a cable
company
right most of the employees of the cable
company
their job is getting
tv shows movies whatever
out to their customers they view their
business
as serving their customers
um but as you climb up the hierarchy
in the in the cable companies
that view shifts because
um really
the business of the cable companies
that had always been selling eyeballs to
advertisers
right um
and you know that view of
of like a cable company didn't really
dawn on most people who worked at the
cable companies
but i mean you know we you know i had
various dust-ups with
various cable companies where you could
see you know in the stratified layers of
the corporation that
that this this this this this view of
you know the reason that you have you
know
cable tv is to capture eyeballs
you know there they didn't see it that
way well so so the people who
the most the people who worked at the
phone company
are at the cable companies their view
was that their
their job was getting delightful content
out to their customers
and their customers would pay for them
would pay for that
higher up they viewed this as as a way
of
attracting eyeballs to them
and and then what they were really doing
was selling
the eyeballs that were glued to their
content
to the advertising to the advertisers
yeah
and so the internet was a competition in
that sense right
and and and and they were right well
yeah um i mean there was one
proposal that we sent the
the we one detailed proposal that that
we
um wrote up you know back at that sun
in the in the early 90s that was
essentially like
look anybody you know with it with
internet technologies
anybody can become provider
of of content so you know
you could be distributing home movies to
your parents
or your cousins or your who are anywhere
else right so
anybody can become a publisher wow you
were thinking about that already yeah
yeah that was like yeah that was
that that was like in the in the early
90s yeah
and we thought this would be great
you could you know and the kind of
content we were thinking about at the
time was
like you know home movies kids essays
um you know stuff from
like grocery stores or you know you know
that
or or a restaurant that they could
actually
like start sending information about
out and um
that's brilliant and and the the the the
reaction of the cable companies was
like no because
because then we're out of business
what is it about companies that because
they could have just
they could have been ahead of that wave
they could have listened to that
and they could have they they didn't see
a path to revenue
you know there's there's somewhere in
there there's a lesson for like
big companies right like to to listen
to to try to anticipate the the renegade
the out there out of the box
people like yourself in the early days
writing proposals about
what this could possibly be well and
that you know that you know it wasn't
you know if you're in a in a position
where you're making
truckloads of money off of a particular
business model
um you you know the
the the the the whole um
thought of like you know leaping the
chasm
right you know you know you can see oh
new models
that are more effective are emerging
right so like digital cameras versus
film cameras
um you know i mean why take the leap
why take the leap because you're making
so much money
off of film and
um you know in my past at sun
one of our big customers was kodak and i
ended up
interacting with folks from kodak quite
a lot and they actually had a
big um
digital camera research and you know
digital imaging business
or b development group
and they knew
that that you know you you know you just
look at the
at the trend lines and you look at um
you know the emerging quality of
of of these you know digital cameras
and you know you can just plot it on the
graph
you know and it's like you know sure
film is better today
but you know
digital is is is is improving like this
the lines are going to cross and and you
know the point at which the lines cross
is going to be a collapse in their
business
and they could see that
right they absolutely knew that the
problem is that you know
up to the point where they hit the wall
they were making truckloads of money
yeah
right and when they did the math
um it never started to make sense for
them to
kind of lead the charge and
part of the issues for a lot of
companies for this kind of stuff
is that um you know if you're going to
leap over a chasm like that like like
with
kodak going from from film to digital
that's a transition that's going to take
a while
right we have we had fights like this
with people over like smart carts
the smart cards fights were just
ludicrous
but that's where visionary leadership
comes in right yeah somebody needs to
roll in and say
then take to take the leap well it's
it's partly take the leap but it's also
partly take the hit
take the hit right so so so so you can
draw all the graphs you want that show
that you know if we leap from here
you know you know the you know on our
present trajectory we're doing this and
there's a cliff
if we um force ourselves into it into a
transition and we proactively do that
we can be on the next wave
but there will be a period when we're in
a trough
and pretty much always there ends up
being a trough as you leave the chasm
but the way that public companies work
on this planet they're reporting
every quarter and the one thing that a
ceo
must never do
is take a big hit take a big hit
you know over some some quarter and and
many of these transitions
involve a big hit for a
a period of time you know one two three
quarters
and so you get
some companies and you know like
tesla and amazon are are really good
examples
of companies that take huge hits
but they have the luxury of being able
to ignore the stock market for a little
while
and that's not so true today
really but you know in the early days of
of both of those companies um
you know like like like like like they
they both did this thing of
you know i don't care about the
quarterly reports
i care about how many how many happy
customers we have
yeah right and having as many happy
customers as possible can
often be um
an enemy of the bottom line yeah so how
do they make that work i mean
amazon operated in the negative for a
long time it's like investing into the
future
right but you know you know so
amazon and google and tesla and facebook
a lot of those had
what it what amounted to patient money
um often because the there's there's
like a charismatic
central figure who has a really large
block of stock
and they can just make it so
so what uh on that topic just maybe it's
a little small tangent but uh
you've gotten the chance to work with
some pretty big leaders
what are your thoughts about on tesla
side elon musk
leadership on the amazon side jeff bezos
all of these folks with large amounts of
stock and vision
in their company i mean they're founders
yeah either
the complete founders are like early on
folks
and uh they're they amazon have taken
leave a lot of leaps uh and
you know uh that probably at the time
people would criticize
as like what is this bookstore thing
why yeah and and
you know bezos had a vision and
he had the ability to just follow it
lots of people have visions and you know
the average vision is completely idiotic
and you crash and burn
um you know the the silicon valley
um crash and burn rate is pretty high
um and they're not they don't
necessarily crash and burn because they
were dumb ideas but
you know often it's it's just timing um
timing and luck and you know you take
companies like
like like tesla um
and and and and and really you know the
the original tesla
um you know sort of pre
um elon
was kind of doing sort of okay
but but but he just drove them
and because he had a
really strong vision you know he would
he would make calls
that were always you know or
well mostly pretty good i mean the model
x was kind of a goofball thing to do
but he did it boldly anyway like there's
so many people
that just said like there's so many
people that oppose them on
the falcon one door like the doors yeah
from the engineering perspective
those doors are ridiculous it's like
yeah they're they are a complete
travesty
but but they're but they're exactly the
symbol
of what great leadership is which is
like you have a vision and you just go
like
if you're gonna do something stupid make
it really stupid yeah and go all in
yeah yeah and and
you know to to must credit he's a
really sharp guy so
going back in time a little bit to steve
jobs
you know steve jobs was a similar sort
of character who had
a strong vision and was really really
smart
and you you know and he wasn't smart
about the technology parts of things
but but sort of he he was really sharp
about
the the the sort of
human relationship between you know the
relationship between humans and objects
um and but
he was a jerk you know
right can we just linger on that a
little bit like people say he's a jerk
um is that a feature or a bug well
that's that's that's the question right
so you take people like
steve um who was
really hard on people and and the
and so the question is was he really was
he needlessly hard on people
or was he just making people
reach to
to meet his vision and
you could kind of spin it either way
um well the results tell a story
you know he's uh he through whatever
jerk ways he had
he made people often do the best work of
their life
yeah yeah and that was absolutely true
and you know i interviewed with him
several times
um i did you know various
negotiations with him and
um
even though kind of
personally i liked him i could never
work for him
why do you think uh it that what
can you put into words the kind of
tension that you feel would be
um destructive as opposed to
constructive
oh he he he'd yell at people he'd call
them names
and you don't like that no no i don't i
don't think you need to do that
yeah um and
you know he you know i think you know
there's there's
pushing people to excel
and then there's too far and i think he
was on the wrong side of the line
and i've never worked for musk i know a
number of people who have
many of them that have said and it's you
know shows up in the press a lot that
that musk is kind of that way and
one of the things that i sort of loathe
about silicon valley these days
is that um a lot of the high-flying
successes are run by people who are
complete jerks
um but it seems like there's been
become this there's come this this sort
of mythology
out of steve jobs that the reason that
he succeeded
was because he was super hard on people
and and and and and and and in
a number of corners people start going
oh if i want to succeed
i need to be a real jerk yeah right
and and and that for me just does not
compute
i mean i know a lot of successful people
who are not jerks
who are perfectly fine people
um you know they they tend to
not be in the public eye the the
the the general public somehow lifts the
jerks up into the
into the hero status right well they
because they're they do things that get
them in the press
yeah and you know the people who
um you know
don't do the kind of things that spill
into the press
um yeah i just uh talked to chris ladner
um for the second time
he's a super nice guy just an example of
this kind of kind individual that's in
the background
i feel like he's behind like a million
technologies but he also talked about
the jerkiness of some of the folks yeah
yeah
and the fact that being a jerk has
become your required style
but one thing i'd maybe want to ask on
that is and maybe to push back a little
bit
so there's the jerk side but there's
also
if i were to criticize what i've seen in
silicon valley
which is almost the resistance to
working hard
so on the jerkiness side is um
it's it's so posted jobs and elon kind
of push people
to work really hard to do
and there's a question whether it's
possible to do that nicely
but one of the things that bothers me
maybe i'm just
rushing and just kind of you know
romanticize the whole suffering thing
but i think working hard is essential
for accomplishing anything interesting
like really hard and in the parlance of
silicon valley it's probably too hard
this idea that you should work smart not
hard
often to me it sounds like you should be
lazy
because of course you want to be to work
smart of course you want to be
maximally efficient but in order to
discover the efficient path like we're
talking about with the short programs
yeah well you know the the the smart
hard thing yeah isn't an either or it's
an and
as an and yeah right and
um you know the the the
the the people who say you should work
smart
not hard they pretty much always fail
yeah thank you right i mean that's
that's that's just just a recipe for
disaster i mean there
are there are counter examples
but they're more people who benefited
from
luck and you're yeah exactly
luck and timing like you said is often
uh
an essential thing but you're saying you
know you can be you can push people to
work hard
and do incredible work without without
uh without being nasty yeah without
being nasty
i think uh um
google is a good example of the
leadership of google
throughout his history has been a pretty
good example of uh
not being nasty i mean the
the the the twins larry and sergey
um are both pretty nice people sandra
paches
very nice yeah yeah yeah and
you know it's it's a culture of people
who
work really really hard let me ask a
maybe a little bit of a
tense question uh we're talking about
emacs
it seems like you've done some
incredible work so outside of java
you've done some incredible work that
didn't become as popular as it could
have
because of like licensing issues and
open sourcing
like issues um
uh what are your thoughts about the the
the entire mess like what's about open
source now in retrospect looking back
uh about licensing about open sourcing
do you think uh open source is a good
thing
a bad thing do you have regrets
do you have wisdom that you've learned
from that whole experience
so in general i'm a big fan of of open
source
the way that it it can be used to build
communities
and promote the development of things
and promote collaboration
and all of that is really pretty grand
um when
open source turns into a religion that
says all things must be open source
right
um i get kind of
weird about that because it's it's sort
of like saying
you know some some versions of that um
end up saying that that that all
all software engineers must take a vow
of poverty
right right as though um
it's unethical to have money yeah
to build a company to uh right
and you know there's a there's a there's
a
slice of me that actually kind of buys
into that right
because you know people who make
billions of dollars off of like a patent
and the the patent came from like you
know literally a
a stroke of lightning that that
hits you as you lie half a week in bed
yeah that's lucky good for you
the way that that sometimes sort of
explodes into
something that looks to me a lot like
exploitation
you know you see a lot of that in in in
like the
the drug industry um
you know when you know when you've got a
got got medications that cost
you know cost you like a hundred dollars
a day
and it's like no
yeah so the the interesting thing about
the sort of
open source uh what bothers me is when
something is not open source and because
of that
it's a worse product yeah
so like i mean if i look at your just
implementation of emacs
like that could have been the dominant
implementation like i use emacs that's
my main id
i apologize to the world but i still
love it uh
and you know i could have been using um
your implementation of emacs and why
aren't i
so are you using the gnu max i guess the
default on linux is that new yeah
and and that through a strange passage
started out as the one that i wrote
exactly so it's it still has uh
right yeah right well and and part of
that was
because you know in you know the last
couple of years of grad school
it it became really clear to me
that i was either going to be mr emax
forever
or i was going to graduate
i couldn't actually do both
was that a hard decision that's so
interesting to think about
you as the pub like it's a different
trajectory that could have happened
yeah that's fascinating um
you know and maybe you know i could be
fabulously wealthy today if i had become
mr emax and emacs had mushroomed into
a series of text processing
applications and all kinds of stuff and
you know i would have
you know but
i have a long history of financially
suboptimal decisions because
i didn't want that life
right and you know i went to grad school
because i wanted to graduate
um and
you know you know being mr emax for a
while
was kind of fun and then it kind of
became
not fun not fun um
and you know when it was not fun
and i was you know
there was no way i could you know pay my
rent
right yeah and and i was like
okay do i carry on as a grad student as
a
you know i you know i had a research
assistantship and i was sort of living
off of that
and i was trying to do my uh you know i
was doing all my
ra where all of my r.a you know being
grad student work
and being mr emacs all at the same time
um and and i
i decided to pick one
and one of the things that i did at the
time was
i went around you know all the people i
knew on the
the arpanet who might be able to
to to take over looking after emacs
and um pretty much everybody said
i got a day job so so i actually found
you know two folks and a
couple of folks in a garage in new
jersey
um complete with a dog
um who are willing to take it over
but they were going to have to charge
money um
but my deal with them was that they
would um
only that they would make it free for
universities and schools and stuff
and they said sure and
you know that upset some people so you
have some
now i don't know the full history of
this but i think it's kind of uh
interesting you have some
tension with me mr richard stallman
um over the and he kind of represents
this kind of like
like you mentioned free software
uh
sort of a dogmatic focus on
yeah all all information must be free
must be free so what is there an
interesting way to uh paint a picture of
the disagreement you have with richard
through the years
my my basic opposition is
that you know when you say information
must be free
uh to a really extreme form that turns
into
you know all people
whose job is the production
of
everything from movies to software
um they must all take a vow of poverty
because information must be free
and that doesn't work for me right
and and i and i don't
i don't want to be wildly rich i am not
wildly rich
um i do okay
um
but i do actually you know you know i've
you know i can feed my children yeah i
totally agree with you i
it does just make me sad that sometimes
the closing of the source
for some reason the people that
like a bureaucracy begins to build and
sometimes it doesn't it hurts the
product oh
absolutely absolutely it's always sad
and there's
and there is a there is a balance in
there
that's a balance um and
you know it's it's not hard
hard over you know rapacious capitalism
and and it's and it's not hard over in
the other direction
um and you know a lot of
the the open source movement they
they have been magic to find a path to
um actually making money right so
doing things like service and support
works for
a lot of people um
you know and there are some some ways
where
it's it's kind of um
some of them are are a little a little
perverse right so
as you know a part of things like this
sarbanes-oxley act and various people's
interpretations of all kinds of
accounting principles
um and this is kind of a worldwide thing
but
if you've got a a corporation
that is depending on some piece of
software
um you know the often
you know various accounting and
reporting standards say if you don't
have a support contract
on this thing that that your business is
depending on
then that's bad
you know so so so you know if you've got
a if you've got a database you need to
pay for support and and so
but there's a difference between
you know the the sort of support
contracts that
you know the average open source
database
uh producer charges and
what somebody who is truly rapacious
like oracle charges it's a it's a it's a
balance
it is it is absolutely a balance and
you know there are there are a lot of
a lot of different ways to make
you know the math work workout
for everybody um
and you know the
the very you know
uh un unbalanced sort of
you know like like the winner takes all
thing that that happens in so much of
of modern commerce um
that just doesn't work for me either
i know you've talked about this
in quite a few places but you have
created
one of the most popular programming
languages in the world
this is the programming language that i
first learned
about object-oriented programming with
you know i think it's a programming
language that
a lot of people use in a lot of
different places and millions of devices
today
java so the absurd
question but can you tell the origin
story of java
so long time ago at sun in about 1990
there was a
group of us who
were kind of worried that there was
stuff going on
in the universe of computing that the
computing industry was missing out on
and so a a few of us
started this project at sun that really
got going i mean we started talking
about it in 1990 and it really got going
in 91
and it was all about
you know what was happening in terms of
you know computing hardware you know
processors and
networking and all of that that was
outside of the computer industry and
that was
everything from the the
the the sort of early glimmers of cell
phones that were happening
then to you know you look at elevators
and
locomotives and
process control systems in factories and
all kinds of audio audio
equipment and video equipment
they all had processors in them and they
were all doing stuff with them
and and it and it sort of felt like
there was something going on there that
we needed to understand
and so c c and c plus plus was in the
air
already oh no c and c plus plus
absolutely owned the universe at that
time
everything was written in c and z plus
plus so where was the hunch that there
was a need for a revolution
well so the the need for a revolution
was not about
the a language it was about
it was just as simple and vague as
there are things happening out there
and we understand them we need to
understand them
and and so um
a few of us went on several
um somewhat epic road trips
um literal road trips literal road trips
it's like get on an airplane
go to japan visit you know
toshiba and sharp and mitsubishi and
sony and all of these folks and
you know because we worked for sun we
had you know
folks who were willing to like give us
introductions you know we we visited you
know
samsung and um
you know a bunch of korean companies and
we went all over europe we went to you
know
places like like phillips and siemens
and thompson
and what did you see there
you know for me the one of the things
that sort of left out
was that they were doing all the usual
computer
computer things that people had been
doing like 20 years before
the thing that really left out to me was
that they were
sort of reinventing computer networking
and they were making
all the mistakes that people in the
computer industry
had had made and since i had been doing
a lot of work in
in the networking area you know you know
we'd go and
you know visit you know company x they'd
describe this networking thing that they
were doing
and just without any thought i could i
could tell them like the 25 things
there were going to be complete
disasters with that thing that they were
doing
um and i don't know whether that had any
impact on any of them but but
but that particular story of you know
sort of repeating the disasters
of the computer science industry um
was there and we and one of the things
we thought was
well maybe we could do something useful
here with like
bringing them forward somewhat but but
also
at the same time we learned a bunch of
things
from from these you know mostly consumer
electronics companies
and you know high on the list was
that they viewed their
like relationship with the customer as
sacred
um they they were never
ever willing to make
trade-offs between
for safety right so one of the things
that
had always made me nervous in the
computer industry
was that um
people were willing to make trade-offs
in reliability
to get performance um
you know the the you know they want
faster faster it breaks a little more
often
because it's fast you know you maybe you
run it a little hotter than you should
or like like the one that always blew my
mind was the way that
um the folks at at cray super computers
got their division to be really fast
was that they did newton-raphson
approximations
and so you know the bottom several bits
of you know a over b we're essentially
random numbers
um what could possibly go wrong what
could go wrong
right and you know
just figuring out how to nail the bottom
bit
um how to make sure that you know
if you put a piece of toast in a toaster
it's not going to kill the customer
it's not going to burst into flames and
burn the house down
so those are i guess those are the the
principles that were inspiring
but how did from the days of
uh java is called oak because of a tree
outside the window story that
people know how did it become this
incredible
like powerful language well
so it was a bunch of things so we you
know
after all that we started you know the
way that we decided that we could
understand things better was by
building a demo building a prototype of
something
okay so um kind of because it was easy
and fun we decided to build
a control system for some home
electronics you know tv
vcr that kind of stuff and
as we were building it we you know we we
sort of
discovered that there were some things
about standard practice in c
programming that um
were really getting in the way and it
wasn't
it wasn't exactly you know because we
were writing this
all the c code and c plus plus code that
that we couldn't write it to do the
right thing but that
um one of the things that was weird in
the group was that we had
um a guy who's who's
who's you know his sort of top level job
was he was a business guy
you know he was sort of an mba kind of
person you know think about business
plans and all of that
and
you know there were a bunch of things
that were kind of
you know and we would talk about things
that were going wrong and
um or things were going wrong things
were going right and
you know as we thought about you know
things like like the requirements for
security and safety um
some low-level details and see like
naked pointers
yeah and you know
so so back in the early 90s
um it was well understood
that you know the number one source of
like security vulnerabilities is
pointers was just pointers was just bugs
yeah right and it was like you know
50 60 70 of all security
vulnerabilities were bugs and the vast
majority of them were like
buffer overflows yeah so you're like
we have to fix this we we have to make
sure that this
cannot happen and that was kind of the
original
thing for me was this cannot this cannot
continue
and one of the things i find really
entertaining this year was um
i forget which rag published it but
there was this article that came out
that was um an examination
it was sort of the result of of an
examination of all the security
vulnerabilities in chrome and chrome is
like a giant piece of c-plus plus code
and 60 or 70 percent of all the security
vulnerabilities were stupid pointer
tricks
and i thought it's 30 years later
and we're still there still there and
we're still there
and you know i you know that's one of
those you know slap your forehead and
and and just just just want to cry would
you attribute
uh or is that too much of a
simplification but would you attribute
the creation of java to uh
[Laughter]
to see borders obvious problems well
that i mean that was
that was one of the the trigger points
and currency you've mentioned
concurrency was a big deal
um and you know because when you're
interacting with people you know the
last thing you ever want to see is
is the thing like waiting and
you know issues about the software
development process
you know when faults happen can you
recover from them
what can you do to make it easier to
create and
eliminate complex data structures
what can you do to fix you know the one
of the most common
sea problems which is storage leaks
um and it's it's evil twin the
um the the freed
but still being used piece of
piece of memory you know you you free
something and then you keep using it
oh yeah you know so so when i was
originally thinking about that i was
thinking about it in terms of
of sort of safety and security issues
and one of the things i sort of came to
believe
came to understand was that it wasn't
just about safety and security but it
was about
developer velocity right so
and i got really religious about this
because at that point i had spent
an ungodly amount of my life
hunting down mystery pointer bugs
and you know like like two-thirds of my
time
as a software developer was you know
because the mystery pointer bugs tend to
be
the hardest to find because they tend to
be
very very statistical the ones that hurt
you know they're you know they're like a
one in a million chance
um and
but nevertheless create an infinite
amount of suffering right
because when you're doing a billion
operations a second
yeah you know one in a million chance
means
it's going to happen um
and and so i got really religious about
this thing about
you know making it so that if something
fails it fails immediately and
visibly and
you know one of the the the things that
was a
a real attraction of java to
lots of development shops was that you
know we get our code
up and running twice as fast
you mean like the entirety of the
development process the blocking all
that kind of stuff yeah
if you you know so so if you measure
time
from you know you you first
touch fingers to keyboard until you get
your first demo
out uh
not much different but if you look from
fingers touching keyboard to
solid piece of software that you could
release in production
it would be way faster and i think what
people don't often realize there's
yeah there's things that really slow you
down like
hard to catch bugs probably is
is the thing that really slows down that
is it really slows things down but
but also there were you know one of the
things that you get out of
object-oriented programming is a strict
methodology about you know what are the
interfaces between things
and being really clear about how parts
relate to each other
um and what that helps with
is so many times what people do
um is they kind of like sneak around the
side
so if you've built something and people
are using it
and then and you say and you say well
okay you know i built this thing
you use it this way and then you change
it
in such a way that that it still does
what you said it does it just does it a
little bit different
but then you find out that somebody out
there
was sneaking around the side they sort
of tunneled in a back door
and this person their code broke
and because they were sneaking through a
side door
and and
normally the attitude is
dummy um but a lot of times
um you know you can't get away you can't
you can't just slap their hand and tell
them to not do that
right because you know it's
you know somebody's
you know some banks you know account
reconciliation system
that that you know some developer
decided oh i'm lazy
you know i'll just sneak through the
back door because the language allows it
i mean you can't even right mad at them
and and so one of the things i did that
that
on the one hand upset a bunch of people
is that i made it so that you really
couldn't
go through back doors right so so the
whole point of that
was to say if
you need you know if the interface here
isn't right
the wrong way to deal with that is is to
go through a back door yeah
the right way to deal with it is to walk
up to the developer of this thing and
say
uh change the interface fix it yep
right and so it was kind of like a
social engineering thing
yeah and um it's brilliant
and people ended up discovering that
that
really made a difference um in terms
of you know and and and a bunch of this
stuff you know if you're just like
screwing around writing your own
like you know class project scale stuff
a lot of stuff doesn't isn't quite so
so important because you know you're
you know both sides of the interface um
but you know when you're building you
know sort of
larger more complex pieces of software
that have a lot of people working on
them
and especially when they like span
organizations
um you know having
having really clear having clarity about
how that stuff
gets structured um saves your life yeah
um and you know especially
you know there's so much software that
is fundamentally untestable
you know and you know until you do the
real thing
it's better to write good code in the
beginning
as opposed to writing crappy code and
then trying to fix it and
yeah trying to scramble and figure out
and through testing figure out where the
bugs are
yeah it's just like it's like it's like
which shortcut caused that
rocket to not get where it was needed to
go
so i think one of the most beautiful
ideas
uh philosophically and technically is uh
of a virtual machine the java virtual
machine
well again apologize to romanticize
things but uh
how did the idea of the jvm come to be
how to you radical of an idea it is
because it seems to me to be just
a really interesting idea in the history
of programming
so and what is it so the java virtual
machine
you can think of it in different ways
um because it was
carefully designed to have different
ways of viewing it
so one view of it that most people don't
really realize is there
is that you can
view it as sort of an encoding of
the abstract syntax tree in reverse
polish notation
i don't know if that makes any sense at
all i could explain it and that would
blow all of our time
yeah um but the other way to think of it
um
and the way that it ends up being
explained is that
it's it's like the the instruction set
of an
abstract machine that's designed such
that you can
translate that abstract machine to a
physical machine
and the reason that that's important
so if you wind back to the early 90s
when we were talking to all of these
these companies doing consumer
electronics
and you talked to the purchasing people
there were interesting conversations
with purchasing
um so if you look at how you know these
you know these devices come together
they're sheet metal and gears and
circuit boards and capacitors and
resistors and
stuff and
everything you buy has multiple sources
right so you can buy a capacitor
from here you can buy a capacitor from
there
and you've got kind of a market so you
know so that the
you can actually get a decent price for
a capacitor
um but
cpus and particularly in the early 90s
cpus were all different and all
proprietary
so if you use the chip from intel
you had to be an intel customer for the
end of till the end of time
because if you wrote a bunch of software
you know when you wrote software using
whatever technique you wanted and c was
particularly bad
about this because there was a lot of
properties of the underlying machine
that came through so if you're stuck so
the code you wrote you were stuck to
that particular machine you were stuck
to that particular machine
which meant that they couldn't decide
you know
intel is screwing us um
i'll start buying chips from
you know bob's better chips
this drove the like the purchasing
people
absolutely insane
that that they would they were welded
into this decision
and it would have they would have to
make this decision before the first line
of software was written
it's funny that you're talking about the
purchasing people so that's one
perspective right
it's a you could there's a lot of other
perspectives that all probably hated
this idea
right but from a technical aspect just
like
the creation of an abstraction layer
that's uh agnostic to the underlying
machine
from the perspective of the developer i
mean it's brilliant
right well and and and and
you know you know so that's like across
the spectrum of of
providers of chips but then there's also
the the time
thing because um you know as you went
from one generation to the next
generation to the next generation they
were all different
and you would often have to rewrite your
software i mean
generations of uh cp of machines of
different kinds
yeah so so like like like one of the
things that sucked about a year out of
my life was when
sun went from the the motorola
68010 processor to the
68020 processor then they had a number
of differences
and one of them hit us really hard and i
ended up being
the the point guy on the worst case of
where
the new instruction cache architecture
heard us
well okay so i mean so when did this
idea i mean okay so yeah you you
articulate a really clear
fundamental problem in all of computing
but
how where do you get the guts to think
we can actually solve this you know in
our conversations with
you know all these vendors you know
these these problems started to
to show up and
i kind of had this epiphany
because it reminded me of
a summer job that i had had in grad
school
so
back in grad school my my thesis advisor
well i had two thesis advisors
for bizarre reasons um one of them was a
guy named raj reddy the other one was
bob sproul
um and
raj i love ra i really love both of them
but right amazing so
the the department had bought
a bunch of like early workstations
from a company called three rivers
computer company
and three rivers computer company was a
bunch of electrical engineers who wanted
to do as little software as possible
so um they knew that they'd need to have
like compilers and os and stuff like
that and they didn't want to do any of
that
and they wanted to do that for as close
to zero money as possible
so um
what they did was they they built a
machine whose instruction set
was um the
was literally the byte code for ucsd
pascal
the p code
and so we had a bunch of software
that was that was written for this
machine
and for various reasons you know the
company wasn't doing terrifically well
we had all the software on these
machines and we wanted it to run on
other machines
principally the backs and
um
and so raj asked me if i could come up
with a way
to port all of this software and
translate from the
from from from the the the the perk
machines
to vax's and
and i think he you know what he had in
mind was something
that would translate from like pascal
to c or pascal to
actually at those times pretty much it
was you could translate to c
or c and if you didn't like translating
to c you could
translate to c um
there was you know it's you know it's
like the the henry ford
you know any color you wanted just as
long as it's black
um and and i went
that's really hard um
and and i and i noticed that you know
and i was like
looking at stuff and i went oh i bet i
could rewrite
the p code into vax assembly code
and and then i started to realize that
you know there were some properties of p
code that made that really easy some
properties that made it really hard
so i ended up writing this thing that
translated
from from p code on the three
rivers perks into assembly code on the
backs
and i actually got higher quality
code than the c compiler
and so so everything just went got
really fast it was really easy it was
like
wow i thought that was a sleazy hack
because i was lazy and in actual fact it
worked really well
and and i and i tried to convince people
that that was maybe a good thesis topic
yeah um and nobody was
it was you know it was like nah really
that's
i mean yeah it's really it's kind of a
brilliant idea
right maybe you didn't have the
you weren't able to articulate the big
picture of it
yeah and and i think you know that was a
um a key part but so then you know
clock comes forward a few years and it's
like
we've got to be able to you know that
you know the you know if they want to be
able to switch
from you know this weird microprocessor
to that
weird and totally different
microprocessor how do you do that
and i kind of went oh
maybe by doing something kind of in the
space of
you know pascal p code you know i could
do
like multiple translators and i spent
some time thinking about that and
thinking about you know what worked and
what didn't work when i
did the the the p code to vax translator
and um i talked to some of the folks who
were involved in small talk because
small talk also did about code
and and and then i kind of went
yeah let's that i want to do that yeah
because that act
you know and and it had the the other
advantage that
you could either interpret it or compile
it
and um interpreters are usually
easier to do but not as fast
as a compiler so i figured
good i can be lazy again um
you know you know sometimes i think that
most of my good ideas are
um driven by laziness and often i find
that people some of the people's
stupidest ideas are because they're
insufficiently lazy
yeah they just want to build something
really complicated it's like it doesn't
need to be that complicated
yeah and so and so that's how that came
out
and um you know but that also
turned into kind of a you know almost a
religious position on my part which was
which got me in in several other fights
so like like one of the things that was
a real
difference was the way that arithmetic
worked
um you know
once upon a time there were you know it
wasn't always just two's complement
arithmetic
there were some machines that had one's
complement arithmetic which was like
almost anything built by cdc um
and occasionally there were machines
that were decimal arithmetic
and and i was like this is crazy
you know pretty much two's complement
integer arithmetic has one
so just let's just do that
just to do that one of the other places
where there was a lot of variability was
in the way that floating point behaved
and that was causing people throughout
the
software industry much pain because you
couldn't
do a numerical computing library that
would
work on cdc and then have it work on an
ibm machine and
work on it on a deck machine um
and as a as a part of that whole
struggle there had been this
this big body of work on
on floating point standards
and this thing emerged that came to be
called ieee 754
which is the floating point standard
that pretty much has take
taken over the entire universe um
and and at the time i was doing java it
had pretty much completed taking over
the universe
there were still a few pockets of
holdouts but
i was like you know it's important to be
able to say what two plus two means
um yeah and and so i went
that um and
one of the ways that i got into fights
with people was that
there were a few machines that did not
implement
ieee 754 correctly
well of course that's that's all
short-term kind of fights
i think in the in the long term i think
this vision is
won out yeah and and i think it's you
know and it worked out over time i mean
the
the biggest fights were with intel
because they had done some strange
things with rounding
they'd done some strange things with
their transcendental functions
which might turned into a mushroom cloud
of
you know weirdness and the name in the
name of optimization
but from the perspective of the
developer
that's not that's not good well their
issues with transcendental functions
were just stupid
okay so that that's that's not even a
trade-off that's just absolutely
yeah they were they were doing range
reduction in of first sign and cosine
using a slightly wrong value for pi i
got it
go ahead ten minutes so in the interest
of time
two questions so one about android and
one about life
uh so one i mean we could talk for
many more hours i hope uh eventually we
might talk again
but i gotta ask you about android and
the use
of java there because it's one of the
many places where java
just has a huge impact on this world
just on your opinion
is there things that make you happy
uh about the way andro uh java is used
in the android world and are there
things that
you wish were different i i don't know
how to do a short answer to that
um but i have to do a short answer to
that so
you know i'm happy that they did it um
java had been running on cell phones at
that time for quite a few years and it
worked really really well
um there were things about how they did
it
and and in particular um
various ways that they kind of
you know violated all kinds of contracts
the guy who
who led it andy rubin
he crossed a lot of lines there's some
lines crossed
yeah lines were crossed that have since
you know
mushroomed into giant court cases
um and you know they didn't need to do
that
and in fact it would have been so much
cheaper for them to not cross lines
i mean i suppose they didn't anticipate
the the success uh
of this whole endeavor um
or do you think at that time it was
already clear that this is uh it's gonna
blow up
i guess i i i i sort of came to believe
that it didn't matter what
andy did it was going to blow up
okay he's he's he you know i kind of
started
to think of him as as as like a
manufacturer of bombs
yeah uh some of the best things in this
world come about through a little bit of
uh
uh explosive well and some of the worst
and some of the worst
beautifully put but is there um and and
like you said i mean
does that make you proud that the java
is in
yeah is in millions i mean it could be
billions of devices
and yeah well i mean it was in in
billions of phones before android came
along
um and
you know i'm i'm just as proud as you
know of the way that like
the the smart card standards adopted
java
and they did it they you know everybody
involved in that did a really good job
and that's you know billions and
billions
um that's crazy the sim cards
you know the sim cards in your pocket
yeah i mean it's
outside of that world for a decade so i
don't know how that has it has evolved
but
um you know it's just been crazy
so on that topic let me ask uh
again there's a million technical things
uh
we could talk about but let me ask the
absurd the old uh
philosophical question about life
what do you hope when you look back at
your life
and the people talk about you right
about you
500 years from now uh what do you hope
your legacy is
people not being afraid to take a leap
of faith
um i mean i you know i've got this
this kind of weird history of doing
weird stuff and
um it worked out pretty damn it worked
out
right and i think some of the weirder
stuff that i've done
um has been the coolest and some of it
some of it crashed and burned and
um yeah you know i think well over half
of the stuff that i've done has crashed
and burned
um which has occasionally been really
annoying
but still you kept doing it but yeah
yeah yeah and you know they're you know
you even when things crash and burn you
you at least learn something from it by
way of advice
you know people developers engineers
scientists are just people who are young
uh to look up to you what advice would
you give them
how to uh how to approach their life
don't be afraid of risk it's okay to do
stupid things once
[Laughter]
maybe even a couple times you know you
you know you get
you get a pass on the the first time or
two that you do something stupid
you know the third or fourth time yeah
not so much
um
but also you know
i don't know why but really early on
i started to think about um
ethical choices in my life
and because i a big science fiction fan
um i i i got to thinking about
like just about every technical decision
i make
in terms of how do you want you know are
you building blade runner or star trek
which one's better which which future
would you rather live in
you know so what's the what's the answer
to that well i would just
i would sure rather live in the universe
of star trek soundtrack yeah
that opens up a whole topic about ai but
that's a really interesting
yeah yeah yeah it's a really interesting
idea so your favorite ai system would be
data
uh from uh from star trek my least
favorite would
easily be skynet yeah beautifully put i
don't think there's a better way to end
it
james i can't say enough how much of an
honor it is to meet you to talk to you
thanks so much
for wasting your time with me today not
a waste at all
thanks james all right thanks thanks for
listening to this conversation with
james gosling
and thank you to our sponsors public
goods betterhelp
and expressvpn please check out these
sponsors in the description to get a
discount and
to support this podcast if you enjoy
this thing
subscribe on youtube review it with 5
stars on apple podcast
follow on spotify support on patreon or
connect with me on twitter at lex
friedman
and now let me leave you with some words
from james gosling
one of the toughest things about life is
making
choices thank you for listening and hope
to see you
next time