Java is a great language but since most people work with it and most people don’t give a shit about best practices, we see messy java code everywhere. It’s an easy language to write shit code in.
I think Java ecosystem is more about ‘best practices’ (in the most enterprisey meaning) than common sense and good coding. That is why everything in Java gets so over-enigeered. Abstraction over abstraction. XML, SOAP, beans, factories of factories at every corner.
At least that is my feeling, as an sysadmin (fluent in some other programming languages) who occasionally deploys those monstrosities.
Compare that to PHP apps. They also tend to be a mess, but in a completely different way. No ‘best practices’ are common here. Just a pile of spaghetti code, that does the thing it is meant to (until it doesn’t).
I have to agree with you on the over engineering and layers of abstraction which stop making sense over time. At the same time I’ve seen people abusing the application context and try to reinvent the wheel in a worse way rather than using easy to read annotations. People care less about doing it the right way. Many who care about doing it the right way but don’t understand things well, go so far off the deep end that we end up with unnecessary abstractions.
That’s fair. I often say similar about php. Php, to me, is fine. But for 20 years it was everyone’s first language, and it’s the language of one-person-bands, so there’s a lot of really bad legacy php out there.
Java also has a great community. I don’t know about c#, but I joined my local JUG because of the community and the endless depths and plasticity of the language.
The local .NET user groups in my region have dried up over the last decade, but we used to have a few great ones, and yearly regional code camps. The community that I’ve dealt with has always been great.
That’s why JavaScript and Python projects are also memed and a nightmare. Not because they’re bad, but because it’s so popular a huge amount of amateur code exists.
Ikr but some genius made 5 layers of abstraction for a home brew object mapper (no, no tests at all). Also time consuming gradle runs (+buttload of RAM) really adding salt to the wound lmao.
C# is great tho. Java not so much
Java is a great language but since most people work with it and most people don’t give a shit about best practices, we see messy java code everywhere. It’s an easy language to write shit code in.
I think Java ecosystem is more about ‘best practices’ (in the most enterprisey meaning) than common sense and good coding. That is why everything in Java gets so over-enigeered. Abstraction over abstraction. XML, SOAP, beans, factories of factories at every corner.
At least that is my feeling, as an sysadmin (fluent in some other programming languages) who occasionally deploys those monstrosities.
Compare that to PHP apps. They also tend to be a mess, but in a completely different way. No ‘best practices’ are common here. Just a pile of spaghetti code, that does the thing it is meant to (until it doesn’t).
I have to agree with you on the over engineering and layers of abstraction which stop making sense over time. At the same time I’ve seen people abusing the application context and try to reinvent the wheel in a worse way rather than using easy to read annotations. People care less about doing it the right way. Many who care about doing it the right way but don’t understand things well, go so far off the deep end that we end up with unnecessary abstractions.
That’s fair. I often say similar about php. Php, to me, is fine. But for 20 years it was everyone’s first language, and it’s the language of one-person-bands, so there’s a lot of really bad legacy php out there.
Java also has a great community. I don’t know about c#, but I joined my local JUG because of the community and the endless depths and plasticity of the language.
The local .NET user groups in my region have dried up over the last decade, but we used to have a few great ones, and yearly regional code camps. The community that I’ve dealt with has always been great.
That’s why JavaScript and Python projects are also memed and a nightmare. Not because they’re bad, but because it’s so popular a huge amount of amateur code exists.
yes LINQ is the best
deleted by creator
I don’t even like Microsoft, but god damn do I love C#. I use it for non .net projects and it’s great
Having to work with legacy overengineered java services for the past year, yep i keep wondering why it’s not six feet under already.
I assure you working with any legacy over engineered system is a pain.
Yup I’m seeing similar issues in python. Twelve layers of subclasses
Ikr but some genius made 5 layers of abstraction for a home brew object mapper (no, no tests at all). Also time consuming gradle runs (+buttload of RAM) really adding salt to the wound lmao.
Everybody thought they were, didn’t they? That’s always how it goes it seems.