Live data from Hacker News

Java 12

jdk.java.net

121–130 of 478 posts

Re: Java 12

#121
post #84

Earlier quoted context omitted.

Their lower end target is 10 ms. In a game, 16 ms is your entire time budget.

In VR your budget is 11 ms and you can't miss it or the entire frame is thrown away and you introduce a frame of latency to compensate. So for VR these kind of effects of GC are even worse.

Also, while most games are fine with losing a frame or two every few minutes, in VR dropping frames will cause motion sickness really fast. FPS is, from what I've observed, the most important part of a VR game. If you're dropping frames or stuttering, the experience will suffer greatly

When I was developing a VR game, my team noticed that some ultra-sensitive people started to get sick when we would drop around five frames (the vive displays 90, so this is only a ~5% drop). There was more to it (dropping a few frames every few minutes was usually fine, but consistently dropping frames every second or two is an issue).

Re: Java 12

#122

Earlier quoted context omitted.

I share the conclusion of the other statically typed JVM languages (Scala, Kotlin): checked exceptions are bad.

If they are officially bad, remove them from the language. It's a backwards-compatible change. Currently we are in a weird situation, when standard library does not work well with each other. It's like making iPhone without USB-C cable and Macbook without USB-A port.

> It's like making iPhone without USB-C cable and Macbook without USB-B port.

Was there ever a MacBook with USB-B?

Re: Java 12

#123

I understand why Java has to keep on chugging along, but I feel bad for the people that have to be a part of it. It's like watching people keep coal trains going while people are moving to cars. Why? Besides being owned by Oracle, which is enough of a reason to never use Java ever again, it's also lost the niches that brought it into existence. Java no longer runs everywhere. Java on the web is dead, and you can now…

Two things (among many) you will be missing when targeting WASM vs JVM: Garbage collection and mature profiling tools. Each of these is bigger than many language features in my experience for writing production software. I would gladly write Java 1.0 if it was the only way I could have them. But in fact I can choose anything from Scala to clojure.

Re: Java 12

#124
post #49

Earlier quoted context omitted.

Well I wish predicting future is this easy , as of now the place where I work we use lot of spring (Spring cloud) completly microservice and it is only reason I believe java is still alive. Spring makes things lot more easy for us atleast. But I have to agree with you regarding Oracle May be you will be interested in this article https://spring.io/blog/2019/03/07/has-there-ever-been-a-bett...

Ironicaly I'm the other way around. Java is a pretty good platform, save the GC pauses. However I really dont see what benefits Spring brings. Spring Boot is great for prototyping and trivial apps, but for big systems you really want to break it apart. DI is better done with ServiceLocators. Some of the smaller libraries like Spring Shell, Spring Mobile are junk. And I still see lots of XML config that you dont know…

I am not sure what else are you looking for, Spring boot/cloud has pretty much all you need to build any application.

Re: Java 12

#125
post #84
post #27

Earlier quoted context omitted.

GC pauses have been one of the major barriers to using garbage collected (read: higher-level) languages for game development. This could open up the JVM for games, which could have some exciting implications.

Their lower end target is 10 ms. In a game, 16 ms is your entire time budget.

10 ms isn't all that much. When games load in assets they'll do various things like malloc huge chunks and you lose a few frames.

If GC only causes occasional (maybe every 2 minutes) loss of a frame or two it should be no problem. If you watch benchmark FPS traces that count every frame delay you'll see that occasional stutters happen in basically every game.

Loss of a single frame just isn't noticeable

Re: Java 12

#126
post #112

Earlier quoted context omitted.

Java on the web is a reference to applets running in the browser. Yes, Oracle, the company that sues people for breathing the same air owning Java is an issue. Maybe I am uninformed, but you haven't made a good case that there's any truth to that.

Our company (on the scale of running it's own private cloud) has switched over to OpenJDK. Oracle is a non-issue for us For people actually working with JVM and the languages on top of it, nobody really is worried about Oracle. The way the licensing is set up, they just don't have enough power to coerce people to use their version. It would kind of be like the SCO case if they came after it. I think they went after G…

As a believe in free and open source software, I think this is a very head in the sand approach. Any portion of Java, even if it's just a certification being open source is enough to run away from it when there are so many alternatives that are better languages and completely open source.

Re: Java 12

#127
post #55

Earlier quoted context omitted.

> Java on the web is dead, >> I don't think you have any idea about the hundreds of millions of lines of Java that power the web as you know it today. Presumably they meant Java in the client, not the server.

"Presumably they meant Java in the client" Android?

The web client specifically

Re: Java 12

#128
post #84
post #27

Earlier quoted context omitted.

GC pauses have been one of the major barriers to using garbage collected (read: higher-level) languages for game development. This could open up the JVM for games, which could have some exciting implications.

Their lower end target is 10 ms. In a game, 16 ms is your entire time budget.

[deleted]

Re: Java 12

#129
post #27
post #6

The most interesting new feature I think is the Shenandoah GC. The summary from [1]: "Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB." The original algorithm…

GC pauses have been one of the major barriers to using garbage collected (read: higher-level) languages for game development. This could open up the JVM for games, which could have some exciting implications.

This has already happened in a way. Unity uses a ton of C# for scripting. While C# is somewhat nicer to work with, this low pause GC makes java a compelling option for moving much more logic into the VM language
Post reply on HN