Remix.run Logo
Peteragain a day ago

What we seem to have forgotten is just how c like java was compared to other programming languages being advocated at the time. Objects made sense (remember Ada?) but c++ was a mess. Java was a breath of fresh air with lots of c legacy.

vkazanov a day ago | parent [-]

Oh, I do remember the narrative: OOP is amazing but Cpp is not pure OOP let's make the OOPiest language possible.

I also remember casts all over the place in Java because polymorphism wasn't OOP enough.

And then lambdas and functions were not OOP enough to be first class values and that's why we needed numerous "verb-classes" everywhere.

And of course printf() is not OOP enough...

cies a day ago | parent [-]

Exactly. All wrong assumptions, and all needed to be tagged on to Java in later versions.

I dont find Java's first versions well designed. The JVM was quite well designed, but the language not.

And changing a popular language is hard. I think Java's dev do it very well (the process of changing it IS "well designed"). But still the language itself suffers a lot from the bad choices in the beginning.

I like Kotlin: an OO language with as much FP in there as makes sense for an OO language.