Home Lex Fridman Episode
Lex Fridman · 2020-09-24

James Gosling: Java, JVM, Emacs, and the Early Days of Computing | Lex Fridman Podcast #126

Java creator James Gosling on the JVM, his C-emacs, Lisp, taming pointer bugs, leadership jerks, and choosing the Star Trek future over Blade Runner.

James Gosling: Java, JVM, Emacs, and the Early Days of Computing | Lex Fridman Podcast #126
The guest

James Gosling: The founder and lead designer of the Java programming language and the Java Virtual Machine, one of the most influential figures in modern software engineering. He also wrote an early C implementation of Emacs (Gosling Emacs) that seeded GNU Emacs.

What this episode covers

James Gosling traces his path from a money-less teenage tinkerer building relay tic-tac-toe machines to grad school at CMU and the creation of Java at Sun. He explains how road trips to consumer-electronics companies in the early 90s revealed networking mistakes and inspired Java's emphasis on safety, reliability, and developer velocity. He breaks down the genius of the JVM as a portable abstraction freeing developers from proprietary CPUs, rooted in an earlier P-code-to-VAX translator hack. Along the way he reflects on Lisp, Simula, open source versus making a living, the myth that great leaders must be jerks, and Android's Java licensing fights. He closes by urging engineers not to fear risk and to build the Star Trek future, not Blade Runner.

Also referenced (named, not recommended)

MediaReferenced

Star Trek: Discovery

CBS

“i did this recently with star trek discovery and uk netflix mostly because i wonder what it's like to live in london”— Lex Fridman
BookReferencedISBN verified

The Dictionary of Curious and Interesting Numbers

David Wells

“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”— guest
BookReferencedISBN verified

The Art of Computer Programming

Donald Knuth

“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”— Lex Fridman
MediaReferenced

Blade Runner

Ridley Scott

“are you building blade runner or star trek which one's better which which future would you rather live in”— guest
MediaReferenced

Star Trek

Gene Roddenberry

“i would just i would sure rather live in the universe of star trek”— guest

Big reveals from this episode

  • Gosling reveals engineering teams literally staged 'interventions' over his ultra-dense, minimal-whitespace coding style so he could see a whole function at once.
  • He describes himself as a visual thinker and slow reader who sees code as machinery with gears, not as lexical text.
  • The default GNU Emacs on Linux 'through a strange passage' started out as the implementation Gosling himself wrote.
  • He admits he chose to graduate rather than become 'Mr. Emacs forever,' possibly forgoing being fabulously wealthy.
  • His core motivation for Java was that pointer bugs caused 50-70% of all security vulnerabilities and 'this cannot continue.'
  • The JVM idea grew from a grad-school P-code-to-VAX translator hack he thought was a 'sleazy hack' but that beat the C compiler.
  • He says Android's Andy Rubin 'crossed a lot of lines,' calling him 'a manufacturer of bombs' over the Java licensing court cases.
  • Gosling pushes back on Silicon Valley's jerk-hero mythology, insisting you can drive people to work hard without being nasty.

Worth remembering

  • The square root of two is, in Gosling's words, 'the only number that has destroyed a religion' (the Pythagoreans).
  • His first machine was a PDP-8 at the University of Calgary: 4K of RAM, 12-bit words, about a third of a megahertz.
  • As a broke teen he dumpster-dived relay racks from a phone company and built a relay tic-tac-toe machine running at 300 volts.
  • Simula (Simula 67) was the first object-oriented language and introduced coroutines, a near-thread concurrency model.
  • Emacs stands for 'editor macros' and began as a collection of macros for the TECO text editor at MIT.
  • Cray supercomputers made division fast via Newton-Raphson approximations, leaving the bottom bits of A/B essentially random.
  • A study found 60-70% of Chrome's security vulnerabilities were still 'stupid pointer tricks,' 30 years after Java tried to fix this.
  • Gosling championed IEEE 754 floating point in Java and fought Intel over its incorrect transcendental functions using a wrong value for pi.
  • On the free-software debate, he argues 'information must be free' taken to extremes forces creators into 'a vow of poverty.'