Sign in

Donald Raab

@thedonraab.bsky.social
991 followers 413 following 825 posts

Java Champion. Writer of blogs. Creator of the OSS Java library Eclipse Collections. Author of Eclipse Collections Categorically (a.co/d/6KmhrNK) . Opinions are my own. Blog: donraab.medium.com

PostsRepliesMedia
Reposted by Donald Raab
Donald Raab @thedonraab.bsky.social · 20/09/2026
When was the last time you checked your basement to see if there was any flooding? 🛶 When was the last time you checked your Java heap to see if there were any allocation waves of lambdas? 🌊 donraab.medium.com/fat-free-lam...
donraab.medium.com
“Fat-Free” Lambdas in Java
From static anonymous inner classes to lambdas and method references.
011
Donald Raab @thedonraab.bsky.social · 26/09/2026
"Eclipse Collections Categorically" is a thinking book. What if you could tell your data structures to do work for you? What categories of things would you ask for? 🤷‍♂️👇 *Note*: $0 to buy Amazon Kindle version for few more hours. Search title on website, not mobile. donraab.medium.com/my-ten-year-...
033
Donald Raab @thedonraab.bsky.social · 26/09/2026
Last day! 👀📙🆓👇 #EclipseCollections #Java #Smalltalk #MethodCategories
133
Donald Raab @thedonraab.bsky.social · 26/09/2026
My latest blog 👇 In the blog, learn how @anthony.accioly.social has transmuted the spirit of my book, "Eclipse Collections Categorically" into the source code of #EclipseCollections using #Java annotations. Enjoy! 🙏 donraab.medium.com/buttoning-up...
donraab.medium.com
Buttoning Up Method Categories in Eclipse Collections with Annotations
From Custom Code Folding Regions in IntelliJ to Java Annotations
011
Donald Raab @thedonraab.bsky.social · 26/09/2026
Counting and grouping methods of a class by annotations is an interesting new capability in #EclipseCollections. If I only had this capability before I wrote a book about why and how to categorize methods in a #Java class. 😂 Thanks for the contributions @anthony.accioly.social ! 🙏
110
Donald Raab @thedonraab.bsky.social · 25/09/2026
99% of developers will never learn how to program in #Smalltalk. This book brings a 50+ year old lost and unappreciated idea to #Java. Other languages could borrow the idea, but they'd have to learn it first. If they regularly scan the #Java tag here, maybe they can find this idea for free. 🤷‍♂️
000
Donald Raab @thedonraab.bsky.social · 25/09/2026
The Amazon Kindle version of "Eclipse Collections Categorically" is available for $0 to buy from September 24 - 26, 2026. Use the Amazon website and search your local market for the title and download a free copy. Enjoy #EclipseCollections, Categorically! 🙏 donraab.medium.com/the-authors-...
donraab.medium.com
The Author’s Inside Guide to Reading Eclipse Collections Categorically
TL;DR — Read Chapters 1, 2, 3. Jump to 11. Skim 4–10. Dive in as desired.
021
Donald Raab @thedonraab.bsky.social · 24/09/2026
Today! 👀📙🆓
013
Donald Raab @thedonraab.bsky.social · 23/09/2026
Tomorrow! 👀📙🆓
010
Reposted by Donald Raab
Donald Raab @thedonraab.bsky.social · 19/09/2026
Mark September 24 - 26, 2026 in your calendar to download free Kindle version of the book, "Eclipse Collections Categorically: Level up your programming game" from Amazon. Free yourself from fossilized lava flows in #Java. Free offer details/link in blog in comment below. 👇
242
Donald Raab @thedonraab.bsky.social · 21/09/2026
I categorized methods in a 22 year old static utility class applying annotations to each method by hand. I might have done it faster with LLM. Typing out the code gave me time to read and think about each method, and how I would use pattern matching for instanceof or other features to refactor them.
120
Donald Raab @thedonraab.bsky.social · 20/09/2026
When was the last time you checked your basement to see if there was any flooding? 🛶 When was the last time you checked your Java heap to see if there were any allocation waves of lambdas? 🌊 donraab.medium.com/fat-free-lam...
donraab.medium.com
“Fat-Free” Lambdas in Java
From static anonymous inner classes to lambdas and method references.
011
Donald Raab @thedonraab.bsky.social · 20/09/2026
I taught myself Turbo Prolog in the mid-1980s. Please talk to me very slowly about the exciting possibilities of GenAI as if I've been waiting for AI to render software development and our species extinct for the past 40 years. Thank you for your patience in this matter. 👇 airhacks.fm#episode_409
airhacks.fm
airhacks.fm podcast
podcast with adam bien
012
Reposted by Donald Raab
Spencer Gibb @spencer.gibb.us · 18/09/2026
I'm presenting "Of Microservices and Monoliths" at JCON during #IBMTechXchange
072
Donald Raab @thedonraab.bsky.social · 19/09/2026
Mark September 24 - 26, 2026 in your calendar to download free Kindle version of the book, "Eclipse Collections Categorically: Level up your programming game" from Amazon. Free yourself from fossilized lava flows in #Java. Free offer details/link in blog in comment below. 👇
242
Reposted by Donald Raab
Donald Raab @thedonraab.bsky.social · 18/09/2026
I upgraded #EclipseCollections builds immediately to JDK 28 EA the same day JDK 27 was released because every version of #Java needs Eclipse Collections running with it. Next week is climate week. Are you using Eclipse Collections yet? More features, less waste. 👇 donraab.medium.com/save-memory-...
donraab.medium.com
Save Memory in Java by Making Memory Efficiency Your Top Priority
Leverage Java libraries and frameworks which focus on memory efficiency.
063
Donald Raab @thedonraab.bsky.social · 18/09/2026
I upgraded #EclipseCollections builds immediately to JDK 28 EA the same day JDK 27 was released because every version of #Java needs Eclipse Collections running with it. Next week is climate week. Are you using Eclipse Collections yet? More features, less waste. 👇 donraab.medium.com/save-memory-...
donraab.medium.com
Save Memory in Java by Making Memory Efficiency Your Top Priority
Leverage Java libraries and frameworks which focus on memory efficiency.
063
Donald Raab @thedonraab.bsky.social · 16/09/2026
My latest blog: Exploring the Asymmetric Apathy in Java Collection and Java Stream donraab.medium.com/exploring-th...
donraab.medium.com
Exploring the Asymmetric Apathy in Java Collection and Java Stream
That which can be done lazily, can also be done more simply eagerly.
011
Donald Raab @thedonraab.bsky.social · 16/09/2026
Congrats on release of #Java 27! #EclipseCollections discovered one compiler regression that was reported via OpenJDK Quality Outreach and fixed. I'm upgrading EC Early Access Builds to Java 28 right now and made Java 27 part of the matrix builds.
030
Donald Raab @thedonraab.bsky.social · 13/09/2026
What would I go back in time twenty years and tell myself in 2006? Idiocracy is a documentary. Takes notes and prepare accordingly.
130
Donald Raab @thedonraab.bsky.social · 12/09/2026
I've spent $0 of my own money, and except for google searches where I can't avoid it, have used zero AI on personal projects. Somehow, I continue helping improve the Java ecosystem and community. You're welcome for my personal time and focused ideas that didn't cost you any tokens. OSS FTW. 🙏
190
Donald Raab @thedonraab.bsky.social · 11/09/2026
I've been thinking of #EclipseCollections in terms of method categories, long before I wrote a book about Eclipse Collections organized by method categories. Then (Mind Map) and Now (Source Code)
020
Donald Raab @thedonraab.bsky.social · 11/09/2026
A simple class diagram showing the primary Iterable and Mutable interfaces in #EclipseCollections.
Eclipse Collections class diagram showing Readable and Mutable Interfaces.
011
Donald Raab @thedonraab.bsky.social · 10/09/2026
A lava flow after almost thirty years hardens into a mountain of code. A lava Stream after twelve years eventually adds new hardened trails to the existing mountain. Each new default feature that gets bolted on, doesn't alter the underlying mountain. 🌋⛰️ donraab.medium.com/my-ten-year-...
donraab.medium.com
My Ten Year Quest to Evolve Java Collections Beyond Java Stream
Java Stream was hot magma in Java 8, but its lava flow is hardening.
010
Donald Raab @thedonraab.bsky.social · 07/09/2026
Ten years waiting for lambdas in #Java. Two years watching the Stream. Ten years waiting for better collections in Java. I didn't have to wait. I've always had #EclipseCollections. I've been waiting for you. You can have Eclipse Collections too. It's FOSS. ❤️ 💪☕👇 donraab.medium.com/my-ten-year-...
donraab.medium.com
My Ten Year Quest to Evolve Java Collections Beyond Java Stream
Java Stream was hot magma in Java 8, but its lava flow is hardening.
031
Donald Raab @thedonraab.bsky.social · 07/09/2026
Is there a #Java conference that still focuses on programming fundamentals for humans? Asking for humans.
140
Donald Raab @thedonraab.bsky.social · 07/09/2026
I'm liking the new Category annotations in Eclipse Collections. Now if we could just get @intellijidea.com working with them in the structure view, I could stop reorganizing all the types in #EclipseCollections using Custom Code Folding Regions. @maritvandijk.bsky.social @antonarhipov.bsky.social
000
Donald Raab @thedonraab.bsky.social · 07/09/2026
I've supported the development and inclusion of a few missing features in #Java over the years. 1️⃣ Feature-rich Collections 2️⃣ Lambdas ✅ 3️⃣ Method Categories Category annotations were added recently in #EclipseCollections to support the third feature. 👇 donraab.medium.com/grouping-jav...
donraab.medium.com
Grouping Java methods using custom code folding regions with IntelliJ
Simulating the lost Smalltalk feature of method categories in Java IDEs.
020
Donald Raab @thedonraab.bsky.social · 06/09/2026
If a human was caught hacking in and stealing from Hugging Face and OpenAI, would they face prosecution? Of course they would. When an agent swarm is caught doing this, who faces prosecution? When governments can consistently answer this question, responsible progress can happen. Not before.
140
Donald Raab @thedonraab.bsky.social · 06/09/2026
Are you better off today with LLMs than you were without LLMs?
100
Donald Raab @thedonraab.bsky.social · 05/09/2026
Keep calm and carry on, St. Paul's. Until next time my friend. 😎
030
Donald Raab @thedonraab.bsky.social · 03/09/2026
Seeing St. Paul's after twelve years. Same and still amazing AF.
230
Donald Raab @thedonraab.bsky.social · 31/08/2026
Good night sun 🌞
Sunset on the Thames
040
Donald Raab @thedonraab.bsky.social · 30/08/2026
Good night sun 🌞
Sun setting on the Thames over central London
030
Donald Raab @thedonraab.bsky.social · 28/08/2026
Conversations I've had with code, are really conversations I've had through time with other developers, including myself. The possibility that in the future no one will read code is sad in a way that is hard to express. donraab.medium.com/conversation...
donraab.medium.com
Conversations I’ve had with Code
Learning how to talk with other developers, through time, with code
010
Donald Raab @thedonraab.bsky.social · 26/08/2026
Five years ago, I published part 3 of "The missing Java data structures no one ever told you about." This blog covers primitive collections. Tired of boxing primitives when you use Sets, Lists, and Maps in #Java? Then read this blog and learn how to skip the boxing. 👇 medium.com/javarevisite...
medium.com
The missing Java data structures no one ever told you about — Part 3
Learn about primitive collection support in Eclipse Collections.
030
Donald Raab @thedonraab.bsky.social · 26/08/2026
I think I have the answer.
100
Donald Raab @thedonraab.bsky.social · 25/08/2026
Breaking through the clouds.
030
Donald Raab @thedonraab.bsky.social · 23/08/2026
Java Stream was a great addition in #Java 8 to enable lambda usage patterns for the Java community. 6.5 years after I wrote the blog below, and still arguably the best option for compatibly enriching Java Collection beyond just Java Stream is #EclipseCollections. 🤔🤷‍♂️ medium.com/javarevisite...
medium.com
Java Streams are great but it’s time for better Java Collections
After 25 years, it’s time for Java to get a Collections upgrade.
131
Donald Raab @thedonraab.bsky.social · 22/08/2026
#EclipseCollections now has method category annotations thanks to @anthony.accioly.social. Much appreciated! Thank you for the contribution! 🙏 github.com/eclipse-coll...
github.com
Category annotations by aaccioly · Pull Request #1956 · eclipse-collections/eclipse-collections
PoC using annotations to categorise RichIterable methods (under @donraab's guidance). Advantages complementary to foldable regions: Improved Javadocs, displaying the category for each method: ...
021
Donald Raab @thedonraab.bsky.social · 22/08/2026
#EclipseCollections (EC) empowers #Java developers with rich collections to build their apps and libraries. EC exposes Java Stream in its APIs, but doesn't provide "better" Streams. EC is not a Java Stream library. I share thoughts on improving Stream upstream. 👇 donraab.medium.com/why-optimizi...
donraab.medium.com
Why Optimizing Java Stream Makes Sense for Eclipse Collections
Eclipse Collections integrates with Java Stream, because your code does.
010
Donald Raab @thedonraab.bsky.social · 22/08/2026
In part 2 of "The missing Java data structures no one ever told you about" blog series, I wrote about MultiReader Collections. This blog will really make you think about the pros and cons of internal and external iterators. Enjoy! 🙏 medium.com/javarevisite...
medium.com
The missing Java data structures no one ever told you about — Part 2
MultiReader Collection implementations in Eclipse Collections.
011
Donald Raab @thedonraab.bsky.social · 19/08/2026
Five years ago, I wrote the blog series "The missing Java data structures no one ever told you about." This blog series turned into the most rigorous month of technical writing in my career. The blog linked below was part one of the series. Enjoy! 🙏 medium.com/javarevisite...
medium.com
The missing Java data structures no one ever told you about — Part 1
Eclipse Collections provides additional collection types not found in the JDK.
044
Donald Raab @thedonraab.bsky.social · 18/08/2026
Bourbon Pecan ☕️ #TheCoffeeClub
011
Donald Raab @thedonraab.bsky.social · 17/08/2026
If you love hardcover tech books w/great #Java & #Smalltalk code examples (in full color!), then take advantage of this incredible discount in Amazon US market. "Eclipse Collections Categorically" is hand-written. Search Amzn by title. Not sure how long this offer will last. 🙏
The hardcover edition of the book "Eclipse Collections Categorically" is currently discounted at ~40% off in Amazon U.S. markets. Not sure how long this discount will last.
020
Donald Raab @thedonraab.bsky.social · 15/08/2026
My Top 25 of #EclipseCollections. Yours? •with/of •select/reject/partition •collect •injectInto •detectWith/IfNone •any/all/noneSatisfy •count •groupBy/countBy •containsBy •chunk •distinct •makeString •collectInt •flatCollectChar •sumByInt •asLazy/asParallel •toImmutable medium.com/javarevisite...
medium.com
My 25 favorite methods from the Eclipse Collections API
Out of hundreds of possibilities, these are some of my favorite methods available on the Eclipse Collections API.
020
Donald Raab @thedonraab.bsky.social · 14/08/2026
My latest blog: Why Optimizing Java Stream Makes Sense for Eclipse Collections donraab.medium.com/why-optimizi...
donraab.medium.com
Why Optimizing Java Stream Makes Sense for Eclipse Collections
Eclipse Collections integrates with Java Stream, because your code does.
020
Donald Raab @thedonraab.bsky.social · 14/08/2026
Stretching from sand to sun
Stretching from sand to sun
040
Donald Raab @thedonraab.bsky.social · 14/08/2026
Knowing the path vs. walking the path
140
Donald Raab @thedonraab.bsky.social · 13/08/2026
I got nerd sniped into adding JMH benchmarks to my blog for Stream.anyMatch() and Iterate.anySatisfy(). I tried a new setting with JMH (-prof gc). Check out the blog below for the results. As always, write your own benchmarks if you want truth that matters to you.👍 donraab.medium.com/allocation-h...
donraab.medium.com
Allocation Hungry Any/All/None, FindFirst, and Count Methods on Java Stream
Some methods on Java Stream are eager and allocation hungry.
030