Episode 36: Interview Guy Steele

Topics covered
Popular Clips
Episode Highlights
Design Principles
Guy Steele, a renowned programming language designer, shares insights into the foundational goals and motivations behind the creation of Fortress. He emphasizes the need for a language that caters to the scientific community with appropriate data types and operations, especially for handling complex simulations. Steele explains, "We decided to start from scratch and do a requirements analysis, and Fortress came out of that" 1. The language aims to grow organically, allowing it to adapt and evolve over time, much like Java has done since its inception 2.
Mathematical Notation
Fortress integrates mathematical notation into programming, making it more intuitive for scientists. Steele notes that many mathematical syntax patterns are standardized, allowing for seamless integration into the language 3. The use of Unicode expands the character set, enhancing expressiveness and aligning programming syntax with traditional mathematical notation. Steele remarks, "Unicode has 29 kinds of parentheses, and there will probably be more coming" 3. This approach not only simplifies coding for scientists but also opens new possibilities for syntax extension and optimization.
Type System and Traits
The Fortress language employs a robust type system that supports static typing and type inference, reducing the need for explicit type declarations. Steele highlights the use of traits, which are akin to Java interfaces but with added functionality, such as code and contract inheritance 4. This system allows for complex data relationships to be expressed efficiently at compile time. "It's a strongly statically typed language," Steele asserts, emphasizing its capability to handle intricate data structures 5. By embedding testing data within the language, Fortress enhances both reliability and usability for scientific applications.
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













