Live data from Hacker News

Greatest Java apps

blogs.oracle.com

181–190 of 194 posts

Re: Greatest Java apps

#181
post #175

Earlier quoted context omitted.

> But the amount of effort you have to put in to twist a language and ecosystem that is practically designed around frequent allocation is just not worth it. Do you an example in mind? Unity3D uses C# which is a garbage collected language.

And as anyone who as played Unity games would attest to, the performance is terrible. There's a reason why UE is much more popular than Unity for triple-A games. Take Escape From Tarkov, an FPS that tries to be a AAA game and uses Unity. The performance problems that game has is frankly staggering.

That's so true, you really can 'feel' Unity...it's mushy movement.

Re: Greatest Java apps

#182
post #175

Earlier quoted context omitted.

> But the amount of effort you have to put in to twist a language and ecosystem that is practically designed around frequent allocation is just not worth it. Do you an example in mind? Unity3D uses C# which is a garbage collected language.

And as anyone who as played Unity games would attest to, the performance is terrible. There's a reason why UE is much more popular than Unity for triple-A games. Take Escape From Tarkov, an FPS that tries to be a AAA game and uses Unity. The performance problems that game has is frankly staggering.

[deleted]

Re: Greatest Java apps

#183
post #16

I'd have to give Tomcat the #1 spot for killing off the worst parts of J2EE.

OMG. I've set up Confluence servers and Tomcat was the most nightmarish part of that experience. The idea that Tomcat was an actual improvement on something sends shudders up my spine.

TBH, its not Tomcat but the terrible application packaging by Atlasssian. There was a time when they had it right. A single WAR file. Just drop it in the tomcat webapps folder and (depending on your preferred config) boom! Application deployed. Your data and configs lived in the path defined by JVM_OPTION -Duser.home | -Duser.dir or environment variable CONFLUENCE_HOME (IIRC). Backups were a breeze. Just archive the data folder. Updates were a breeze too! just replace the WAR and restart. Case in point Jenkins deployment in tomcat. Ahh super painless. Running multi tomcats on single host for application separation was as simple as CATALINA_HOME and CATALINA_BASE being set. Now we have a spaghetti monster called kubernetes that makes people think their apps will run better in it. Works for some but not for all. very much like that gym membership.

Re: Greatest Java apps

#184
post #155

To this list we could also add Cassandra, ANTLR, Spring Framework, JUnit, Jetty, Tomcat, Android etc. The list continues. The beauty of Java is not Java/Programming language - but JVM. It inspired people to make other languages such as Scala or Kotlin.

Yeah, but is the JVM worth it? It seems like VMs are now out of style, after decades of trying to make them performant at the cost of staggering complexity. VMs are still not more performant than native code and with the advent of SaaS, portability isn't a big issue anymore. I don't think anyone doubts that the JVM is an astounding and amazing piece of tech. But what is in doubt is whether we need such a thing in the…

I have also reached a point of wondering whether I care about portability. I like the JVM ecosystem but I generally do not give a damn that the JVM abstracts the underlying OS to me since I have to go install it on the target somehow anyway.

If, tomorrow, I could generate native binaries and still leverage the excellent libraries that I can today, I wouldn't be missing anything at all.

Re: Greatest Java apps

#185
post #97

After reading this, I think I need to learn Eclipse Collection and Micronaut.

There's a competition between Micronaut vs Quarkus also. Pls have a look

Helidon follows behind, but yes I agree that Micronaut and Quarkus are probably front-runners for this space.

Re: Greatest Java apps

#186
post #72

Earlier quoted context omitted.

> questionable design decisions that even the people who made them have come to regret. Such as?

I think the most interesting one to me was an interview with Joshua Bloch in the book Coders at Work . It was to do with generics, of course, but distinct from the usual surface-level debate over type erasure. He felt that generics were rushed, and that they could have done a better job of sorting out the details of how things were going to work at the language level if they had given themselves more time.

This is a good read[1], and they're "fixing" them with specialization.

[1] https://cr.openjdk.java.net/~briangoetz/valhalla/erasure.htm...

Re: Greatest Java apps

#187
post #175

Earlier quoted context omitted.

> But the amount of effort you have to put in to twist a language and ecosystem that is practically designed around frequent allocation is just not worth it. Do you an example in mind? Unity3D uses C# which is a garbage collected language.

And as anyone who as played Unity games would attest to, the performance is terrible. There's a reason why UE is much more popular than Unity for triple-A games. Take Escape From Tarkov, an FPS that tries to be a AAA game and uses Unity. The performance problems that game has is frankly staggering.

But the shear volume of successful games built by Unity suggests that the extra work comes with a GC'ed language is worth it.

Re: Greatest Java apps

#188
post #168
post #163

Earlier quoted context omitted.

This industry isn't a monolith, you have Javascript still chugging along, things like Lua as well. Microsft has the CLR as well. Of course some stuff is conflating the language and the VM (which gets you to things like asm.js) but I think people acknowledge the value of what the JVM provides even in projects you cite (Zig has a whole thing about cross-compilation, for example). And honestly? targetting a VM is _way e…

I would say that writing a rudimentary VM is about as hard as generating LLVM IR. The difference is that the VM will have terrible performance and the LLVM IR will have pretty good performance.

But will it provide introspection, garbage collection, and low-level niceties the JVM provides?

Will I be able to interface with all the huge amount of available java libraries? I could interface with C/C++ but there's already a ffi story (as ugly as it is) with the jvm.

I think part of the appeal of rust and go and new languages is the ability to leave a mark, rewrite or port or rethink an existing library in the new language...

It's a kind of progress but it feels like a lot of waste sometimes. And I say that as an avid Ada developer.

Re: Greatest Java apps

#189
post #175

Earlier quoted context omitted.

And as anyone who as played Unity games would attest to, the performance is terrible. There's a reason why UE is much more popular than Unity for triple-A games. Take Escape From Tarkov, an FPS that tries to be a AAA game and uses Unity. The performance problems that game has is frankly staggering.

But the shear volume of successful games built by Unity suggests that the extra work comes with a GC'ed language is worth it.

I mean, I don't think anyone is saying languages with GC are bad for a wide genre of games. They just are inappropriate for the most cutting edge, performance intensive games.

Unity is a lot easier to get started with than UE4, so I understand the popularity. But for some games, the player can really tell how inappropriate the engine is. You can feel the GC churning away: poor performance, high dispersion of fps, frequent stuttering, etc.

While any game using any engine could have these problems, it's especially prominent in unity games.

Re: Greatest Java apps

#190
post #155

Earlier quoted context omitted.

Yeah, but is the JVM worth it? It seems like VMs are now out of style, after decades of trying to make them performant at the cost of staggering complexity. VMs are still not more performant than native code and with the advent of SaaS, portability isn't a big issue anymore. I don't think anyone doubts that the JVM is an astounding and amazing piece of tech. But what is in doubt is whether we need such a thing in the…

I have also reached a point of wondering whether I care about portability. I like the JVM ecosystem but I generally do not give a damn that the JVM abstracts the underlying OS to me since I have to go install it on the target somehow anyway. If, tomorrow, I could generate native binaries and still leverage the excellent libraries that I can today, I wouldn't be missing anything at all.

I guess that's the point of Graal VM, right?
Post reply on HN