Synopses & Reviews
Masterminds of Programming features incisive interviews with the creators of several historic and highly influential programming languages. From Adin D. Falkoff, who began APL in 1957, to Anders Hejlsberg, who formed the C# design team in 1999, you'll learn the process that led to specific design decisions: the goals they had in mind, the trade-offs they had to make, and how their experiences have left an impact on programming today. Think along with James Gosling (Java), Bjarne Stroustrup (C++), and others whose vision and hard work helped shape the computer industry. Masterminds of Programming includes individual interviews with:
Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK (1977) Charles H Moore: FORTH (1968) James Gosling: Java (1995) Grady Booch, Ivar Jacobson, and James Rumbaugh: UML (1997) Adin D. Falkoff: APL (1964) Robin Milner: functional language ML (1973) Simon Peyton Jones: functional language Haskell (1990) Donald D. Chamberlin and Raymond F. Boyce: SQL (1974) Bjarne Stroustrup: C++ (1983) Anders Hejlsberg: Delphi inventor and lead developer of C# (2001) Guido van Rossum: Python (1991) Larry Wall: Perl (1987)
If you're a programmer or system designer, the detailed interviews in Masterminds of Programming offer valuable advice you can apply to systems you're developing, even if you don't use the specific languages being discussed. Anyone interested in the history of the computer age will find this book indispensable.
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.
Featuring exclusive interviews with the creators of several historic and highly influential programming languages, this unique collection teaches 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.
About the Author
Federico Biancuzzi is a freelance interviewer. His interviews appeared on publications such as ONLamp.com, LinuxDevCenter.com, SecurityFocus.com, NewsForge.com, Linux.com, TheRegister.co.uk, ArsTechnica.com, the Polish print magazine BSD Magazine, and the Italian print magazine Linux&C.
Shane Warden manages Onyx Neon Press, an independent publisher. His areas of expertise include agile software development, language design, and virtual machines for dynamic languages. He is also a published novelist. His books include The Art of Agile Development and Masterminds of Programming.
Table of Contents
Foreword; Preface; Organization of the Material; Conventions Used in This Book; How to Contact Us; Safari® Books Online; Chapter 1: C++; 1.1 Design Decisions; 1.2 Using the Language; 1.3 OOP and Concurrency; 1.4 Future; 1.5 Teaching; Chapter 2: Python; 2.1 The Pythonic Way; 2.2 The Good Programmer; 2.3 Multiple Pythons; 2.4 Expedients and Experience; Chapter 3: APL; 3.1 Paper and Pencil; 3.2 Elementary Principles; 3.3 Parallelism; 3.4 Legacy; Chapter 4: Forth; 4.1 The Forth Language and Language Design; 4.2 Hardware; 4.3 Application Design; Chapter 5: BASIC; 5.1 The Goals Behind BASIC; 5.2 Compiler Design; 5.3 Language and Programming Practice; 5.4 Language Design; 5.5 Work Goals; Chapter 6: AWK; 6.1 The Life of Algorithms; 6.2 Language Design; 6.3 Unix and Its Culture; 6.4 The Role of Documentation; 6.5 Computer Science; 6.6 Breeding Little Languages; 6.7 Designing a New Language; 6.8 Legacy Culture; 6.9 Transformative Technologies; 6.10 Bits That Change the Universe; 6.11 Theory and Practice; 6.12 Waiting for a Breakthrough; 6.13 Programming by Example; Chapter 7: Lua; 7.1 The Power of Scripting; 7.2 Experience; 7.3 Language Design; Chapter 8: Haskell; 8.1 A Functional Team; 8.2 Trajectory of Functional Programming; 8.3 The Haskell Language; 8.4 Spreading (Functional) Education; 8.5 Formalism and Evolution; Chapter 9: ML; 9.1 The Soundness of Theorems; 9.2 The Theory of Meaning; 9.3 Beyond Informatics; Chapter 10: SQL; 10.1 A Seminal Paper; 10.2 The Language; 10.3 Feedback and Evolution; 10.4 XQuery and XML; Chapter 11: Objective-C; 11.1 Engineering Objective-C; 11.2 Growing a Language; 11.3 Education and Training; 11.4 Project Management and Legacy Software; 11.5 Objective-C and Other Languages; 11.6 Components, Sand, and Bricks; 11.7 Quality As an Economic Phenomenon; 11.8 Education; Chapter 12: Java; 12.1 Power or Simplicity; 12.2 A Matter of Taste; 12.3 Concurrency; 12.4 Designing a Language; 12.5 Feedback Loop; Chapter 13: C#; 13.1 Language and Design; 13.2 Growing a Language; 13.3 C#; 13.4 The Future of Computer Science; Chapter 14: UML; 14.1 Learning and Teaching; 14.2 The Role of the People; 14.3 UML; 14.4 Knowledge; 14.5 Be Ready for Change; 14.6 Using UML; 14.7 Layers and Languages; 14.8 A Bit of Reusability; 14.9 Symmetric Relationships; 14.10 UML; 14.11 Language Design; 14.12 Training Developers; 14.13 Creativity, Refinement, and Patterns; Chapter 15: Perl; 15.1 The Language of Revolutions; 15.2 Language; 15.3 Community; 15.4 Evolution and Revolution; Chapter 16: PostScript; 16.1 Designed to Last; 16.2 Research and Education; 16.3 Interfaces to Longevity; 16.4 Standard Wishes; Chapter 17: Eiffel; 17.1 An Inspired Afternoon; 17.2 Reusability and Genericity; 17.3 Proofreading Languages; 17.4 Managing Growth and Evolution; ABOUT THE INTERVIEWERS; Afterword; Contributors; COLOPHON;