Live data from Hacker News

Java Is Underhyped

jackson.sh

71–80 of 808 posts

Re: Java Is Underhyped

#71
post #12

Java was heavily hyped back in the 1990s and 2000s. It's still a decent language and has a number of things to recommend it, but today we have things like Go and Rust. I think it really fell out of favor due to Oracle's litigious handling of it. As soon as Oracle bought it I remember people actually cancelling Java projects and changing languages. Another problem is how complex and verbose it got. Original late-90s J…

> today we have things like Go and Rust Except that if you actually code for money, neither of those have many jobs available. Heck, in many cities I've looked _any_ jobs available. Java is still one of the most employable tools out there simply because it has a lot of jobs. Sometimes the hype-train of HN makes me think that people here are just coding for a hobby or their own start-up and entirely forget how the rea…

HN is indeed full of startup warriors. Go and Rust are popular for new fangled stuff, but you are correct that there are a massive number of Java jobs around.

Re: Java Is Underhyped

#72
Speaking as a near 20 year Java programmer, Java is criminally bloated at every level. The ecosystem has been covering for its shortcomings since y2k. That ecosystem is so thick and full of abstraction that no two devs from different framework backgrounds would recognize the others code as Java. And the abstraction... it is a language for people who are more interested is the abstractions than actually getting things done.

Re: Java Is Underhyped

#73

I do think Java has a bad rep as a "dry, corporate, enterprise" language, but I think there is an ecosystem around Java that is pretty awesome and you can build incredible applications with Java if you want to. Java has a branding problem. Java (and Oracle) missed the wave of the last 15 years when tech became "cool." If you were new to tech/programming and wanted to pick up a language, which of these three would you…

I actually laughed out loud at the Java.com homepage. I was so surprised, I expected a sleek, modern homepage but instead I got a portal to 2010.

Re: Java Is Underhyped

#74

Earlier quoted context omitted.

> You CAN make it verbose that’s for sure. No true scotsman? Even if you want to argue that Java CAN be made more terse, the vast majority of Java that exists today is incredibly verbose. Even running a Java program is verbose. Java is the only language I've used where it's more common to have a shell script that starts your Java program than just running ./helloworld. And yes, Go is less verbose than Java. Go might…

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 Java has great tooling, it drives developers to write unreadable code.

Re: Java Is Underhyped

#75
post #22

Earlier quoted context omitted.

A fair point, haha! I tried PyCharm recently (normally use VS Code) and I was really impressed. I think my emotions are misplaced: I might just like IntelliJ.

IntelliJ is nice, don't get me wrong. You can't really get a nice (for 2020) experience out of Java without it, because it's an absolute slog of a language. Just... so... much... ... ... ... everything. IntelliJ cuts through all that. You can get a nice for 2005 experience with Eclipse. Without an IDE, Java really falls down. Java is a phenomenal piece of kit, the amount of engineering that went into the JVM is insan…

[deleted]

Re: Java Is Underhyped

#76

Earlier quoted context omitted.

> Used to be the best way to get a job Java is the most in-demand technology in my home country, Estonia. Java also has around 800 open positions at any given time where I live now (Buenos Aires, Argentina). In fact, pretty much everywhere I've looked, Java is consistently one of the best ways to get a job simply because it has the most jobs available. HN favourites like Go and Rust? I haven't yet found a city in Eur…

Go/Rust will get you hired in Silicon Valley working on "cool" teams. I believe a bunch of AWS teams are deep diving into Rust, and not to mention the hundreds of startups working in Go/Rust. However, the sausage is still made Java. Amazon, Google, and Apple are, as far as a I know, primarily Java shops. It's just no one ever starts a blog with "Here's something cool I did in Java".

Ah yes, I keep forgetting that HN folk are American-centric and often either do not know or forget that the vast majority of developers do not actually live there, or work for FAANG.

Outside of USA, a little digging I did via Glassdoor:

Buenos Aires, Argentina: - Rust: ~5 jobs - Go: ~3 jobs - Java: ~800 jobs

Lisbon, Portugal: - Rust: ~6 jobs - Go: ~30 jobs - Java: ~278 jobs

Barcelona, Spain: - Rust: ~1 job - Go: ~50 jobs - Java: ~751 jobs

These are just places I've lived at and while I can see Go slowly becoming a thing, Rust is still half a decade away from anything tangible for the real world I would say. So if anyone asks me what should they become an expert in for the next 10 years, I would not hesitate to say Java.

Re: Java Is Underhyped

#77
post #7

There are a few reasons to avoid Java today. - The programs are very verbose for the functionality they provide. There are countless lines of getters, setters, and trivial constructors. While IDE helps to write them, it makes reading existing programs slow and frustrating. Lombok helps, but very few programs use it. - If you do want to use Java ecosystem, there is Scala. It also has strong type system, nice IDE suppo…

[deleted]

Re: Java Is Underhyped

#78
post #2

Thanks for the two upvotes so far! Please feel free to leave criticism of the article or my writing; I'm trying to strengthen my composition muscle.

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 any semblance of type safety.

Re: Java Is Underhyped

#79

I was a Java developer for about 15 years, then switched to Node and Typescript about 4 years ago. I think this author is going to be up for a rude awakening when it comes to the benefits of nominal typing, as this is the area that I couldn't disagree with more. I've commented about this before, but structural typing in Typescript makes it so much easier to refactor and to get one existing piece of code to confirm to…

Fair point.

Re: Java Is Underhyped

#80

Speaking as a near 20 year Java programmer, Java is criminally bloated at every level. The ecosystem has been covering for its shortcomings since y2k. That ecosystem is so thick and full of abstraction that no two devs from different framework backgrounds would recognize the others code as Java. And the abstraction... it is a language for people who are more interested is the abstractions than actually getting things…

I agree with you.

Actually, Java has great tooling, JVM is very nice, it has great potential for high performance code generation. It has everything for debugging. But at the end of the day, language is driving people to write bloated software.

I just wonder, how come e.g Linux kernel code 100 times more readable than any project in Java? More importantly, how did we come to this point that we accept bloated/unreadable code in the name of higher/better languages?

Post reply on HN