in

 

Evan Hoff, Professional Code Junkie

July 2008 - Posts

  • [Book Review] The Sciences of the Artificial (3rd Ed)

    simon In a nutshell, this book blew me away!  I'm giving it 6 stars (out of 5).

    After seeing this book referenced in another book I'm currently reading and also seeing it on the SEI's Essential Collection, I thought it would be a good idea to pick up a copy.  The 3rd edition is the most recent printing (1996), but the original was published back in 1969.  If you can find a book on technical topics that's as old as this one, you know you've found a good one.

    The Artificial?  You mean AI?

    No, not even close.  The first chapter does a great job describing the difference between the natural and the artificial.  In short, anything that's man made is artificial.  That includes everything from software to skyscrapers.  The obvious conclusion reached at the start of the book, is that our classical sciences only deal with things as they are.  Given an existing structure, for example, the classical sciences allow us to reason about the various properties of the item in question.  What they don't tell us directly, is how to design something artificial, from scratch, to best meet the needs of the intended user, consumer, etc.  From this point, the author lays out a very compelling mini-curriculum on the subject of design.

    Overall, I found this book to be very thought provoking.  It will definitely be one of those books I reread down the road.

    A couple of other interesting facts about this particular book:

    • The author is a professor of computer science and psychology at Carnegie Mellon University and the 1978 Nobel Laureate in Economics
    • It was published by MIT Press

    While I highly recommend this book, if you put a couple others under your belt first, the book will jump out considerably more.  In particular, start with a good study on the topic of Quality Attributes first.  You will quickly make the connections if you do.  I recommend this one.

  • [Book Review] IT Architectures and Middleware (2 Ed)

    What is Middleware?

    Whether your aim is to build a single, large distributed system or to integrate multiple existing systems into a single, large system-of-systems, middleware is your key to success.  When you begin to distribute across multiple processes, whether they are on the same or different machines, middleware is the stuff "in the middle" that allows the different parts to talk.

    A few examples of middleware would include:

    • .NET Remoting
    • ASMX Webservices
    • WCF
    • MSMQ
    • ADO.NET
    • Oracle Data Provider
    • .NET's Common Language Runtime
    • A Java Virtual Machine Implementation
    • COM+

    Why would you want to learn about it?

    There are many different implementations of middleware--as you can see from my example list above.  If you want to be able to make an informed decision when choosing among multiple suitable implementations, it's important to be able to recognize both the sweet spots and the pain points for each type.  It's this knowledge that will allow you to know which tool is most suitable--both for your current needs and, potentially, your future needs as well.

    What about the book?

    britton I picked up a copy of the 2nd edition, which was published in 2004.  The original was published back in December of 2000.  The driving reason I chose to read this book was that I found it referenced from several other items I had read previously (which I can't remember at the moment).

    Overall, I'd give this book 3 stars out of 5.  Although, I know that if I had read this several years ago, I would have no doubt rated it higher.  A few places in the book deal with specific vendor technologies, including .NET, and given the publish date, it's age is starting to show a bit.

    One thing I really liked about this book was the way in which the authors chose to explain the concept of middleware--even the diagrams were simple and elegant.  They also took the time to touch on a few quality attributes: resiliency, performance, and scalability (to name a few).

    One area that seemed a little rough was on the topic of asynchronous message queuing.  A few spots seemed to give conflicting assessments on the technique--although I'd probably guess some of that information just didn't get scrutinized close enough during the revision.

    Although I liked the book overall, this particular review is a little tough to write.  I didn't feel like the book stretched me very far from my current understanding.  Whether that's a sign of me maturing or a reflection on the author's writing I'll leave for another discussion.

    In short, if you are looking to get your feet wet with middleware and related concepts, this is a good book to reach for.  Don't think, however, that any single book will be sufficient to learn the concepts in depth.  If you are new to the topic, this would serve as a good introduction.  If you've been around the block a few times, it would serve as a nice refresher.

Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems