Hacker News new | ask | show | jobs
by u678u 1834 days ago
I moved from C# to Java project. I preferred C# Syntax but amazed by the number of Java libraries. However I've found Java world full of neck-beard developers that make everything complicated. Spring is toxic - the learning curve is steep and half the devs dont understand it well enough which leaves a huge mess.

Dotnet Developers seem much more pragmatic. I wish I could go back.

EDIT - I forgot about how bad Java GC is. Still with Java 16 a ParallelOldGC Full GC is taking 30 seconds on a big server.

7 comments

Toxic? Isn't this word too strong maybe? Spring provides consistent patterns and solutions for many things and their solutions is usually good (vary between mediocre to great). Learning curve is steep-ish when you start but quite a smooth ride later. It's maintained, reliable, not buggy.
Spring is an acquired taste, and many people don't like it because they don't know the right patterns, so I agree with you and think the parent is exaggerating.
You're both right. I agree Spring Boot is great if you know it well and are knocking out micro-services. If you have a ball of mud like my current project with mixes of XML config, Attribute config and people rolling their own stuff it really isn't adding any value.
I don't code very much Java or C#. I've tried to get into Spring because I wanted to save time but it was too complicated for my patience. I also evaluated ASP.NET and it seemed significantly more convoluted.

There is a ton of documentation for both Spring and ASP.NET but both are so complicated and specific to investing in exact ways of modelling users/auth/whatnot that they are both super hard to get into as a hobbiest outsider.

I like both languages and they both have good microservice libraries and general ecosystem. I just don't think it's worth saying Spring is complex without talking about ASP.NET.

>evaluated ASP.NET and it seemed significantly more convoluted

Which one? I would be very surprised if it were asp.net core, which is their current offering. It is one of the most straightforward and clean web frameworks I've ever had to work with. Spring seems to me to be a giant bowl of spaghetti in comparison to it.

You may also be interested in taking a look at [quarkus](quarkus.io) in that case. It's a relatively new platform developed by RedHat that focuses on cloud usability, performance and developer joy, while using well-established APIs like JAX-RS, JPA or microprofile
Oh yes I've found a number of good microservices for both languages. I'm just astounded by how complex Spring and ASP. Net are. Though to be fair I also find Rails too complex.

I guess the problem is that I've just never had to use on of these at work.

So when programming in my free time in both Java and .NET it's way easier/more fun to just use microservice libraries that are easier to pick up.

Rails and Spring Boot both scratch a similar itch. Out of the gate, a brand new project spins up and can return output (JSON or HTML) with almost zero config. The developer is responsible for augmenting that project with controllers/services/models/etc. What this leads to are dark corners. This is fine as not every developer needs to understand all of those dark corners. But it also leads to blind dependence on the framework and its libraries. And when something goes wrong, they can go REALLY wrong. That said, Spring implements some great patterns out of the box. And spinning up a highly performant microservice with JWT auth, security, an okay ORM (I don't hate Hibernate like a lot of folks do) is cake!
If someone is escaping Spring for it's verbosity and complexity JAX-RS and the Java EE standards aren't that much better IMO.
Asp.net is very well documented. I agree that authentication is a mess and the framework slightly over-engineered, but it's still very doable to use as a hobbyist.
Java GC bad? It is the state of the art (though it has multiple ones, but G1 and ZGC are the best for different workloads), no other runtime has a better one, with V8 coming somewhat close.
> neck-beard

What's wrong with hair growing on your neck if it grows there? It's completely natural.

I know that this is slang/shorthand, but I don't agree with it at all. I work with plenty of people who have unruly beards and none of them fit the "neck-beard" stereotype.

I don't think it's a very nice term to be perpetuating. Judging people purely based on one physical attribute and then mocking them for it is not a great look for anyone.

Hair on your neck makes you look unkempt. I think it's the main issue.
It is also signals a package of personality traits:

* rejecting other personal hygiene customs

* being noticeably more pedantic

* picking every battle/argument

* lower than normal respect for other's boundaries

* lower than normal awareness of how their actions effect others

* making "being rational" a core part of their identity

* dismissing human behaviors they don't do as irrational. usually these are the ones where rational explanations do exist, they are just difficult to re-invent on the spot.

This package is common enough to have earned itself a name, which happens to be the easiest visual indicator.

So the problem is that unkempt looking people have created code that this person has to deal with??

Oh, and every single person who has hair on their neck looks unkempt, without exception, am I hearing that right?

Sure, OK.

For what it is worth, it isn't a neologism to this thread it's a (insulting) slang term for certain types of pedantic nerds in relatively common usage on the internet going back to early internet history (some of the earliest recorded usages were in the early 2000s).

https://en.wiktionary.org/wiki/neckbeard

> Oh, and every single person who has hair on their neck looks unkempt, without exception, am I hearing that right?

Yes, shave it. Especially if you have long neck hair and short or no facial hair.

There are some exceptions, if you have a long beard, maybe.

Hair in other places is considered equally distasteful (long nose hair, ear hair, whatever).

It's both hilarious and jarring for me to have found myself reading a comment about ear hair grooming and the next snaps back to a comment about swift, c#, and Rider. :D
> Hair in other places is considered equally distasteful...

...by some. Clearly others disagree.

Personally, I like hairy men and women. It's a clear sign that I won't have to deal with some priggish prude who is more concerned with looks than personality.

> Personally, I like hairy men and women. It's a clear sign that I won't have to deal with some priggish prude who is more concerned with looks than personality.

Ok, but don't be shocked if some of those priggish people avoid you and unfortunately for you, they may be the ones deciding to give you a loan, to go on a date with you, to offer you a job, whatever.

Everything in life comes with trade offs.

And sometimes it's not worth winning the battle to lose the war.

Any particular reason for using ParallelOldGC with Java 16 ? There are other options that should fare much better.
Lowest memory overhead mainly. Even zgc/g1 have full GCs some times, I never had that problem with dotnet.
Specify a max heap size and use g1. Java will use memory if it is available.
I've used .net almost exclusively backend over the last decade and recently had to take over a spring project.

I was surprised and found it super easy to architect, build and maintain with lots of nice patterns.

It's yaybe heavy, but I wouldn't say it's toxic.

Try ZGC, sub 1ms pauses

https://malloc.se/blog/zgc-jdk16