📖 Overview
Growing a Language presents the evolution of programming languages through a unique speech format. The text starts with one-syllable words and gradually introduces more complex terms by defining them first.
The book emerged from a presentation at OOPSLA '98 where Steele demonstrated the principles of language growth in real-time. The narrative follows a strict rule set while building a vocabulary that expands with each page.
The work examines how programming languages develop and adapt, mirroring natural language evolution. Through its structure and content, the book raises questions about communication systems and the fundamental nature of language design.
👀 Reviews
There are not enough internet reviews to create a summary of this book. Instead, here is a summary of reviews of Guy L. Steele's overall work:
Readers praise Steele's technical writing clarity and ability to explain complex programming concepts. His "Common Lisp the Language, 2nd Edition" receives particular recognition for its comprehensive coverage and precise language.
What readers liked:
- Thorough technical explanations
- Clear writing style for complex topics
- Precise language definitions
- Detailed examples and use cases
What readers disliked:
- Dense, academic writing style can be challenging for beginners
- Some books are now dated in terms of technology
- High level of mathematical/computer science knowledge required
- Limited availability of physical copies
Ratings:
Common Lisp the Language (Goodreads): 4.24/5 (89 ratings)
Structure and Interpretation of Computer Programs (co-author) (Goodreads): 4.36/5 (3,824 ratings)
C++ Programming Language Specification (Amazon): 4.1/5 (limited reviews)
One reader noted: "Steele's explanations are like well-crafted proofs - nothing extra, everything necessary." Another mentioned: "Not for casual reading, but invaluable as a reference."
📚 Similar books
The Art of Computer Programming by Donald Knuth
This foundational text explores programming languages through mathematical and computational frameworks, echoing Steele's focus on language construction principles.
Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman The text examines programming language design through practical implementations while building a comprehensive understanding of computation fundamentals.
Types and Programming Languages by Benjamin Pierce This work delves into the theoretical foundations of programming language design with focus on type systems and language evolution.
Programming Language Pragmatics by Michael L. Scott The book presents programming language concepts through implementation details and design decisions across multiple language paradigms.
Concepts of Programming Languages by Robert W. Sebesta This text dissects programming language evolution through historical developments and core principles that shape modern language design.
Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman The text examines programming language design through practical implementations while building a comprehensive understanding of computation fundamentals.
Types and Programming Languages by Benjamin Pierce This work delves into the theoretical foundations of programming language design with focus on type systems and language evolution.
Programming Language Pragmatics by Michael L. Scott The book presents programming language concepts through implementation details and design decisions across multiple language paradigms.
Concepts of Programming Languages by Robert W. Sebesta This text dissects programming language evolution through historical developments and core principles that shape modern language design.
🤔 Interesting facts
🔍 The entire talk was given using only words of one syllable, except when Steele explicitly defined a new word using previously established terms
📚 The presentation demonstrates the concept it discusses - as Steele builds his vocabulary throughout the speech, his language becomes increasingly sophisticated
🎓 The talk was delivered as the keynote address at the 1998 Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) conference
💡 Steele deliberately chose to write in this restricted way to illustrate how programming languages need to grow and evolve over time
🌱 The published paper includes distinctive typography: words of more than one syllable appear in italics, marking the moment each new term is defined and added to the available vocabulary