Published Sep 3, 2019

Episode 36: Interview Guy Steele

Guy Steele delves into the transformative features of the Fortress programming language, designed as a superior alternative to Fortran for scientific computing, while emphasizing its advancements in parallelism, mathematical notation, and type systems to push the boundaries of programming language innovation.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

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