Episode 86: Interview Dave Thomas

Topics covered
Popular Clips
Episode Highlights
Smalltalk vs. Ruby
contrasts Smalltalk and Ruby, highlighting their unique features and legacy. He appreciates Ruby's uniform object model and more readable syntax compared to Smalltalk, despite Ruby's metaprogramming complexities 1. Smalltalk, while praised for its readability and quick development capabilities, faced challenges due to vendor-driven platform strategies and the rise of Java 2.
Smalltalk had the property that it let you get things done quite quickly. The programs were readable by people other than computer scientists.
---
Type Systems
The discussion on type systems reveals their role as constraint systems that enhance program correctness and bug detection. explains that static typing, while beneficial for IDE support, can be cumbersome due to complex APIs and coercions 3. He suggests that dynamic languages, through testing, offer similar reliability without the rigidity of static types.
The experience isn't that programming in dynamic languages is less reliable than programming in static languages. That's not borne out.
---
Language Complexity
emphasizes the importance of simplicity in programming languages, arguing that fewer lines of code lead to better productivity and quality. He notes that languages like Lisp and Smalltalk offer orthogonal concepts that simplify development, contrasting with the complexity of languages like Java 4. Thomas also sees potential in languages that integrate features from multiple paradigms, such as Scala and Haskell, to create more efficient and expressive code 5.
The essence of good language design is trying to leave out more things and try and make things more consistent.
---
Related Episodes


Episode 148: Software Archaeology with Dave Thomas
Answers 383 questions

SE-Radio Episode 242: Dave Thomas on Innovating Legacy Systems
Answers 383 questions

Episode 36: Interview Guy Steele
Answers 383 questions

Episode 47: Interview Grady Booch
Answers 383 questions

Episode 97: Interview Anders Hejlsberg
Answers 383 questions

Episode 81: Interview Erich Gamma
Answers 383 questions

Episode 140: Newspeak and Pluggable Types with Gilad Bracha
Answers 383 questions

Episode 52: DSL Development in Ruby
Answers 383 questions

Episode 57: Compile-Time Metaprogramming
Answers 383 questions

Episode 38: Interview James Noble
Answers 383 questions

Episode 155: Johannes Link & Lasse Koskela on TDD
Answers 383 questions

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

Episode 112: Roles in Software Engineering II
Answers 383 questions
Episode 166: Living Architectures with John Wiegand
Answers 383 questions













