Computers are used more and more in our homes, schools, and workplaces. But even while the majority of us can operate computers today, albeit with the aid of the ubiquitous computer software manual, we know very little about how computers work from the inside out and almost nothing about software design or the field of computer programming.
Richard Gabriel, a well-known software pioneer, and computer scientist gives us an insightful inside look into the world of software design, computer programming, and the industry that surrounds them in Patterns of Software. In this comprehensive book, Gabriel covers a wide range of subjects, including what makes a successful programming language, how the general public views and reacts to computer scientists' work, how he first got into computer programming and software development, the characteristics of a successful software company, and the reasons why his own company, Lucid, failed in 1994, ten years after its founding.
Gabriel's in-depth analysis of what he believes are the lessons that can be learned from architect Christopher Alexander, whose books, including the seminal A Pattern Language, have had a profound impact on the computer programming community, is possibly the most fascinating and illuminating section of the book. Gabriel explains some of Alexander's most important ideas, such as "the quality without a name," pattern languages, habitability, and piecemeal growth, and demonstrates how these prominent architectural concepts can be used to build computer programs just as well. Gabriel uses a New England farmhouse and its surrounding structures, which steadily grow and are adapted to suit the requirements and preferences of the people who live and work on the farm, as an example to illustrate the concept of habitability. "Programs live and develop, and its occupants—the programmers—must collaborate with the program in the same manner that a farmer collaborates with a farmhouse."
Despite the fact that computer scientists and software entrepreneurs would benefit much from reading this book, anyone interested in Silicon Valley, computer programming, or the high-tech industry will find the essays to be interesting and interesting.