Episode 36: Interview Guy Steele

Topics covered
Popular Clips
Episode Highlights
Language Evolution
Guy Steele, a prominent figure in programming language design, shares insights into the evolution of programming languages, highlighting his work on Lisp and the new Fortress language. He emphasizes the importance of designing languages that can grow over time, much like Java, which evolved significantly since its inception. Steele explains that Fortress aims to meet the scientific community's needs by providing advanced mathematical abstractions and better support for complex data structures 1.
Programming languages are very complicated and you can't build it all at once. It's going to take time.
---
The language's design focuses on aligning with the mathematical notations scientists use, making it more intuitive and efficient for high-end scientific computing 2.
Lisp Resurgence
The resurgence of Lisp's concepts, such as metaprogramming and automatic storage management, is evident in modern languages like Ruby. Guy Steele notes that these foundational ideas, initially introduced in Lisp, continue to influence contemporary programming practices. He reflects on the scientific community's request to extend Java with Fortran-like features, which led to the development of Fortress as a more suitable language for scientific applications 3.
There are just some basic ideas that they got right in Lisp that people are constantly rediscovering are useful good ideas.
---
Steele's work on Fortress aims to provide safer, easier-to-program code libraries that can integrate with internet technologies, addressing the unique needs of scientific programmers.
Design Risks
Designing a programming language involves balancing innovation with coherence, a challenge Guy Steele acknowledges in the development of Fortress. He highlights the risks of losing design coherence when incorporating numerous features, a common issue in languages designed by committees. Steele's approach with Fortress includes built-in support for parallelism, emphasizing default parallel constructs to cater to modern computational needs 4.
We purposely make you pay a syntactic tax to get a sequential program.
---
This innovative design choice aims to encourage parallelism, reflecting the language's focus on high-performance scientific computing.
Related Episodes


Episode 38: Interview James Noble
Answers 383 questions

Episode 97: Interview Anders Hejlsberg
Answers 383 questions

Episode 86: Interview Dave Thomas
Answers 383 questions

Episode 96: Interview Krzysztof Czarnecki
Answers 383 questions

Episode 47: Interview Grady Booch
Answers 383 questions

Episode 84: Dick Gabriel on Lisp
Answers 383 questions

Episode 20: Interview Michael Stal
Answers 383 questions

Episode 143: API Design with Jim des Rivieres
Answers 383 questions

Episode 57: Compile-Time Metaprogramming
Answers 383 questions

Episode 126: Jetbrains MPS with Konstantin Solomatov
Answers 383 questions

Episode 140: Newspeak and Pluggable Types with Gilad Bracha
Answers 383 questions

Episode 39: Interview Steve Vinoski
Answers 383 questions

Episode 81: Interview Erich Gamma
Answers 383 questions

Episode 17: Feedback and Roadmap
Answers 383 questions













