"It's amusing that Java managed to succeed despite having gotten almost all the defaults wrong." - @BrianGoetz * primitives * nullable references * mutable fields, params, etc. * non-private visibility * extensible classes If all that's wrong, how *did* Java succeed? 1/15
NB: Like yesterday's thread on serialization (), this one is plucked from a longer conversation with Brian. Here it is in full: youtube.com/watch?v=ZyTH8u… 2/15
NB: Like yesterday's thread on serialization (), this one is plucked from a longer conversation with Brian. Here it is in full: youtube.com/watch?v=ZyTH8u… 2/15
So how did Java succeed despite making some wrong decisions? Turns out, "wrong" is context-dependent. Today's context compared to 90s: * faster hardware * better JIT technology * more non-imperative dev experience And all of that by orders of magnitude! 3/15
When Java launched, the (vast) majority of commercial programming was done in C, so that was Java's target audience. Over C, Java offered automatic memory management, type safety, reasonable concurrency primitives, reflection, etc. 4/15