Hacker News new | past | comments | ask | show | jobs | submit login

I'm torn over this because a lot of the features are quality of life improvements, but is it too fast?



Java 8 was in 2014. Go was barely 2 years old. Many of the features presented here were considered common in other languages at the time, so if anything Java is late to the party.


Not fast enough


> but is it too fast?

It is not.


A lot of things are coming straight from C#, so it’s battle-tested there before inclusion I guess.


As someone unfamiliar with C# but interested in how languages impact each-other, could you provide some examples? I know C# was heavily inspired (perhaps not a strong enough word) by Java, but not as familiar with the opposite.

Java does seem to absorb from tried and tested ideas. There are a few major features I can think of that have largely come from or been inspired by popular and mature 3rd party libraries (time, reactive streams and various collection apis come to mind).


C# and Java are kind of in the same space, they tend to pick up the same kind of features. But not always in the same way e.g. Records are different between the two languages. As is the path to Async.

Java benefits from more experimentation in the JVM and bigger variety in implementers.

I need to find the funny slide deck by Brian Goetz (java language architect at Oracle) where in slide one (what industry thinks he does) he shows his job is to copy from C# and in slide two he shows what academia thinks he does, copy from scala ;)

It is not this presentation, https://www.infoq.com/presentations/java-futures-2019/ but it is close in content.


Java employs the “last mover advantage” strategy. They wait a bit for other mainstream-ish languages to be a testbed for a new feature, and if it proves worthwhile, they try to incorporate it into the language. But a new feature is a huge responsibility, since it will have to be maintained “forever”.

C# on the other hand is quite brave and quick to implement everything under the Sun, sort of similarly to c++ - which sooner or later will create a really bloated language (imo, both are already quite complicated). And in backward compatibility, Java definitely wins the cake.


In the list provided in the article: record syntax, switch expressions and var.

And by the way for the downvoters: there wasn’t any snark, C# itself being at first a copy-pasta from Java, and now taking heavy inspiration from F#. That kind of features transfer in-between languages is a good thing.


I read an article that said that this is intentional- they wait until other languages shake out features, and take it slow so they get it right.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: