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

  • 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