Cover image for 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. Masterminds of Programming
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Foreword
    3. Preface
      1. Organization of the Material
      2. Conventions Used in This Book
      3. How to Contact Us
      4. Safari® Books Online
    4. 1. C++
      1. Design Decisions
      2. Using the Language
      3. OOP and Concurrency
      4. Future
      5. Teaching
    5. 2. Python
      1. The Pythonic Way
      2. The Good Programmer
      3. Multiple Pythons
      4. Expedients and Experience
    6. 3. APL
      1. Paper and Pencil
      2. Elementary Principles
      3. Parallelism
      4. Legacy
    7. 4. Forth
      1. The Forth Language and Language Design
      2. Hardware
      3. Application Design
    8. 5. BASIC
      1. The Goals Behind BASIC
      2. Compiler Design
      3. Language and Programming Practice
      4. Language Design
      5. Work Goals
    9. 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
    10. 7. Lua
      1. The Power of Scripting
      2. Experience
      3. Language Design
    11. 8. Haskell
      1. A Functional Team
      2. Trajectory of Functional Programming
      3. The Haskell Language
      4. Spreading (Functional) Education
      5. Formalism and Evolution
    12. 9. ML
      1. The Soundness of Theorems
      2. The Theory of Meaning
      3. Beyond Informatics
    13. 10. SQL
      1. A Seminal Paper
      2. The Language
      3. Feedback and Evolution
      4. XQuery and XML
    14. 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
    15. 12. Java
      1. Power or Simplicity
      2. A Matter of Taste
      3. Concurrency
      4. Designing a Language
      5. Feedback Loop
    16. 13. C#
      1. Language and Design
      2. Growing a Language
      3. C#
      4. The Future of Computer Science
    17. 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
    18. 15. Perl
      1. The Language of Revolutions
      2. Language
      3. Community
      4. Evolution and Revolution
    19. 16. PostScript
      1. Designed to Last
      2. Research and Education
      3. Interfaces to Longevity
      4. Standard Wishes
    20. 17. Eiffel
      1. An Inspired Afternoon
      2. Reusability and Genericity
      3. Proofreading Languages
      4. Managing Growth and Evolution
    21. A. ABOUT THE INTERVIEWERS
    22. B. Afterword
    23. C. Contributors
    24. Index
    25. About the Authors
    26. COLOPHON
    27. SPECIAL OFFER: Upgrade this ebook with O’Reilly