Published Sep 3, 2019

Episode 140: Newspeak and Pluggable Types with Gilad Bracha

Gilad Bracha delves into programming modularity and the innovative capabilities of the Newspeak language, crafted for cloud use with class-based modularity. He also explores pluggable types, stressing their potential for creative freedom in programming while addressing the challenges of implementation and tool support.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Flexibility

    Pluggable type systems offer a flexible alternative to traditional static types by allowing developers to add different kinds of metadata to their programs. explains that in languages like Java, static type systems restrict the way developers think by enforcing specific metadata checks. emphasizes that pluggable types should not alter program behavior, allowing for multiple analyses like race condition checks without interference 1. He argues that static type systems can hinder creativity by limiting the scope of metaprogramming and innovation 2.

    The wonderful thing about dynamic typing is it lets you express anything that it is computable. And type systems don't.

    ---

    This flexibility is crucial for fostering creativity and enabling developers to explore new programming paradigms.

       

    Inference Constraints

    Type inference in static type systems, like those in Scala, aims to reduce the need for explicit type annotations, but it introduces its own constraints. notes that mandatory type inference can limit the design of type systems, as they must fit within the inference scheme 3. He suggests that while type inference can be useful, it should not dictate the type system's design.

    My preference would be to say, okay, for the type checker, the types have to be explicit, whatever the type system is.

    ---

    This approach allows for greater flexibility in expressing complex ideas without being constrained by the limitations of type inference.

       

    Implementation

    Implementing pluggable type systems presents unique challenges, particularly in balancing innovation with practical tool support. acknowledges that while his work is not yet a turnkey solution, it is suitable for enthusiasts and early adopters who are willing to experiment 4. stresses the importance of tool support, such as code completion, to ensure developer productivity 5.

    Your papers are good enough, so by reading for 15 minutes I can ask these questions.

    ---

    This highlights the need for comprehensive documentation and robust tooling to facilitate the adoption of new type systems.

Related Episodes