Live data from Hacker News

Greatest Java apps

blogs.oracle.com

131–140 of 194 posts

Re: Greatest Java apps

#131
post #72

Earlier quoted context omitted.

I work in Java every day, and I agree it's been a huge success. But I also don't think it's a good general purpose language. It's absolutely full of warts and gotchas and ergonomic problems and questionable design decisions that even the people who made them have come to regret. But known history tells us that there is very little correlation between a language's success and how well-designed it is. Outside of softwa…

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

Re: Greatest Java apps

#132

Earlier quoted context omitted.

I'm pretty sure the most popular video game in history was implemented in TTL. (Though Java versions certainly exist, too.) It's also worth noting that Minecraft was originally implemented in Java, but, in order to get it running on consoles and mobile, they had to port it to C++. Which doesn't discount how much Java contributed to its early success. (Most importantly, I'm guessing, by making it even feasible in the…

What's the game implemented in TTL?

Pong

Re: Greatest Java apps

#133

Earlier quoted context omitted.

It's a great reminder that the customer doesn't care about the code. What matters is the experience and overall fidelity of the product shipped. The language you pick, the quality of code you write, the comments and documentation, are all products (gifts) targeting your future self, future peers, and employer when it comes time to make changes to the software.

> the customer doesn't care about the code I'm not sure this applies as strongly in Minecraft's case specifically, because of the critical importance of its modding community to its wild success. Normally it wouldn't matter what language you pick in terms of how popular the game is going to become, except it just so happened that by choosing the JVM they gave the ability to the community to decompile the game and add…

C++ minecraft should have an SDK for mods

Re: Greatest Java apps

#134
post #36

What are the odds that a language known for its use in boring enterprise software is the language used to create the most popular video game in history (Minecraft). If C++ was a person it would be mad/salty at this fact.

And yet people here on HN have told me in recent threads, when discussing Java, that: - Java is not suitable for enterprise software (yes! Some people here actually believe that). - Java is not a good general purpose language (but Minecraft was written in Java. Or even better, the list of very varied apps from this article shows it's indeed a good general purpose language). What these people actually mean is "I don't…

I would say its suitable, but I wouldn't say it's a good general purpose language for a variety of reasons. The first being that "good" is totally subjective. It feels like it has lagged behind its competitors both in terms of language features and API design. Its generally crappy for GUI apps. It doesn't really excel at anything in particular unless you're already invested in it. Even it's original premise of "write once run anywhere" is mostly irrelevant now, and there doesnt seem to be a future for client side Java apps outside of Android.

Overall I'd prefer to use just about anything else in pretty much any domain where Java would be a consideration. It may not be an inherent problem with the language itself, but its ecosystem in my experience leaves it as one of the worst general purpose languages in terms of productivity while not offering a sufficient advantage to make up for that.

All that being said, Java is still good enough most of the time.

Re: Greatest Java apps

#135

Earlier quoted context omitted.

It's a great reminder that the customer doesn't care about the code. What matters is the experience and overall fidelity of the product shipped. The language you pick, the quality of code you write, the comments and documentation, are all products (gifts) targeting your future self, future peers, and employer when it comes time to make changes to the software.

> the customer doesn't care about the code I'm not sure this applies as strongly in Minecraft's case specifically, because of the critical importance of its modding community to its wild success. Normally it wouldn't matter what language you pick in terms of how popular the game is going to become, except it just so happened that by choosing the JVM they gave the ability to the community to decompile the game and add…

> it just so happened that by choosing the JVM they gave the ability to the community to decompile the game and add the content they want

That wasn't their intention; Minecraft code was originally obfuscated specifically in order to combat reverse engineering and modification.

https://www.reddit.com/r/Minecraft/comments/mpslv/why_are_mi...

https://minecraft.gamepedia.com/Obfuscation_map

Re: Greatest Java apps

#136

What are the odds that a language known for its use in boring enterprise software is the language used to create the most popular video game in history (Minecraft). If C++ was a person it would be mad/salty at this fact.

> If C++ was a person it would be mad/salty at this fact.

Are you serious? Wake us up when somebody implements something as complex and performant as UE4 in Java. Or even UE3 for that matter.

Re: Greatest Java apps

#137
post #14

Earlier quoted context omitted.

It's really not great. Doable, but not great. That's why they moved to a classic C++ codebase instead on other platforms. On a side note, I worked on Jpcsp, a PSP emulator in Java. Great for research and doing refactoring in the code quickly, not great for performance, even with a JIT. We wrote later PPSSPP in C++, performance was there quite easily.

> It's really not great. Could you provide some more information on what it was not great?

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 not relative to some other issues. For example, it being a reflective language means that there's a fair amount of memory overhead that's really only there to support features that aren't so useful in games development. Also, there's a fair bit of overhead, in terms of both CPU and memory churn, to making calls into native libraries from Java. Nowadays, neither of those is a big deal for a large swathe of games, either, so I don't think one can really make a blanket statement that Java is not great for games development.

Re: Greatest Java apps

#138

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 JVM.

I think we can all agree the JVM is lagging behind the CLR, and the CLR is behind where we should be (when looking at the things that Clang is capable of)

Re: Greatest Java apps

#139

In praise of Lucene, it's stated that > Wikipedia replaced the Lucene engine with Elasticsearch, a distributed, REST-enabled search engine also written in Java Elasticsearch is still using Lucene as core search engine though, so all that was replaced is the custom job control and wrapping around Lucene (SOLR?) by the one that Elasticsearch provides I guess.

I was the one who first requested that Doug join the ASF with Lucene. The rest is history... ;-)

Can you tell us more? Sounds like you have an interesting story to tell.
Post reply on HN