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

  • Modularity

    Modularity in programming remains a complex challenge, as explains. He highlights the analogy between hardware and dynamic typing, emphasizing the need for modularity that doesn't drag dependencies along. This is crucial because traditional imports often create implicit dependencies, akin to a power cable tethering a laptop to a power station 1. Bracha argues that the real goal is to achieve modularity where components can be connected without carrying unnecessary baggage 2.

    The main point is analogy, that that's the kind of modularity that you really want, is the ability to pick up a piece and take it and connect it and know that it doesn't drag along things with it.

    ---

    This unresolved issue is central to Newspeak's approach, which seeks to redefine how modularity is achieved in programming.

       

    Classes as Modules

    Newspeak's innovative use of classes as modules is a key design choice that discusses. By eliminating a global namespace, Newspeak allows top-level classes to serve as self-contained modules, facilitating side-by-side deployment without the need for dependency injection frameworks 3. This approach also incorporates virtual classes, where every reference is a method call, allowing for dynamic and flexible module definitions 4.

    The nice thing is we cover a lot of ground and get a lot of expressive power from very very simple rules based on these two ideas, no global namespace and everything is laid bound.

    ---

    This design not only simplifies the language but also enhances its expressive power, making it adaptable to various programming needs.

Related Episodes