O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Masterminds of Programming

Book Description

Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. In this unique collection, you'll learn about the processes that led to specific design decisions, including the goals they had in mind, the trade-offs they had to make, and how their experiences have left an impact on programming today. Masterminds of Programming includes individual interviews with:

  • Adin D. Falkoff: APL
  • Thomas E. Kurtz: BASIC
  • Charles H. Moore: FORTH
  • Robin Milner: ML
  • Donald D. Chamberlin: SQL
  • Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK
  • Charles Geschke and John Warnock: PostScript
  • Bjarne Stroustrup: C++
  • Bertrand Meyer: Eiffel
  • Brad Cox and Tom Love: Objective-C
  • Larry Wall: Perl
  • Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes: Haskell
  • Guido van Rossum: Python
  • Luiz Henrique de Figueiredo and Roberto Ierusalimschy: Lua
  • James Gosling: Java
  • Grady Booch, Ivar Jacobson, and James Rumbaugh: UML
  • Anders Hejlsberg: Delphi inventor and lead developer of C#

If you're interested in the people whose vision and hard work helped shape the computer industry, you'll find Masterminds of Programming fascinating.

Table of Contents

  1. Foreword
  2. Preface
    1. Organization of the Material
    2. Conventions Used in This Book
    3. How to Contact Us
    4. Safari® Books Online
  3. 1. C++
    1. Design Decisions
    2. Using the Language
    3. OOP and Concurrency
    4. Future
    5. Teaching
  4. 2. Python
    1. The Pythonic Way
    2. The Good Programmer
    3. Multiple Pythons
    4. Expedients and Experience
  5. 3. APL
    1. Paper and Pencil
    2. Elementary Principles
    3. Parallelism
    4. Legacy
  6. 4. Forth
    1. The Forth Language and Language Design
    2. Hardware
    3. Application Design
  7. 5. BASIC
    1. The Goals Behind BASIC
    2. Compiler Design
    3. Language and Programming Practice
    4. Language Design
    5. Work Goals
  8. 6. AWK
    1. The Life of Algorithms
    2. Language Design
    3. Unix and Its Culture
    4. The Role of Documentation
    5. Computer Science
    6. Breeding Little Languages
    7. Designing a New Language
    8. Legacy Culture
    9. Transformative Technologies
    10. Bits That Change the Universe
    11. Theory and Practice
    12. Waiting for a Breakthrough
    13. Programming by Example
  9. 7. Lua
    1. The Power of Scripting
    2. Experience
    3. Language Design
  10. 8. Haskell
    1. A Functional Team
    2. Trajectory of Functional Programming
    3. The Haskell Language
    4. Spreading (Functional) Education
    5. Formalism and Evolution
  11. 9. ML
    1. The Soundness of Theorems
    2. The Theory of Meaning
    3. Beyond Informatics
  12. 10. SQL
    1. A Seminal Paper
    2. The Language
    3. Feedback and Evolution
    4. XQuery and XML
  13. 11. Objective-C
    1. Engineering Objective-C
    2. Growing a Language
    3. Education and Training
    4. Project Management and Legacy Software
    5. Objective-C and Other Languages
    6. Components, Sand, and Bricks
    7. Quality As an Economic Phenomenon
    8. Education
  14. 12. Java
    1. Power or Simplicity
    2. A Matter of Taste
    3. Concurrency
    4. Designing a Language
    5. Feedback Loop
  15. 13. C#
    1. Language and Design
    2. Growing a Language
    3. C#
    4. The Future of Computer Science
  16. 14. UML
    1. Learning and Teaching
    2. The Role of the People
    3. UML
    4. Knowledge
    5. Be Ready for Change
    6. Using UML
    7. Layers and Languages
    8. A Bit of Reusability
    9. Symmetric Relationships
    10. UML
    11. Language Design
    12. Training Developers
    13. Creativity, Refinement, and Patterns
  17. 15. Perl
    1. The Language of Revolutions
    2. Language
    3. Community
    4. Evolution and Revolution
  18. 16. PostScript
    1. Designed to Last
    2. Research and Education
    3. Interfaces to Longevity
    4. Standard Wishes
  19. 17. Eiffel
    1. An Inspired Afternoon
    2. Reusability and Genericity
    3. Proofreading Languages
    4. Managing Growth and Evolution
  20. A. ABOUT THE INTERVIEWERS
  21. B. Afterword
  22. C. Contributors
  23. Index
  24. About the Authors
  25. COLOPHON
  26. Copyright