Live data from Hacker News

Java Is Underhyped

jackson.sh

81–90 of 808 posts

Re: Java Is Underhyped

#81
post #23

Having been around in the 1990s, I can assure you that "underhyped" is the very LAST thing I think of when Java is mentioned.

I agree, my first reaction on seeing the title was "Underhyped? Really? You must be joking."

The reason Java can be a nice language/runtime today is the sheer amount of resources available to be poured on it due to all the hype in the 90s. It was supposed to save us from all the effort porting our software to many operating systems and processor architectures (the computing world was much less homogeneous back then). It was supposed to run everywhere without modification, from the smallest smartcard to the biggest mainframe. It was supposed to not only run within our web browser, but also be the implementation language of our web browser, or even the whole operating system. It was supposed to magically be faster than even C and C++ (those who used Java back then can recall how slow it was; for instance, hanging the whole browser for a whole minute while the JVM started up was not uncommon). Everything was supposed be written in Java; it was not good enough to call a native library for whatever functionality you wanted, it had to be rewritten in pure Java.

Java was a mediocre language. All that hype led to a virtuous cycle, which allowed it to grow into what it is today.

Re: Java Is Underhyped

#82
sorry long sentences are not my forte

## python comprehensions,

better then java or c++ way . which is absolutely same . so java === c++20 (ms way) . https://calmcode.io/comprehensions/example.html (not affiliated)

## jupyter lab

your data and your processing is on same machine potentially remote, nas, privatecloud... so you can do things on your data without unnecesary bs from browser with youbikey, google titan auth.

## neovim

because... well, dont be negative and treat it as fedora for your redhat (vim) (yes i remember, im that old)

## little bit of trolling

do this on your brand new mac in vscode ... yes, he has fingers https://www.youtube.com/watch?v=-I1b8BINyEw

## Java

is good for Transform UML to code. thats it, DONE.

## AI ! ! ! ! XOr Not

Btw who said machine learning can code for you ? uh, me not! Lets draw pictures for ML, to have better MS Office! https://knowyourmeme.com/photos/1845265-back-to-the-future

Re: Java Is Underhyped

#83
post #78

Earlier quoted context omitted.

Your jab at TS was lame as Java itself has complete type erasure for generics. >by crystallizing type definitions and guaranteeing type guards by default. Not so crystallizing if you know.. if you've ever used a Java List, Set or a Map. i.e., List . such guarantee. wow. Honestly, I'd prefer TS with strict mode over Java any day because nullability is explicit, don't have to watch out for the dreaded NullPointerExcept…

Thank you, good point. I forgot about HashMap's type unsafety even though I wrote the following monstrocity a few days ago to loop over a HashMap Iterator ghostI = hashtableNPCs.entrySet().iterator(); while (ghostI.hasNext()) { ExpiringEntityPlayer expiringEntityPlayer = (ExpiringEntityPlayer) ((Map.Entry) ghostI.next()).getValue(); } Apparently this is the only way to do it, and the Map.Entry type absolutely nukes a…

You are supposed to use generics:

    Iterator> ghostI = hashtableNPCs.entrySet().iterator();
    while (ghostI.hasNext()) {
        ExpiringEntityPlayer expiringEntityPlayer = ghostI.next().getValue();
    }
However, it's a sham. The generic types are stripped at runtime. The compiler will prevent you from putting values in the map that are not an ExpiringEntityPlayer, as long as you are diligent in using generics everywhere, and don't fall in the few traps where the wrong type can slip by without a warning, but you can still be hit by a ClassCastException at runtime if you're not careful.

Re: Java Is Underhyped

#84
post #43
post #3

Java is under hyped in the same way Toyota Corollas are under hyped. Nothing is exciting about it since it's so common. I personally dislike Java since I just find it hard , you'll never want for work as a skilled Java developer

That's a great analogy, but I'm a bit confused about the later part, is it "you'll never be wanted for work as ..." or "you'll never want to work as ..."?

noun: want; plural noun: wants

    1. a lack or deficiency of something.
    "Victorian houses which are in want of repair"
In this case it's a double negative, OP means you'll always be able to find work as a skilled java developer.

Re: Java Is Underhyped

#85
post #47

Earlier quoted context omitted.

Verbosity is not a problem in large code bases. Speed of understanding and debugging of what somebody else wrote is. So, less magic is better. I will take Java codebase over Scala or Python every time, unless it is a toy script which is 100 lines

Every significant Java codebase I've worked in has had incredible amounts of magic. Between AOP, DI frameworks, APT, reflection, proxies, SPI, Lombok compiler hacks, dynamic classloaders, etc., there is a LOT of magic flying around and it can be quite hard to understand what will happen at runtime.

I’m talking about the language, not frameworks.

AOP sucks because it is paaaain to debug, proxies are magic. There is Dagger that solve some stuff

Re: Java Is Underhyped

#86
the verbosity complainers have no idea. they're just way off base. writing some jax-rs or what not is so compact, so simple, so easy. I can't begin to understand these complaints given the get started cost of any alternative, all the js frameworks, elm, swift, whatever. java's magic annotation systems are wonderful & concise.

Re: Java Is Underhyped

#87
post #74

Earlier quoted context omitted.

Verbosity is not a problem in large code bases. Speed of understanding and debugging of what somebody else wrote is. So, less magic is better. I will take Java codebase over Scala or Python every time, unless it is a toy script which is 100 lines

Java style verbosity hurts readability. That’s the most important issue with Java imho. Take a look at a http server one in Java and one in C. Readability difference is crazy. My company is in transition from Java to C, for bunch of stuff just for performance reasons. So, I debug similar projects time to time both in Java and C, http server, in memory cache, iot server etc. After seeing both, I just think although Ja…

I mentioned C as a language of choice. Cool kids are picking node js and esoteric Closure, not C

Re: Java Is Underhyped

#88
post #33

Java is not hyped because it is a tool. Like a microscope, it just does what it supposed to do. IMO, if you want to get a descent job in a large company working on backend systems, you want to learn: Java, C/C++ or recently Go. You will be able to build pretty much anything, from a micro service to self driving car. If you want to stick to startups, you can do well with anything else till it growth, experienced engin…

I always refused to work with C++/Java, and I managed to get a job with Rust at FAANG. If I can do it, you can do it :P

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.

Re: Java Is Underhyped

#89
post #43

Earlier quoted context omitted.

That's a great analogy, but I'm a bit confused about the later part, is it "you'll never be wanted for work as ..." or "you'll never want to work as ..."?

noun: want; plural noun: wants 1. a lack or deficiency of something. "Victorian houses which are in want of repair" In this case it's a double negative, OP means you'll always be able to find work as a skilled java developer.

ok I'm wrong on the grammatical analysis, it's not a noun but rather an idiom meaning to lack or need something.

Re: Java Is Underhyped

#90
post #47

Earlier quoted context omitted.

Verbosity is not a problem in large code bases. Speed of understanding and debugging of what somebody else wrote is. So, less magic is better. I will take Java codebase over Scala or Python every time, unless it is a toy script which is 100 lines

Every significant Java codebase I've worked in has had incredible amounts of magic. Between AOP, DI frameworks, APT, reflection, proxies, SPI, Lombok compiler hacks, dynamic classloaders, etc., there is a LOT of magic flying around and it can be quite hard to understand what will happen at runtime.

This. Java communities tried to solve redundant code problem by complex, hard to recognize way.
Post reply on HN