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.
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.