Live data from Hacker News

Greatest Java apps

blogs.oracle.com

151–160 of 194 posts

Re: Greatest Java apps

#151

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.

I don’t know if I’d celebrate Spring... and Oracle would rather Android use “real” Java, not Dalvik. The JVM was nice at the time, but I feel that languages like Scalia and Kotlin exist because Java was too conservative - and many of Kotlin’s great features had to be implemented using hacks and tricks to work-around the JVM’s now-primitive type-system. Also note that Kotlin can now target other platforms besides the…

Java has become more nimble in recent years and they have been busy copying many features from Kotlin and C#.

Re: Greatest Java apps

#152
post #88

Earlier quoted context omitted.

Yes, Spring is good, and in general there's been a lot of innovation started in Java and spread elsewhere. The whole "Dependency Injection" idea started in Java, and a lot more stuff started there too, or at least was popularized AFAIK. For example, pattern languages themselves. But some great libraries like JodaTime came from there, as did Doug Lea's very nice rendering of better concurrency primitives - and both of…

Wasn't the "Gang of Four" book written entirely in C++?

Yes; that's why I added the caveat "or popularized".

Re: Greatest Java apps

#153

I like to add clojure it is written in Java, so I guess it counts. But seriously what do you like about Java and why did you choose to work with it? What problem does it solve for you? I'm curious! (don't comment when you don't like it)

Established best practices of good software engineering, vast selection of libraries for pretty much anything, high performance code, cross platform availability, scalability. Pretty much anything you need to build a solid backend exists here and not to mention the large Java dev community.

Re: Greatest Java apps

#154
post #3

I'd nominate Bitwig for this. The UI is written in Java and is one of the nicest DAW interfaces around. The stuff they've been doing in the modular grid lately is particularly impressive. The fact that it's in Java means it works great on Linux too. https://www.bitwig.com/en/home.html

That's nice. Here's another one https://handwiki.org/wiki/Software:Atlantis_event_display

The Atlantis event display is a visualization program [1] [2] for the Atlas experiment, the largest, general-purpose particle detector experiment at the Large Hadron Collider (LHC), a particle accelerator at CERN

Re: Greatest Java apps

#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 first place.

Most new languages (Rust, Nim, Zig, etc) advertise their native code generation prominently. People are tired of the shitty start-up times, inscrutable performance profile, and ginormous memory usage.

Even Oracle realizes this, with the recent push towards GraalVM.

And I say this as someone who would probably choose the JVM, Scala specifically, for any new SaaS project.

I personally haven't really used any desktop JVM app that I was happy with. If Intellij was native, I'm sure it would be 10x better, at least performance-wise.

Re: Greatest Java apps

#156

Earlier quoted context omitted.

For games, probably the worst thing about Java, especially if you're still on Java 8, is the garbage collector. Its pause times can be brutal. This won't be noticeable for games that aren't too hard on memory, or games where framerate doesn't really matter, but it was definitely noticeable (and annoying) in earlier versions of Minecraft. On Java 11 or later, I wouldn't expect it to be nearly such a big deal. At least…

The "Java is bad for games" mindset is in part just historical bias. Performance and GC are thrown around as shallow excuses for comparing idiomatic Java with game design C++. Actually applying methods to reduce memory pressure like using arenas, and accepting vectors to mutate instead of creating new ones solve most of the GC penalty you paid for not having to think about it while prototyping. Large servers in java…

Yeah, of course Java can make games. Hell, even some high frequency trading shops are using Java. 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. Like, if you're writing zero allocation Scala or Java you're going to be writing C/C++ in the first place.

Might as well just use C/C++ instead of fighting the ecosystem tooth and nail.

Re: Greatest Java apps

#157
post #32

Earlier quoted context omitted.

Yeah, the game is almost source-available, thus almost infinitely moddable. Games that provide neat modding APIs (thinking Factorio, Rimworld) are, while commendable, inherently limited. If Minecraft were C++ you'd have to be able to recompile it yourself for equivalent moddability.

Could Minecraft have succeeded if it had a sub-level scripting language, like Lisp? The way that AutoCad uses it for its sub programming. Or the way Emacs uses Lisp for macro programming. Or did it need the full Java source code to re-mod the program?

AutoCad and Emacs aren't really comparable in their use of Lisp. Emacs is essentially an Elisp interpreter with some features for buffer management, while AutoCad just uses Lisp as a traditional scripting toolkit. Emacs is built with Elisp, AutoCad is not.

Re: Greatest Java apps

#160
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.

Tomcat definitely shows its age, but I also see some amusing parallels to modern cloud / IaaS architectures in a heavyweight application that implements standard APIs for code you can HTTP POST to it.
Post reply on HN