Live data from Hacker News

Java 25 officially released

mail.openjdk.org

201–210 of 260 posts

Re: Java 25 officially released

#201
post #75

Earlier quoted context omitted.

It's a culture, not language thing. Here is a JSON parser implementation (part of PlantUML) that lacks endless levels of abstraction. https://github.com/plantuml/plantuml/blob/master/src/main/ja...

I'd argue culture solely defines the language. Is there a full library ecosystem of stuff written like the json parser you shared, which is as complete as the enterprisey library ecosystem? Similarly, SO answers? LLM output? Tutorials? YouTube videos? I think the answer is no. It's the same problem with C#. Just adding alternate paradigms means nothing. The only thing that matters is how a majority of code in the eco…

>> On the other hand, while typescript supports a lot of the enterprisey nonsense similar to C#, the majority of the ecosystem is written with simple functions, callbacks and options objects. Not in an enterprisey way.

Going back to culture, who makes up the Typescript community? While C# devs are attracted to it there are many multiples more devs coming from a JavaScript background. This has a big impact on how the culture developed.

Taking a step back. C# devs often need to do frontend work. They could go with what the industry has settled on, React, or go another way. The bulk go with react and some perhaps lament still have to switch their brain to another mode for that work. Frontend is obviously more fragmented, but the scale prevents C# devs from influencing patterns to the extent that they do on the backend.

I'd argue similar for Java devs when it comes to frontend. In the case of Blazor, I think C# patterns are a much smaller factor in decision-making. In fact, lots of C# adherents would default to React given it's the industry standard.

Re: Java 25 officially released

#202
post #99
post #88

Earlier quoted context omitted.

Just use OpenJDK (only downside is you have to upgrade every half year) or a distribution of another vendor (most people use Eclipse, or Red Hat if they already are Red Hats customers). It's really not as difficult as it is made out to be. If you use Oracle's distribution of the JDK then you are an enterprise customer and should have the resources to deal with their license terms.

"Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask. Even using OpenJDK is a sword of damocles waiting to fall. If I forget to update OpenJDK, Oracle could come after me. It's just risk that I don't have to worry about by choosing not to go with Java. It's probably not a lot of risk, but it's risk nonethele…

> "Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask.

Umm..sorry, but this is just sheer nonsense. There are many commercial Python distributions like ActiveState ActivePython, Anaconda Enterprise, etc that you need to pay for.

If you download and use their prebuilt ActivePython installer without a proper license in a commercial setting, you’re breaching a contract and will get into legal trouble.

> This is a problem/risk I don't have to worry about with any other language,

No, you most certainly DO have to worry about this in many other languages which offer commercial support offerings. (Python/C++/Perl/NodeJS,etc)

> Even using OpenJDK is a sword of damocles waiting to fall.

Just a plain, bald-faced lie.

Re: Java 25 officially released

#203

Earlier quoted context omitted.

Licensing for OpenJDK is trivial (GPLv2+Classpath). Just like gcc/g++ and its runtime library exception. Licensing for Oracle JDK is more complicated. This is the one where you can use it for free, but after the next LTS you either have to move to the LTS or pay for updates. There's no reason to use Oracle JDK unless you want to pay for support from Oracle, or if your applications specifically require Oracle JDK. Ora…

What is even the benefit to using Oracle JDK at this point? Years ago, I saw that some jetbrains IDEs said to use it instead of openJDK, but I haven't seen anything else like that.

Oracle JDK offers LTS support with regular security patches and critical bug fixes, even for older LTS releases. (More than a decade plus, I believe, but need to check)

OpenJDK community builds usually only provide updates until the next release (6 months).

Oracle offers paid commercial support contracts: guaranteed patch timelines, 24/7 enterprise support, performance issue troubleshooting, and compliance assurance.

You can also built features atop the Oracle JDK and still get support. SAPJVM does this for instance - hot debugging as a feature.

Re: Java 25 officially released

#204
post #99

Earlier quoted context omitted.

"Am I using the correct language runtime distribution (or version thereof) so I don't get into legal trouble?" Is a question none of Java's competitors have to ask. Even using OpenJDK is a sword of damocles waiting to fall. If I forget to update OpenJDK, Oracle could come after me. It's just risk that I don't have to worry about by choosing not to go with Java. It's probably not a lot of risk, but it's risk nonethele…

That's because none of Java's competitors have commercial support offerings to begin with, as far as I know? It's the same situation as with Linux. Red Hat Enterprise Linux isn't free. But it'd be weird if you said you're afraid of using Linux because the licensing is too complicated.

Lots of languages like Python, NodeJS, C++, even Perl have commercial support offerings.

Re: Java 25 officially released

#205

Earlier quoted context omitted.

You don't have to jump through any hoops. If you don't want to deal with Oracle, don't be an enterprise customer of Oracle and instead just get some openjdk distribution.

> just get some openjdk distribution From several sources: - Oracle themselves, at jdk.java.net - Microsoft, at microsoft.com/openjdk - Red Hat ... - Azul Systems ... - Amazon - Bell Soft - Canonical (Ubuntu ships OpenJDK binaries built by them) - build yourself?

Just go to https://openjdk.org/ and click on the "download" link.

Or use your OS package manager and install openjdk. Problem solved.

Just like any other software, you know ?

Re: Java 25 officially released

#206
post #97

Earlier quoted context omitted.

> seduced by the promises of a language simple to learn, build, and deploy That's actually quite correct and I'm saying this as someone that does Java on daily basis. Go is in fact superior in terms of deployment. I would rather deploy a Go-written service than a Spring Boot one. That being said, I love using Java for monoliths - large code bases crammed with business logic. I personally don't see Go doing very well…

Why is it so ? Is go specifically lacking somewhere ?

Businesses often deal with old databases, message queues, SOAP services, legacy systems. Java has a truckload of well-established connectors (Even more than Python!), well-supported JDBC drivers, and vendor-supported SDKs.

Also features like transaction management, dependency injection, validation frameworks, AOP-style cross-cutting concerns are better addressed in Java.

Java has collection streams with great customizability (filter/map/reduce/etc). Far better writing your 10,000th for-loop in Go. You can also get automatic parallel streams without writing any extra code.

Go's profiling tools (esp memory) are very primitive, sorry. JVM profiling tools beat Go's by orders of magnitude. So does the other tooling - GC tuning, monitoring, etc. Java flight recorder and VisualVM are gorgeous.

That said, Go is still better at memory efficient, tight network software like lean k8s controllers. Though frankly, Rust is encroaching into this space.

Re: Java 25 officially released

#207
post #113
post #100

Earlier quoted context omitted.

> If I forget to update OpenJDK, Oracle could come after me. What?

Licensing for OpenJDK is non trivial. Look at the large table and various bullet points Oracle had to make to tell you the license. https://www.oracle.com/java/technologies/javase/jdk-faqs.htm... (open the first dropdown on their FAQ page to open up their "licensing matrix") This is a mess, and is the license going to change again while I'm locked in the java ecosystem? Edit: It looks like the openjdk is consistently…

> Licensing for OpenJDK is non trivial.

?? It is very simple. Please go to the OpenJDK site and read the below:

https://openjdk.org/legal/gplv2+ce.html

Re: Java 25 officially released

#208
post #88

Earlier quoted context omitted.

Just use OpenJDK (only downside is you have to upgrade every half year) or a distribution of another vendor (most people use Eclipse, or Red Hat if they already are Red Hats customers). It's really not as difficult as it is made out to be. If you use Oracle's distribution of the JDK then you are an enterprise customer and should have the resources to deal with their license terms.

All that just seems like friction when there are frictionless alternatives available. Life's too short for friction.

Can you explain what the friction is ? If you download and install the ActiveState Python distribution in a commercial setting and accept the license agreement without reading and get sued legally at a later point, will you say Python has too much friction ?

Just go to https://openjdk.org/ and click "Download". Or say `brew install openjdk` (macOS) / `apt install openjdk` (linux).

ZERO friction.

Re: Java 25 officially released

#209

Earlier quoted context omitted.

Java's biggest risk towards continued adoption, by far, is the culture surrounding it - old Java programmers and old Java programs continue to be needlessly verbose, even if the language now has the tools (pretty much) to be as terse as other popular, modern languages. It's an uphill battle, but it might just climb the hill because it's still such a behemoth.

It all failed when .stream() appeared. Why make people use .stream() for functional programming, plus streams aren’t even reusable, I almost wish they invented a new operator based on an exotic UTF-8 character than those 9 extra characters. Fonts should have a ligature for .stream(). And now let’s talk about .collect(toList())… And records which look like ugly beans… Java is the land of the verbose. But it can probab…

starting with JDK 16, Stream has .toList() that will save you ten characters for the .collect()

Re: Java 25 officially released

#210
post #41

Earlier quoted context omitted.

No, swing is pretty out of fashion if not deprecated. I know it pretty well, but still wouldn't choose it if starting a new project today. I'd use Qt, though if you're not comfortable with C++ I've been told JavaFX is pretty good

Swing is standard part of JDK, there is nothing deprecated, it even got a Metal backend.

Awesome, thank you, that is great to hear
Post reply on HN