My Twenty-one Year Journey to Write and Publish My First Book

Donald Raab
7 min readJust now

--

Twenty-one years is just a page turn in the general scheme of things

Photo by Dariusz Sankowski on Unsplash

Maybe I should write a book

After five years of blogging publicly, friends and colleagues began telling me that I should write a book. It would be easy they said. I could just wire together some of my (at the time) hundred and fifty plus blogs they said. I wish writing a book was that simple. But then again, if it was, it probably wouldn’t be as good.

I thought about it for a while, and figured after the twentieth anniversary of Eclipse Collections in 2024, I should either write a book about it, or stop working on it. I decided to write the book. This is the story of how I transitioned from a general idea to a specific story about Eclipse Collections. There will be an announcement coming soon when the book is available for purchase.

What should I write about?

I spent a year trying to figure out how to approach writing a book about Eclipse Collections. Writing a book about an open source data structures and algorithms library was challenging. The problem wasn’t generating content. I had written hundreds of blogs of content over the years. I had worked on Eclipse Collections for twenty years, so there are hundreds of blogs of content still locked up in my brain waiting to be typed in. I have enough content to write five or six books on Eclipse Collections.

The problem is that I wanted to write a book that I would want to read. Of course, I’d like others to want to read it as well.

Folks who discussed my struggles finding a storyline with me suggested I should try and draft a table of contents. So I tried that… several times. I hated every single TOC I drafted. As quickly as I wrote them down, I threw them out.

I spoke to lots of friends and my family in 2023 about my desire to write a book about Eclipse Collections. I continued blogging, and even tried writing different kinds of blogs about Eclipse Collections. Those blogs confirmed for me what I already instinctively knew. It is very easy to write a reference guide for a library like Eclipse Collections. The challenge is to write a compelling story.

Taking a long walk into the story

I decided to take a break from work in 2024 and focus on writing the book. It helps to have time pressure sometimes if you want to complete something. I started out by taking a seventeen day road trip with my wife down and up the east coast of the U.S. I didn’t really think much at all about writing. I just enjoyed seeing sites and finding places to stay as we drove all the way down the the Florida Keys. This was the best idea I’ve had in a long long time. I always wanted to drive the bridges in the Florida Keys, and now I’ve done it twice, in one year.

I wrote a couple of interesting blogs before leaving on the road trip. Together these blogs have over 25K views so far. I didn’t realize it at the time but these blogs were a hint to me about what might work for a story about Eclipse Collections in a book.

When I returned from the road trip, I stared at my computer screen for days on end, trying to write something. I deleted a lot of random stuff I started writing. Getting started is hard.

I pondered about what made the three blogs I had written over ten days in the beginning of January interesting to readers. I thought maybe the blogs made Java developers think about things they might not have thought about before. At least not in the same way that I explored the questions. I found myself comparing my experience as a former Smalltalk developer and adapting it to what might be possible in Java if folks found it interesting.

Most Java developers have never experienced programming in Smalltalk. This has been my experience over the years anyway. Smalltalk has helped provide myself and other Smalltalk developers a different perspective on what software development can be like.

It wasn’t clear to me at that moment how my experience in Smalltalk was going to help me write a book I would want to read. After six months of writing, it would suddenly become very clear that a feature of Smalltalk I had not thought much about would drive the organization of my book.

Just write it

It took me at least a month, maybe two, to write the first chapter. Chapter one in the early stages was felt like writing a history of two programming languages. There was a lot of useful content, but it failed miserably to be compelling in the context of a book. I finally just said “stuff it” after writing almost thirty pages and moved on to chapter two. I knew that I would wage battle with chapter one many times before I would be done.

Chapter two contained a lot of Eclipse Collections fundamentals. I wrote the content in chapter two in about month. The content was dry and somewhat disjointed at first, but most of it was good and necessary. I wasn’t very happy with the setup for the story in chapter one or two. The content felt like two useful blogs, but not something someone would want to sit down and read. I got some great advice from my friend Chandra Guntur who suggested I just start writing chapter three. Once I finished chapter three, I found a steady pace and got drafts written through chapter ten by mid summer, just in time to go to JCrete.

I would go back and spend a month or two rewriting and editing chapters one and two. They were the hardest chapters to write, and to get right. After much constructive review feedback from some great technical reviewers, I rewrote chapter one maybe nine or ten times before feeling like I had the beginning of the story I wanted. Chapter one would prove a great producer of content that was ultimately moved to the appendices. There was also some content that just got deleted. The content was not bad. It was just incomplete thoughts and possibly some great ideas for other books in the future. The content just didn’t fit well in the story of this book.

What if Java had Method Categories?

I wrote last year a few times about my re-discovery of method categories and the potential impact of this lesser known Smalltalk feature on Java and other programming languages with feature rich APIs. This feature is so simple (and good) it was staring me in the face for thirty years, and I just didn’t recognize its potential for Java.

This blog will show you the insights I discovered about method categories while writing the book. It will also explain how I was able to simulate method categories in Eclipse Collections today, in both the IDE and Javadoc.

My book answers the question “What if Java had Method Categories?”, specifically in the context of Eclipse Collections. I found the way I could write the story about Eclipse Collections that I can enjoy reading. I have read the story several times, and it surprises me every time. It has renewed the joy of programming for me. I hope it will renew the joy of programming for others as well.

I can only guarantee one thing for you. This will be the best and worst book about Eclipse Collections you will read this year.

I wrote it and the book will be out soon

I received my first proof copies of my book yesterday. It was very exciting. My plan (fingers crossed) is to have the book published and available for purchase before JavaOne (March 18–20). I will blog again here once the publishing date is set in stone. I will share an image of the cover once I receive my author copies. The proof copies had a “Not for Resale” banner across them so not is quite as nice.

It is a strange and exhilarating feeling to hold a book with over 400 pages that weighs two pounds with your name on the cover. It’s also strange to be holding a book written about something you created twenty one years earlier. Did I really do that? This journey has taken a very long time. I hope my journey will inform and inspire others to take their own journeys.

I wrote this book for myself and for my family. I have given my first printed manuscript and a proof copy to my parents, who are enjoying reading a story their son wrote, even though Java programming is a foreign language to both of them. The foreword and preface was fun for them to read because they never really understood what I have been working on for the past twenty one years. Explaining that you created and work on an open source collections library written in Java to your parents, means absolutely nothing to them. At least now they can page through over 200 code examples in a book and try and piece together a little bit of what my twenty one years of working on Eclipse Collections has been like.

Since you read this far… the title of the book is “Eclipse Collections Categorically.”

Thanks for reading, and stay tuned! The book should be available soon!

I am the creator of and committer for the Eclipse Collections OSS project, which is managed at the Eclipse Foundation. Eclipse Collections is open for contributions.

--

--

Donald Raab
Donald Raab

Written by Donald Raab

Java Champion. Creator of the Eclipse Collections OSS Java library (https://github.com/eclipse/eclipse-collections). Inspired by Smalltalk. Opinions are my own.

No responses yet