upvote
Sure, if you want Java to be like Self. If you want Java to be closer to C++ it's a lot more reasonable.
reply
Java is closer to Objective-C semantics, and by extension Smalltalk.

The C++ syntax was more of a way to help adoption, however the way the runtime works, and the language feature, are from those other influences.

https://cs.gmu.edu/~sean/stuff/java-objc.html

Even basic stuff like META-INF and jars, those are basically NeXTSTEP bundles.

reply
> Java is closer to Objective-C semantics

How do you figure? It certainly doesn't use message passing. Boxing of primitives and use of interfaces/protocols strikes me as a rather shallow similarity.

reply
First of all you read the point of view of Java authors on the linked post.

Second, yes interfaces are based on protocols.

You can do dispatching via Proxy classes, reflection, or invokedynamic that came later as performance improvement.

Then you have the classloaders for a similar purpose as Objective-C plugins.

Java Remote Invocation, RMI, works similarly to PDO, Portable Distributed Objects.

Sun collaborated with NeXT on OpenSTEP before Java came to be.

Another inspiration was Distributed Objects Everywhere framework, born as Objective-C, later rewriten in Java and rebranded as the first edition of Java EE.

Likewise Web Objects went from Objective-C, to dual Objective-C/Java shortly before NeXT was acquired.

reply
Or toit, which unsurprisingly has Lars Bak involved. A man with history touching all self, Jvm and v8 codebases.

I wouldn't be surprised if toit primaries, Kasper or Florian also have experience in these technological intersections.

reply