📖 Overview
Matthew Flatt is a Professor of Computer Science at the University of Utah and a prominent figure in programming language design and implementation. He is best known as one of the principal developers of Racket (formerly DrScheme), a programming language and development environment used extensively in computer science education.
Flatt's research focuses on programming language design, macro systems, and software engineering tools. He has made significant contributions to the development of pedagogical programming environments and is a co-author of "How to Design Programs," a widely-used computer science textbook that introduces systematic program design.
His work on the Racket macro system has influenced modern programming language development, particularly in the area of syntax extension and domain-specific languages. Flatt also maintains an active role in computer science education, developing curriculum materials and tools that help students learn programming concepts.
Flatt regularly publishes research papers in top computer science venues and continues to contribute to the evolution of programming languages and development tools. His technical contributions extend beyond Racket to include work on module systems, cross-platform GUI toolkits, and software composition frameworks.
👀 Reviews
Readers consistently value Flatt's technical precision and teaching abilities in computer science education materials. His works receive high marks for clarity in explaining complex programming concepts.
What readers liked:
- Clear explanations of programming language concepts
- Practical examples that build understanding
- High quality of technical documentation
- Teaching materials that progress logically
- Racket documentation's thoroughness
What readers disliked:
- Some found "How to Design Programs" too theoretical for beginners
- Documentation can be dense for newcomers
- Limited coverage of certain advanced topics
Ratings across platforms:
- "How to Design Programs" (co-authored): 4.1/5 on Goodreads (127 ratings)
- Racket documentation ratings consistently 4+ stars on programming forums
From a reader on HackerNews: "Flatt's documentation style sets the standard for technical writing - precise without being impenetrable."
From a CS student review: "The teaching materials break down complex ideas into digestible pieces, though sometimes the pace can be challenging."
📚 Books by Matthew Flatt
How to Design Programs
A comprehensive textbook that teaches systematic program design through a series of progressively complex design recipes, using the Racket programming language.
👥 Similar authors
Gerald Jay Sussman
Co-authored "Structure and Interpretation of Computer Programs," which pioneered teaching computer science through Scheme programming. His focus on fundamental computing concepts and educational approaches aligns with Flatt's work on Racket and computer science education.
Matthias Felleisen Created TeachScheme! and co-developed Racket alongside Flatt. His work on programming language semantics and educational computing spans decades of influential publications and practical tools.
Guy L. Steele Developed Scheme and contributed to the standardization of multiple programming languages including Java. His focus on language design and implementation mirrors Flatt's technical work on macro systems and language development.
Daniel P. Friedman Wrote "The Little Schemer" and other books that teach programming concepts through Scheme. His approach to teaching computer science concepts through careful language design parallels Flatt's educational contributions.
Shriram Krishnamurthi Created Programming Languages: Application and Interpretation and works on programming language theory and education. His research combines language design with pedagogical tools, similar to Flatt's focus on educational programming environments.
Matthias Felleisen Created TeachScheme! and co-developed Racket alongside Flatt. His work on programming language semantics and educational computing spans decades of influential publications and practical tools.
Guy L. Steele Developed Scheme and contributed to the standardization of multiple programming languages including Java. His focus on language design and implementation mirrors Flatt's technical work on macro systems and language development.
Daniel P. Friedman Wrote "The Little Schemer" and other books that teach programming concepts through Scheme. His approach to teaching computer science concepts through careful language design parallels Flatt's educational contributions.
Shriram Krishnamurthi Created Programming Languages: Application and Interpretation and works on programming language theory and education. His research combines language design with pedagogical tools, similar to Flatt's focus on educational programming environments.