Live data from Hacker News

What’s New Between Java 11 and Java 17? (2021)

mydeveloperplanet.com

11–20 of 26 posts

Re: What’s New Between Java 11 and Java 17? (2021)

#12
post #10

I’m a backend developper, working on medium to big Spring Boot apps. Two years ago, we introduced Kotlin in our code base with really good results on code quality. With Java 17, the gap is narrowing between Kotlin and Java. Kotlin has still unique features that I love (extension methods for instance), but the big one is nullability. You can use @Nullable/@NotNull annotations in Java but I largely prefer having nullab…

Put PMD or Sonar into the CI server and every of those 30 devs get the fun to be made famous for breaking the build.

Re: What’s New Between Java 11 and Java 17? (2021)

#13
post #9

It looks like C# and Java are now developed in parallel with the same features.

I was about to say the same thing.

As someone who moved from Java to C# around 2013, I always felt that C# was close to Java but with less bad parts and more good parts. Looks like Java's now borrowing a lot of the nicer features which is good to see.

There are still so many nice exclusive features in C# that I definitely wouldn't want to go back to Java any time soon though (properties, powerful tuples, null coalescing, interpolated strings, ...).

Re: What’s New Between Java 11 and Java 17? (2021)

#15
post #9

It looks like C# and Java are now developed in parallel with the same features.

It has always been like that.

Java attributes and compiler plugins took their inspiration from .NET early version.

Default method interfaces in C# come from Java, LINQ vs streams, JIT / PGO caches,...

That is why it is still relatively easy to do consulting across both platforms.

Re: What’s New Between Java 11 and Java 17? (2021)

#16
post #13
post #9

It looks like C# and Java are now developed in parallel with the same features.

I was about to say the same thing. As someone who moved from Java to C# around 2013, I always felt that C# was close to Java but with less bad parts and more good parts. Looks like Java's now borrowing a lot of the nicer features which is good to see. There are still so many nice exclusive features in C# that I definitely wouldn't want to go back to Java any time soon though (properties, powerful tuples, null coalesc…

> interpolated strings

https://openjdk.java.net/jeps/8273943

Re: What’s New Between Java 11 and Java 17? (2021)

#17
post #12
post #10

I’m a backend developper, working on medium to big Spring Boot apps. Two years ago, we introduced Kotlin in our code base with really good results on code quality. With Java 17, the gap is narrowing between Kotlin and Java. Kotlin has still unique features that I love (extension methods for instance), but the big one is nullability. You can use @Nullable/@NotNull annotations in Java but I largely prefer having nullab…

Put PMD or Sonar into the CI server and every of those 30 devs get the fun to be made famous for breaking the build.

Currently using SonarQube at the company where i work - since the scanning is async, the CI builds typically don't wait for it to be finished, otherwise the lead time for changes would grow (e.g. not one of those places where a server farm would run integration tests overnight either) and additional configuration would be necessary, for which there are no resources at the time.

Furthermore, SonarQube doesn't let you automatically enable e-mail notifications for everyone: https://docs.sonarqube.org/latest/instance-administration/no...

> Only users who subscribe themselves will get notifications. With only one exception, there is no admin functionality to proactively subscribe another user. If you believe a user should be receiving notifications, then it's time to practice the gentle art of persuasion.

So everyone is also free to ignore the e-mails that they may or may not receive. This isn't made any easier by the default quality profiles being problematic to deal with, e.g. SonarQube asking you to add HTML tags which would break XHTML templating in certain frameworks, such as PrimeFaces, thus having to spend a lot of time marking stuff as false positives, since that actual check might be sometimes useful except for your particular circumstances, of which it is not aware.

So perhaps it's a good idea to indeed utilize a language or another integrated solution (versioned/shared IDE code style preferences are also pretty cool), since other solutions, although workable with a bit of effort, wouldn't necessarily thrive in all environments. Unless, of course, you want to find a different environment, but that's a slightly different discussion.

Re: What’s New Between Java 11 and Java 17? (2021)

#18
post #13
post #9

It looks like C# and Java are now developed in parallel with the same features.

I was about to say the same thing. As someone who moved from Java to C# around 2013, I always felt that C# was close to Java but with less bad parts and more good parts. Looks like Java's now borrowing a lot of the nicer features which is good to see. There are still so many nice exclusive features in C# that I definitely wouldn't want to go back to Java any time soon though (properties, powerful tuples, null coalesc…

I feel similarly - though I think it's more the case that Java considers things a lot longer and considers the implications before simply adding them.

Java needed string interpolation forever before _finally_ getting something. There are parts of C# that I think are going to look like a good idea at the time, but turned out not so great. Extension methods is one, and async/await is another. In fact, if Project Loom ever, finally, actually ships it'll make the whole c# code colouring thing look like the abomination that it is.

Re: What’s New Between Java 11 and Java 17? (2021)

#19
post #12
post #10

I’m a backend developper, working on medium to big Spring Boot apps. Two years ago, we introduced Kotlin in our code base with really good results on code quality. With Java 17, the gap is narrowing between Kotlin and Java. Kotlin has still unique features that I love (extension methods for instance), but the big one is nullability. You can use @Nullable/@NotNull annotations in Java but I largely prefer having nullab…

Put PMD or Sonar into the CI server and every of those 30 devs get the fun to be made famous for breaking the build.

PMD and Sonar are not that good in detecting possible NullPointerExceptions. You would need something like the Checker Framework additionally.

The (not) nullability story is much better in Kotlin.

Post reply on HN