Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design

Author: Diomidis Spinellis & Georgios Gousios
Publisher: O'Reilly, 2009
Pages: 426
ISBN: 978-0596517984
Print: 059651798X
Kindle: B0043GXMRA
Audiance: Anyone with professional interest in programming
Rating: 4
Reviewed by: Mike James 

This thought-provoking collection of essays still qualifies as I Programmer's most popular book review. Here it is again, while the team takes a festive break, 

Review originally posted June 12, 2009

This is part of a series of O'Reilly titles with "Beautiful" in their titles, that present essays from more than a dozen contributors to examine the more thoughtful aspects of programming. This is not bad thing as being able to engage in a certain amount of "navel gazing" is a mark of maturity but publishers have a habit of overdoing any good idea and producing books that weaken the whole genre. In this case "beautiful architecture" is still a good idea, but it's an inherently difficult one to pull off. The reason is, of course, that architecture, and indeed even what is meant by the term, is vague in the extreme. One programmer's architecture is another's implementation and in a volume of contributed essays you are bound to have a range of interpretations and topics that really don't fit particularly well together. Also any given reader, or reviewer for that matter, is going to find a particular subset of articles either good or bad depending on their interests and inclinations.

Let's look at what the book contains by contribution. The first part of the book sets out to examine the idea of software architecture in its most general terms.

What Is Architecture? is a rambling exploration of what the term means. It's the sort of essay that you can find in any book on the subject and this one is no worse and no better.

A Tale of Two Systems: A Modern-Day Software Fable is a description of what good architecture is. It's another long winded explanation of what should already be obvious to you. If it isn't then you need to read something like this.

The second section concentrates on particular problems in implementing "enterprise" systems.

Architecting for Scale describes the implementation of an online game server. Interesting but not many general usable ideas unless you are implementing some thing very similar.

Making Memories - considerations in implementing a photo processing workflow system.

Resource-Oriented Architectures: Being "In the Web" is mostly about REST and the wider idea of organising systems using resource oriented approach.

Data Grows Up: The Architecture of the Facebook Platform - for once the title tells you what the essay is all about.

 

 

The third part of the book deals with systems architecture and this is an area where what might be included is most diverse and what you might find interesting really does depend on what you are working on.

Xen and the Beauty of Virtualization explains, in the most general terms the architecture of a machine virtualization system.

Guardian: A Fault-Tolerant Operating System Environment describes both the hardware and the software aspects of building fault tolerance into systems.

JPC: An x86 PC Emulator in Pure Java is about another approach to virtualization but in this case the design of a machine emulator.

The Strength of Metacircular Virtual Machines: Jikes RVM is a fairly straightforward account of building a yet another type of virtual machine.

The fourth part of the book concentrates on end user applications.

GNU Emacs: Creeping Featurism Is a Strength is partly a homage to the Emacs editor and partly a consideration of where it might have gone wrong.

When the Bazaar Sets Out to Build Cathedrals is an account of the KDE desktop GUI project.

The fifth and final part of the book is about languages and architecture

Software Architecture: Object-Oriented Versus Functional is an interesting comparison of functional and object oriented methods.

Rereading the Classics is a very strange essay that starts off by reminiscing about computer science books that have made an impact, then it goes on to consider the SmallTalk language and finally it presents some milestones in modern architecture i.e. it presents photos and critics of real concrete and steel buildings.

My personal favourites were the systems architecture contributions which were interesting if only because they provided a glimpse of world that most of us never get to work with and the essay Software Architecture: Object-Oriented Versus Functional because it tackled some difficult topics.

Overall the quality of the contributions is high, but very, very over length. Most of the essays ramble at first before getting to the meat of their idea and then finish rapidly. The book could be much shorter and no less interesting with some creative and effective editing.

If enough of the contributions interest you, buy the book.

 

Other "Beautiful" titles

Beautiful Code Rated 4.5 out of 5 by Mike James
Beautiful Data Rated 3 out of 5 by Mike James
Beautiful Teams Rated 4.5 out of 5 by Mike James
Beautiful Security Rated 3 out of 5 by Harry Fairhead
Beautiful Testing Rated 3 out of 5 by Mike James
Beautiful Visualization Rated 4 out of 5 by David Conrad
Beautiful JavaScript Rated 4.5 out of 5 by Ian Elliot

 

<ASIN: 0596510047>

<ASIN:0596157118>

<ASIN:0596518021>

<ASIN:0596527489>

<ASIN:0596159811>

<ASIN:1449379869>

<ASIN:1449370756>

Banner


C Primer Plus, 6e

Author: Stephen Prata
Publisher: Addison Wesley
Pages: 1080
ISBN: 978-0321928429
Print: 0321928423
Kindle: B00GWLPX76
Audience: Beginners
Rating: 4
Reviewer: Mike James

C is still a language worth learning and knowing about. 



Becoming Functional

Author: Joshua Backfield
Publisher: O'Reilly, 2014
Pages: 152
ISBN: 978-1449368173
Print: 1449368174
Kindle: B00LH4H8TE
Audience: Developers interested in the functional approach
Rating: 3
Reviewer: Alex Armstrong 

Do you want to be non-functional? Of course not!


More Reviews

Last Updated ( Saturday, 29 December 2018 )