Live data from Hacker News

Greatest Java apps

blogs.oracle.com

171–180 of 194 posts

Re: Greatest Java apps

#171
post #7

So not impressed. Still waiting for, "write once, run anywhere" to actually work.

I worked on a Java desktop app, that had a highly complex UI written in Swing, for ~14 years. We only officially targeted Windows as a platform. For a few years I switched to a Linux development machine. The only code change required was for our third party license dongle - to reference the correct native library needed for machine fingerprinting. We also ran it on another developers Mac just to see if we could - again we only had to comment out the licensing code and it works flawlessly.

So from that experience I would say Java definitely lived up to Write Once Run Everywhere. FWIW we used the Nimbus Look and Feel. Other LAFs may not have had as much polish applied.

Re: Greatest Java apps

#172
post #156

Earlier quoted context omitted.

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 ecosys…

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

Re: Greatest Java apps

#173

H2 database is pretty awesome. Such a pleasure to use vs SQLite and even vs some large-scale RDBMSs.

I always come back to H2 for an embedded db. So user-friendly! SQLite is nice but H2 useability and standard SQL support is awesome.

Re: Greatest Java apps

#174
post #143

Earlier quoted context omitted.

That other popular Java-platform languages exist indeed shows that the Java language is too conservative for some , but that 90% use the Java language shows that its design is in line with what most people want. And the CLR is about, oh, ten-fifteen years behind OpenJDK in compilation, GC and low-overhead deep profiling and observability. OpenJDK's C2 compiler is pretty much on par with clang in terms of optimisation…

I know the CLR’s runtime performance has room for improvement- but I’m referring to the CLR’s capabilities and “language-enabling”-feature-set.

If you say reified generics I'm going to scream. Other than that one what else does the CLR bring to the table?

Re: Greatest Java apps

#175
post #156

Earlier quoted context omitted.

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 ecosys…

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

Re: Greatest Java apps

#176
post #143

Earlier quoted context omitted.

That other popular Java-platform languages exist indeed shows that the Java language is too conservative for some , but that 90% use the Java language shows that its design is in line with what most people want. And the CLR is about, oh, ten-fifteen years behind OpenJDK in compilation, GC and low-overhead deep profiling and observability. OpenJDK's C2 compiler is pretty much on par with clang in terms of optimisation…

I know the CLR’s runtime performance has room for improvement- but I’m referring to the CLR’s capabilities and “language-enabling”-feature-set.

Its "language-enabling" feature set sucks. Reified generics for reference types force C#'s variance model on any CLR language that wants good code and data interop, and there is no portable good lightweight concurrency primitive. Sure Java is missing some important stuff like value types and tail call elimination (I don't think the CLR has the latter, either), both being addressed, but the CLR suffers from some early decisions that are nearly impossible to fix even if MS did show it had the inclination to fix them. Overall, Java is a more compelling compilation target than .NET, and Truffle is making it so much more so.

Re: Greatest Java apps

#177

Earlier quoted context omitted.

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…

>I don’t know if I’d celebrate Spring I've used SpringBoot recently on several projects after being in the Rails and Django and PHP world for a long time and I must say its super great. I never could have imagined that I would praise a web framework based on Java 5 years ago. Its lightweight, super fast (compared to Rails or Django), mature (its been around more that 15 years) and very stable. It also supports Kotlin…

I've been beating this drum for a while. Spring has lots of legacy as it is 17 years old and has been through a series of technology waves over the years. That has both benefits and drawbacks.

With Spring Boot and Kotlin support it is now a modern framework that has straightforward solutions for most current problems. Built on a solid battle tested foundation (JVM + Core Spring)

Spring Boot (+ Kotlin) has been my goto stack for most problems for years now. There is a learning curve like most non-trivial software but once it clicks it's hard to go back to something else.

Re: Greatest Java apps

#178
post #157

Earlier quoted context omitted.

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.

The C code in GNU Emacs does a bit more than implementing a 'Lisp interpreter'.

https://github.com/emacs-mirror/emacs/tree/master/src

Quite a bit of the actual GNU Emacs application is using libraries written in C. See for example the font code.

https://github.com/emacs-mirror/emacs/blob/master/src/font.c

This is different from some other Lisp systems, where only the base language runtime contains some C and/or assembler, and the actual application is mostly written in Lisp using an FFI (foreign function interface) for library calls. For example the GUI of Clozure CL is written in Lisp using an Objective C bridge, and not directly in Objective C and then called from Lisp.

Thus Emacs Lisp is also somewhere in a continuum of implementation and extension language - using C not only for the Emacs Lisp language runtime, but also for basic application implementation...

Re: Greatest Java apps

#179
post #158

Today I learned that almost every IDE I have ever used is written in Java.

And now you understand why none of them work very well!

I laughed, but PHP Storm and IDEA are very good tools imo.

Netbeans was quite good when I used it as well, although clunkier.

They can be very memory hungry though (of course).

Post reply on HN