Live data from Hacker News

Java Is Underhyped

jackson.sh

701–710 of 808 posts

Re: Java Is Underhyped

#701
post #103

Earlier quoted context omitted.

Why would any reasonable person limit their choices based on a tool? Rust or Blast - whatever I really don’t care what language I’m using if it it doing the job. I use Java, Java Script, Go, Python, Scala when appropriate.

Because some of these tools bring more joy or despair than others. A worker is only but his tools.

It is matter of perception. All tools suck in some ways, all codebases are have bad stuff (except toy projects of obsessed perfectionists). We just deal with it :)

Re: Java Is Underhyped

#702

Java is rock stable and "complete". Not just the language itself. Build tools, JVM, profiling, dependency management. Everything is at least decent, most language problems were solved years ago. I have used many languages and nothing comes close to Java in the balance of speed, flexibility, ecosystem, and polish. If you're not sure which language will be best for a project, Java is perfect. I work on a codebase with…

C# ?

Re: Java Is Underhyped

#703

Java is rock stable and "complete". Not just the language itself. Build tools, JVM, profiling, dependency management. Everything is at least decent, most language problems were solved years ago. I have used many languages and nothing comes close to Java in the balance of speed, flexibility, ecosystem, and polish. If you're not sure which language will be best for a project, Java is perfect. I work on a codebase with…

C# ?

The languages are kin, but Java has more going for it.

C# is much smaller community.

Microsoft isn't as good about avoiding breaking changes.

Java has more quality tooling options.

The CLR GC is way worse. Shenandoah and ZGC, and even G1 on new versions blow away CLR GC.

Also heard the JIT compiler isn't as good from an Oracle dev a while back. C# performs better in synthetic benchmarks because it exposes more low level primitives.

C# is far ahead in syntactical niceness and exposing lower level primitives. It also has reified generics and true primitive types. The "language" itself is definitely better than Java, there's no question. It's everything built around Java and the capabilities of the JVM that make it better than C#.

Re: Java Is Underhyped

#704
post #457

Earlier quoted context omitted.

With respect, welcome to the Kotlin version of #ifdef, where language features depend on the underlying runtime. That 3D graphics library using SIMD and value types from JVM on ART or JS? Good luck achieving the same perfomance and memory semantics. Kotlin/Native has already been rebooted as its memory model was incompatbile with JVM libraries.

It’s worked out ok for scala (though i don’t think anyone cares about it for android). Obviously a lot of code that only works on the JVM, because a lot of people just don’t care about native/js. But most core libraries will have ‘shared’ pure scala code and then have the platform specific implementations in separate folders. This is all fairly standardized with sbt plugins to do all the heavy lifting. From the app s…

Did it?

The main company behind Scala changed its name and now also offers Java consulting.

Unless the project requires Spark, there is little reason to even care Scala exists.

Then there is the version 3.0 where they started having brain damaged ideas like changing the whole syntax.

Scala today is Kotlin in 10 years.

One benefit of being old in this industry is having survived multiple fashion waves of guest languages on each platform, then watching how those guest languages fade while the platform languages adopt some of their features.

Or even how whole platforms become irrelevant making it a complete moot point regarding whose languages are on the platform.

Re: Java Is Underhyped

#705

For my use cases, Java has all the wrong compromises: - not high level enough to compete with Python/Ruby/JS/PHP, etc - not low level enough to compete with Rust/D/Nim/Zig - not specialized enough to compete with Erlang/R/Go/Julia - not opinionated enough to compete with Lisp/Haskell So why use Java ? It's good, it's fast, it's productive, it's well supported, battle tested and documented for decades with a huge pool…

You're missing the other JVM-based languages, notably Scala.

Scala has a "tunable" level of PL feature usage; you can write very Java-esque Scala at the beginning and slowly incorporate more advanced features.

The key thing about these features are that once you understand what they do, it allows you to write fewer lines of code overall. Fewer lines typically means fewer bugs, and it communicates intent with more clarity (at least to developers who are familiar with the patterns).

This makes it easy to onboard new devs who may not know a lot of Scala and let them be productive from day 1 (writing Java-style Scala) while advancing their skills towards more fancy idioms.

I have stayed away from JVM-land after taking a different tack in my career trajectory, but I worked at Twitter about a decade ago when they were transitioning to a JVM-based stack and were early adopters of Scala. It was really a joy to be able to simultaneously get my work done while uncovering all of the new cool language features!

Re: Java Is Underhyped

#706

Earlier quoted context omitted.

I came to say say that's not a language problem, that's a packaging problem. But that would be misleading. The reason packaging is still a problem in Python are linked to the language: - to get perfs, you need compiled extensions, which java doesn't need. So a Jar can be fast and portable, while in Python it's an "or" proposition. Wheels help, but they still are OS dependent, so you need a build per OS. - PYZ arrived…

So... Java is bad, but let's ignore Python's problems. I'm forced to use Python at work, because data scientists demand it, and I can rant about your "good for data" language for at least 24 hours straight. Python isn't great at anything specifically, but it's crap in a few specific places. No multithreading? Fine! But then Python core libraries are crap at IPC, when multiprocess is the preferred way of parallel comp…

> So... Java is bad, but let's ignore Python's problems.

I don't know where you read either of your propositions in any of my comment.

Re: Java Is Underhyped

#707
post #164

Earlier quoted context omitted.

> But so it Python. For a very different definition of "good enough," i.e. unless you're working on a large codebase maintained by a large team for years, need high performance, or need deep low-overhead observability. So Java is "good enough" for a much wider selection of "serious" (large/mission-critical/long-lived/ high-performance) software. > And for specialized things, there are better choices available to me.…

Dropbox, instagram, google and youtube all were written in Python at some point. Languages don't scale, architectures do. But even when the language became the bottleneck, they went the road of rust and go, not the road of java. Again, not to say Java is not used by those companies with great success.

Python is a distant fifth place at Google today behind Java, C++, JavaScript and Go. It may be behind Typescript too at this point.

Performance critical, lower-level servers are typically written in C++ at Google - think things like Spanner or GCS. Google only allows a very restrictive C++ subset.

Application servers are typically written in Java or Go. Which is preferred depends on the organization.

Google of course makes extensive use of Guava and Guice, and Bazel, which itself is written in Java.

Re: Java Is Underhyped

#708
post #254

Earlier quoted context omitted.

As a Java developer: - I have no trouble reading java and have a hard time reading the 'less verbose' languages. There's way too much implied meaning and information only gleamed through tooling or backtracing, like determining the type of a variable that is declared with var - IDE support for Scala is half as good as Java and I suspect a good reason is the language. The auotcomplete in intelliJ is almost as bad as i…

> IDE support for Scala is half as good as Java and I suspect a good reason is the language. The auotcomplete in intelliJ is almost as bad as it is for python and the IDE really struggles to understand the code; This is not my experience. I found the IntelliJ autocompletion to work very well with Scala. There are nice code-suggestions, highlights for implicit parameters, refactoring works as a breeze. What exactly ar…

The Scala autocomplete list often loads with a huge list of awful suggestions then moments later adds a bunch of useful options. We are using scala exclusively to write tests for our java code; we are using scalatest for this. The autocomplete for a lot of the (to me, as a non-seasoned scala developer) screwy operator overloaded 'syntax' just doesn't work at all. IDEA does show compile errors etc in 'realtime' (I put that in quotes because it takes a lot longer to catch up with bad scala code than it does bad java code).

Re: Java Is Underhyped

#709
post #679

Earlier quoted context omitted.

100% lombok can only be developed on eclipse. They have an open issue to make it compile on intellij...

I don't know if something changed, but for sure 2 years ago I used Lombok with IntelliJ.

I don't mean lombok as a library, which works. I mean developing lombok itself

Re: Java Is Underhyped

#710
post #124

The amount of vitriol Java receives in the game development space is rather strong. However, whenever people dismiss Java as being a bad language, I can't help but think of Minecraft. Yes, it's one of the few mainstream titles where Java has been successfully applied, but I believe Minecraft's success was specifically because it was written in Java. With no JVM, there would have been no Minecraft mods at the level of…

> For the people who say that Minecraft should have been written in C++ […] there's Bedrock Edition. Nobody I know cares about it enough to play it. Been playing for just under ten years, everyone I know plays Bedrock these days. I built and manage a very popular tool / Minecraft community and while I don’t have actual numbers, my general sense is the majority of players run either console or mobile Minecraft - all o…

the java edition is significantly more predictable and less buggy. even regarding redstone it is not that bedrock redstone doesn't work* but that contraptions are significantly less deterministic than on java

* some very used redstone features on java are clearly bugs and rightly so are not on bedrock, but even those have a very specific and exploitable use

Post reply on HN