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

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.



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




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

Search: