Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Java was designed to have a syntax familiar to C++ programmers as its original intended use case was on embedded devices where C++ was king.

What about the language design makes you think it _is not_ influenced heavily by C++?



Interfaces are based on Objective-C protocols.

The class reflection, dynamic loading, JIT come from Smalltalk.

Checked exceptions from CLU, Modula-3.

Packages from Modula-2, Mesa, Ada,...

GC from Lisp, Mesa/Cedar, Similar, Smalltalk,...


Java takes a lot of features from a lot of different languages, but I too remember Java being intended as an improved C++, by keeping most of the syntax, while adding some badly needed features like memory management, exceptions, more consistent standard classes (at the time; it's turned into a mess now) etc.


Just like it happened with Go, around 20 years later.

However the similarities are only superficial, given the semantic differences.

Here are some nice links regarding it.

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

https://www.artima.com/intv/gosling1P.html


Just about everything other than the syntax, and even that is similar to that C++ only at the method level.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: