You don't have to stick to OO constructs. Java has functional programming support and pattern matching.
> best represented as thousands of threads going off to do independent work and then unifying results
Java has had executor support for a long time now. And if you're talking about IO bound tasks, Java has virtual threads now.
> parse a raw binary stream that had a lot of unsigned ints
Java has `Integer.parseUnsignedInt()` and other similar operations.
You don't have to stick to OO constructs. Java has functional programming support and pattern matching.
> best represented as thousands of threads going off to do independent work and then unifying results
Java has had executor support for a long time now. And if you're talking about IO bound tasks, Java has virtual threads now.
> parse a raw binary stream that had a lot of unsigned ints
Java has `Integer.parseUnsignedInt()` and other similar operations.