Episode 140: Newspeak and Pluggable Types with Gilad Bracha

Topics covered
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


Episode 86: Interview Dave Thomas
Answers 383 questions

Episode 57: Compile-Time Metaprogramming
Answers 383 questions

Episode 119: DSLs in Practice with JP Tolvanen
Answers 383 questions

Episode 28: Type Systems
Answers 383 questions

Episode 36: Interview Guy Steele
Answers 383 questions

Episode 84: Dick Gabriel on Lisp
Answers 383 questions

SE-Radio Episode 296: Type Driven Development with Edwin Brady
Answers 383 questions

Episode 97: Interview Anders Hejlsberg
Answers 383 questions

Episode 126: Jetbrains MPS with Konstantin Solomatov
Answers 383 questions

SE-Radio Episode 240: The Groovy Language with Cédric Champeau
Answers 383 questions

Episode 104: Plugin Architectures
Answers 383 questions

Episode 384: Boris Cherny on TypeScript.mp3
Answers 383 questions

Episode 129: F# with Luke Hoban
Answers 383 questions

Episode 96: Interview Krzysztof Czarnecki
Answers 383 questions

Episode 182: Domain-Specific Languages with Martin Fowler and Rebecca Parsons
Answers 383 questions














