Hacker News new | ask | show | jobs
by chubot 3550 days ago
This is a great talk, but what he was advocating never came to pass. He wanted to add 3 things to Java:

    - operator overloading
    - small value types on the stack (for vectors, rationals, etc.)
    - generic types
Generic types are the only feature that made it (not without some controversy).

C++ has all three features. I suppose there is some success in games and graphics using overloaded operators on vector types. But otherwise it doesn't seem like a huge win, or something that is critical for the design of a language.

Python has operator overloading. I never really use it, but I guess it did allow NumPy and Pandas to exist. And TensorFlow uses it.

Perhaps it boils down to the fact that Java is more of a business language, and C++ and Python have more mathematical applications, which require richer algebraic expressions of many types. But I suppose if Java had gotten operator overloading, it may have been used more for scientific computing.

Perl 6 and Racket seem to be the languages that really allow creating your own language. But actually I heard Larry Wall say that they want to provide so many little languages within Perl 6 that users don't need to invent their own. Because this often makes it harder for others to read your program.

1 comments

Value types is coming to Java 10, and Guy Steele is one of guys making it happen.

http://cr.openjdk.java.net/~jrose/values/values-0.html