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

The difference that seems to matter to most people is that Go has a standard library that's (currently) free of cruft, and free of "historical reasons".

Java's standard library is bytecode-compatible with Java1 programs, which will run fine on today's JVM's. This results in several very dumb and ugly inconveniences.

For example, take a look at the ArrayList javadoc. Notice the Object methods (clone(), and toArray()), which are there because the return-type polymorphism doesn't work (you cannot call a different method based on what you assign the function result to). So it's not possible to provide a valid Clone() method that returns something other than Object without breaking java1 programs that use it. (Go's has compiler hacks for core datatypes for some things, which of course means it's a matter of time until things break, but for now ...).

Of course if this was the only instance of this sort of problem, nobody would care, but you can find examples like this in most core classes.

TLDR: Go is in it's honeymoon period.

More detailed explanation :

http://stackoverflow.com/questions/17509659/why-standard-jav...



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

Search: