Episode
#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
Description
James Gosling is the founder and lead designer of the Java programming language. Please check out our sponsors to get a discount and to support this podcast: - Public Goods: https://publicgoods.com/lex and use code LEX - BetterHelp: https://betterhelp.com/lex - ExpressVPN: https://www.expressvpn.com/lexpod If you would like to get more information about this podcast go to https://lexfridman.com/podcast or connect with @lexfridman on Twitter, LinkedIn, Facebook, Medium, or YouTube where you can watch the video versions of these conversations. If you enjoy the podcast, please rate it 5 stars on Apple Podcasts, follow on Spotify, or support it on Patreon. Here's the outline of the episode. On some podcast players you should be able to click the timestamp to jump to that time. OUTLINE: 0:00 - Introduction 4:45 - Irrational numbers 8:04 - Math and programming 10:36 - Coding style 14:41 - First computer 23:54 - Lisp 27:22 - Write an Emacs implementation in C 35:15 - Early days of the Internet 45:57 - Elon Musk, Steve Jobs, Jeff Bezos 56:13 - Work hard and smart 58:48 - Open source 1:10:25 - Java 1:28:31 - Java virtual machine 1:44:05 - Android 1:47:04 - Advice
Chapters
Lex Fridman speaks with James Gosling, founder and lead designer of the Java programming language, about the language, object-oriented programming, and the art of parallel computing.
00:00 - 01:34 (01:34)
Summary
Lex Fridman speaks with James Gosling, founder and lead designer of the Java programming language, about the language, object-oriented programming, and the art of parallel computing.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The intersection between programming and numbers involves understanding the logical structures and patterns of computation.
01:34 - 12:31 (10:56)
Summary
The intersection between programming and numbers involves understanding the logical structures and patterns of computation. For some, this fascination with numbers extends beyond the digital world and into everyday tasks like paying for purchases with interesting sums.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The transcript discusses the development of integrated circuits, and how they allowed for better understanding and visualization of functions.
12:31 - 17:53 (05:22)
Summary
The transcript discusses the development of integrated circuits, and how they allowed for better understanding and visualization of functions.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The speaker recalls building programs for playing games like blackjack and solitaire, and working with assembly code and PDP assembly code in his early programming days.
17:55 - 24:28 (06:33)
Summary
The speaker recalls building programs for playing games like blackjack and solitaire, and working with assembly code and PDP assembly code in his early programming days.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The speaker discusses the language structure in programming which allows for multi-threading but highlights the potential drawbacks such as needing to handle semaphores and locks.
24:28 - 29:06 (04:37)
Summary
The speaker discusses the language structure in programming which allows for multi-threading but highlights the potential drawbacks such as needing to handle semaphores and locks.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The speaker compares their experience using old text editing commands which required multiple commands for one character to newer, more efficient editing commands.
29:06 - 34:12 (05:06)
Summary
The speaker compares their experience using old text editing commands which required multiple commands for one character to newer, more efficient editing commands.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
In the early 90s, the idea was that internet technology would enable anyone to become a provider of content, from home movies to grocery store advertisements.
34:12 - 42:51 (08:38)
Summary
In the early 90s, the idea was that internet technology would enable anyone to become a provider of content, from home movies to grocery store advertisements. However, cable companies saw their business as selling eyeballs to advertisers rather than delivering delightful content to customers.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
Many companies struggle to transition from their old ways to digital, even if they can see the future trend lines.
42:51 - 49:52 (07:01)
Summary
Many companies struggle to transition from their old ways to digital, even if they can see the future trend lines. Such transitions take time and company overhaul, making it harder for them to make it happen.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The original Tesla was doing just okay until Elon Musk took over and drove them forward with his strong vision and mostly good calls.
49:53 - 56:23 (06:30)
Summary
The original Tesla was doing just okay until Elon Musk took over and drove them forward with his strong vision and mostly good calls. He pushes people to excel, and while some may not like his methods, it has led to success.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The guest talks about the importance of luck and timing in success as well as the impact of open-source projects in developers' work.
56:23 - 1:01:21 (04:57)
Summary
The guest talks about the importance of luck and timing in success as well as the impact of open-source projects in developers' work.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The high cost of medications and software dependence can be financially crippling to small corporations that do not have support contracts.
1:01:22 - 1:10:19 (08:56)
Summary
The high cost of medications and software dependence can be financially crippling to small corporations that do not have support contracts. This worldwide problem presents challenges for those trying to make ends meet, but with perseverance, some have been able to provide for their families.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The clash between business priorities and technical priorities within a startup can lead to conflict and difficulty in implementing the correct solution.
1:10:18 - 1:20:02 (09:43)
Summary
The clash between business priorities and technical priorities within a startup can lead to conflict and difficulty in implementing the correct solution.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The software development process is crucial for projects such as banks' account reconciliation system, where issues occurring in the process can lead to serious consequences, and mystery pointer bugs are hard to find because they tend to be statistical.
1:20:02 - 1:27:47 (07:45)
Summary
The software development process is crucial for projects such as banks' account reconciliation system, where issues occurring in the process can lead to serious consequences, and mystery pointer bugs are hard to find because they tend to be statistical.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
This podcast discusses the evolution of computer processing units and the complexities of adapting software to different types of processors.
1:27:47 - 1:34:39 (06:51)
Summary
This podcast discusses the evolution of computer processing units and the complexities of adapting software to different types of processors. It touches on the Motorola 6,8,0,10 processor and its shift to the 6,8,0,20 processor, as well as the instruction set of an abstract machine designed to translate to a physical machine.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The speaker discusses the need to be able to switch between different microprocessors and the creation of multiple translators to accomplish this, with references to Pascal P code and Henry Ford's famous quote.
1:34:39 - 1:45:29 (10:50)
Summary
The speaker discusses the need to be able to switch between different microprocessors and the creation of multiple translators to accomplish this, with references to Pascal P code and Henry Ford's famous quote.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
The speaker discusses his early contemplation of ethical choices and advises young developers, engineers and scientists on how to approach their lives.
1:45:32 - 1:49:29 (03:57)
Summary
The speaker discusses his early contemplation of ethical choices and advises young developers, engineers and scientists on how to approach their lives.
Episode#126 – James Gosling: Java, JVM, Emacs, and the Early Days of Computing
PodcastLex Fridman Podcast
In his conversation with Lex Friedman, James Gosling uses the science-fiction comparison of Blade Runner and Star Trek to ponder over his technical decisions, stating that he would prefer a universe like Star Trek to live in.
1:49:30 - 1:51:08 (01:38)
Summary
In his conversation with Lex Friedman, James Gosling uses the science-fiction comparison of Blade Runner and Star Trek to ponder over his technical decisions, stating that he would prefer a universe like Star Trek to live in.