I’m sorry just as a matter of policy I’m going to have to downvote you for saying you like java. Nothing personal.
Comment on Anon tries programming in Java
lennivelkant@discuss.tchncs.de 18 hours ago
Aside from the general stupidity, Java is a heavily front-loaded language in my experience. I’m not going to engage in any tribalism about it or claim that it’s better or worse than others. As a matter of personal taste, I have come to like it, but I had to learn a lot until I reached a level of proficiency where I started considering it usable.
Likewise, there is a level of preparation on the target machines: “Platform-independent” just means you don’t have to compile the program itself for different platforms and architectures like you would with C and its kin, as long as the target machines have an appropriate runtime installed.
Libraries and library management is a whole thing in every general-purpose language I’ve dealt with so far. DSLs get away with including everything domain-specific, but non-specific languages can’t possibly cover everything. Again, Java has a steep learning curve for things like Maven - I find it to be powerful for the things I’ve used it in, but it’s a lot to wrap your head around.
It definitely isn’t beginner-friendly and I still think my university was wrong to start right into it with the first programming classes. Part of it was the teacher (Technically excellent, didactically atrocious), but it also wasn’t a great entry point into programming in general.
frayedpickles@lemmy.cafe 16 hours ago
lennivelkant@discuss.tchncs.de 14 hours ago
So you’re going to stride past the part where I say “I’m not going to […] claim that it’s better or worse than others”, ignore the bulk of my comment on Java being hard to get into, make a point of declaring you’ll downvote for stating a personal opinion, then pretend it’s “nothing personal”? I’d be curious how that makes sense in your mind.
Anyway, like I said, I see no point in petty tribalism. I like Python and C too - that’s not mutually exclusive. I hope you have a pleasant, Java-less day :)
frayedpickles@lemmy.cafe 12 hours ago
I was attempting to combine my genuine belief that nobody has ever written a java app that is any good along with humor. As an end user java has always been the scourge of human existence. I’ve never written a line of java code and have no opinion on that.
lennivelkant@discuss.tchncs.de 10 hours ago
I’m not sure you’d even notice all apps that are made with Java, particularly Enterprise Web apps. But yeah, if you’re going for humour, maybe jokingly shitting on people’s opinions isn’t the safest bet.
MooseTheDog@lemmy.world 15 hours ago
Minecraft is a decent example of a good java program. People jump to the first silly reason to disregard it. Cope.
frayedpickles@lemmy.cafe 12 hours ago
You seem very butthurt over a joke, be chill
CompassRed@discuss.tchncs.de 16 hours ago
Python and Java are barely comparable. I adore both languages equally and use them about the same amount at work. They are just different tools better suited to different tasks.
frayedpickles@lemmy.cafe 12 hours ago
Care to expound? Why barely comparable? I’d say 90s java and today’s python fill a similar niche of barely functional apps with performance issues.
ebc@lemmy.ca 15 hours ago
I’m not a Java dev, but I know enough of it to fix simple bugs in the backends I work with. My main issue with it is that 99% of the code doesn’t seem to do anything. The clear, obvious place that looks like it handles the feature you’re looking for? None of it does anything! It just instantiates another class from God knows where to actually do the work. I swear I spend most of my time in Java projects just looking for the damn implementation in a sea of AbstractSingletonFactoryBean shit.
lennivelkant@discuss.tchncs.de 13 hours ago
The dev culture certainly contributes to the problem. In the attempt to modularize, isolate functionality from expectations and create reusable code, a mess of abstraction patterns have sprung up.
I get the point: Your logic shouldn’t be tightly coupled to your data storage, nor to the presentation, so you can swap out your persistence method without touching your business logic and use the same business logic for multiple frontends. You can reuse parts of your frontend (like some corporate design default structures) for different business apps.
But you can also go overboard with it, and while it’s technically a dev culture issue rather than a language one, it practically creates another hurdle to jump if you want to use Java in an enterprise context. And since that hurdle is placed at the summit of the mountain that is Inheritance, Abstraction and Generics… well, like I said, massively front-loaded.
Once you have a decent intuition for it, the sheer ubiquity makes it easier to find your way around other projects built on the same patterns, but getting there can be a confusing slog.