Home Lex Fridman Notes
Lex Fridman · 2020-09-24 · 1h 51m

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.

The gist

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.

Big reveals

  • 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.

Things 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.'