Practical API Design

Author: Jaroslav Tulach
Publisher: Apress
Pages: 387
ISBN: 978-1430243175
Audience: Java API creators
Rating: 3
Reviewer: Alex Armstrong

A strange topic as not many programmers get the chance to design a public API - but with the influence of the web this is slowly changing. Is this a book you have to read?

Its subtitle is "Confessions of a Java Framework Architect" and much of the material is very Java oriented - well the practical examples are. The "confessions" part of the title suggest that it is a personal book, and indeed it is. How much you like the book does depend on how much you like the writing style and philosophy of the author - who is the founder of the NetBeans Platform. In case you missed it, the NetBeans platform is a framework for creating Swing-based applications - including the well known NetBeans IDE.

 

Banner

 

Part 1 is called "Theory and Justification". There isn't much theory in it as such; just very general observations and specialization of ideas from general software development.

Part 2 of the book is "Practical Design" and again it's mostly general ideas illustrated with some very specific, and often technical, examples. At best it serves to focus your mind on the task of API creation - otherwise you might just do it without realizing you had choices and responsibilities.

The final part of the book, "Daily Life, is about a range of general skills and tasks such as debugging, the evolution of a system and so on.

Overall this is a book full of personal philosophy well wrapped up in clever prose and similes. A lot of the ideas you will have encountered before in a more general programming context. Here they are specialized towards creating APIs but the specialization is fairly obvious. A lot of the book reads like reminiscences of creating NetBeans coupled with some philosophical musings. On the whole I didn't get much out of it.

The style of the book will be a little strange to some, especially so if you are used to the dry "do-this" approach of many programming books. For example, in discussing the benefits of immutability:

"...Resources are not actually destroyed. In some senses, their potential future states are simply trimmed down. After a thread uses a printer, a piece of paper is filled with characters or pixels. At that point, it's no longer empty; it becomes "damaged." It can never be used again."

When was the last time you saw a semicolon in a programming book! You can't help but speculate that the author would really have preferred to have been a philosopher in the mold of Wittgenstein or a novelist in the style of Proust.

If you don't mind such reflections then perhaps you will like the book more than I did. Most of the time I just found that the style and the "big world picture" got in the way of the message - so why are immutable objects a good idea?

This book does contain some useful information, and it is particularly useful if you are about to build a complex API similar in nature to NetBeans. It has a lot of coverage of best practices and discussions of what you are trying to achieve.

For the general reader and for the casual API creator there isn't much in here that will be useful or easily accessible. You have to be prepared to read a lot of philosophy to reach a few, usually esoteric, practical points.

This is not a must read book for the general Java programmer. It isn't even a must read if you are developing an API and this is possibly a shame because there are good ideas contained within. By all means try it. but i can't promise you will like it - it is all far too subjective an experience.

 

 

Banner


Learn Quantum Computing with Python and Q#

Author: Dr. Sarah Kaiser and Dr. Chris Granade
Publisher: Manning
Date: June 2021
Pages: 384
ISBN: 978-1617296130
Print: 1617296139
Kindle: B098BNK1T9
Audience: Developers interested in quantum computing
Rating: 4.5
Reviewer: Mike James
Quantum - it's the future...



Professional Scrum Development with Azure DevOps

Author: Richard Hundhausen
Publisher: Microsoft Press
Pages: 432
ISBN: 978-0136789239
Print: 0136789234
Kindle: B08F5HCNJ7
Audience: Developers interested in Scrum
Rating: 5
Reviewer: Kay Ewbank

This is a book designed for teams using Scrum and Azure DevOps together for developing complex product [ ... ]


More Reviews

Last Updated ( Tuesday, 28 August 2012 )