←back to thread

253 points chhum | 1 comments | | HN request time: 0.204s | source
Show context
snovymgodym ◴[] No.44007415[source]
Java, especially modern Java, is a fine language. The JVM is an awesome runtime. I'm tired of pretending it isn't.
replies(1): >>44011608 #
tstrimple ◴[] No.44011608[source]
The vast majority of Java developers will never touch modern Java and have zero idea of its features or capabilities. I'm in the process of migrating literally thousands of servers and tens of thousands of apps to the cloud and there isn't anything close to modern Java. The absolute majority at this client seems to be Java 8 and there isn't a single Java 17 or newer. So it's one thing to have great modern features. But if you're going to be a Java developer it'll take work / luck to actually be able to use decent versions of it. Very similar story with C++. If you're on a great cutting edge team, you might be able to use the shiny new stuff. But more than likely you'll be relegated to some C++11 at the latest.

I haven't seen things quite so bad on the .NET side at this client. Yes there's a ton of legacy ASP.NET apps. But there are also a lot of .NET Core apps. They haven't quite made it to the post Core versions of .NET, but it's still a healthier state than I see with Java. I guess all of this to say that modern versions of "ancient" programming languages are great and really do improve things. But chances are if you're working with an ancient programming language you'll be stuck maintaining legacy shit and won't ever get to utilize the shiny stuff.

This is keeping in mind that your average programmer will never even try to interview for FAANG never mind grind leetcode and programming language trivia for weeks like seems so common here.

replies(3): >>44012187 #>>44012188 #>>44013715 #
dashtiarian ◴[] No.44012188[source]
Well to be fair, if you wanted Performance, Linux support, and a framework which was built with dependency injection and async support in mind and not just have them as patched in footguns, you had to migrate to .NET Core. A Java 8 Spring app was just good enough.
replies(1): >>44012368 #
LtWorf ◴[] No.44012368[source]
If you want linux support, .net is not what you want.

Linux support is an afterthought and it shows. And you never know if it might be dropped next year.

replies(3): >>44012607 #>>44018607 #>>44018766 #
dashtiarian ◴[] No.44018607[source]
If you are a .NET shop, .NET core still has a better Linux than Legacy .NET framework hence the migration.

If you are a Java shop everything just works so why touch it?

replies(1): >>44021718 #
1. LtWorf ◴[] No.44021718[source]
How do you tell systemd/sysv that your daemon is now ready to accept connections? How do you log to syslog?

In java there's no equivalent to daemon() (unless you go out of your way to call the libc) and java doesn't support SOCK_DGRAM for unix sockets, so no syslog either.

.net seems to have the same issues.

"everything just works" is true only for a very very narrow definition of "everything" which leaves out "daemon that works decently"