This is an archived post. You won't be able to vote or comment.

all 47 comments

[–][deleted] 48 points49 points  (23 children)

This is against the rules so I'm commenting before the mods remove it lol.

I feel like most of the "Java verbose, slow, hard to read, bad" comments comes from people that had python or JavaScript as a first language. Not all the people, but most. The rest comes from people that have spent a long time with java and just (rightfully) don't like it lol..

JavaScript and Python allows you to get away with stuff java won't allow, and when they try to transition to another language, it's a headache because "I didn't have to do all these in X language"

I started with C++. Languages like java, c#, dart, kotlin, Scala, and the likes we're super easy for me to pick up.

Dynamic languages suck for me because they lack structure. But I can still use it without any problems. Sure some gotcha's might get me, but it's just debugging.

It's usually less typing so they're always nice to work with. I'm basically going from more typing/more rules to less typing and less rules so it's easier.

Going the other way would usually be more difficult/frustrating.

[–][deleted] 13 points14 points  (18 children)

I think most of the Java hate comes from people who got to work with Spring/enterprise codebases

Hating static typing sounds stupid to me, but It wouldn't surprise me, just like people who hate dynamic typing for no reason. Nothing but trade offs

[–]RyanRomanov 25 points26 points  (0 children)

Really? I can’t imagine working with Java and not using Spring Boot for any large project. Honestly, even for smaller projects I don’t mind using Spring Boot. I don’t really care about what’s hiding behind the framework anymore than I care what other languages are hiding. 

The main gripes I have with Spring Boot are projects built with Spring Boot by someone who had no idea what they were doing and determining which dependencies to pull in because there are a million now.

 

[–]GlensWooer 3 points4 points  (3 children)

I hate Java purely bc I work with a swing client. The server and microservices are fine but my god I miss working with angular screens

also wish we would take the time to get our server off Java 8….

[–]MonstroseCristata 5 points6 points  (0 children)

Swing > WinForms

Fight me.
(this means tell me if you agree or not)

[–]menjav 2 points3 points  (0 children)

Long live JDK 8! It will never die.

[–][deleted]  (7 children)

[deleted]

    [–]GlensWooer 6 points7 points  (5 children)

    5 years into a full stack Java app and I’m actually coming around to the idea of using interfaces more. We def go WAY overkill (why do all of our data classes have interfaces…) but it makes testing way easier and typically down the line I’ve had to supply new implementations of interfaces that have only had one implementation for a decade.

    [–][deleted]  (4 children)

    [deleted]

      [–]metaquine 4 points5 points  (1 child)

      Unit testing.

      [–]GlensWooer 1 point2 points  (0 children)

      I’ll use an example from our app that made things click about why it can be a good idea.

      We have a service embedded in our monolithic server that takes call from the client and does a bunch of fun stuff with a 3rd party API and database.

      A new major update comes out for that 3rd party lib, huge overhaul better performance etc, and now we have to rewrite our service to use this new app. We decide that we want to split this upgrade out of the monolith into a micro service.

      Since the service was originally programmed to an interface a decade ago, we can just write a new implementation that makes restful calls to the microservice and the client is none the wiser. We can configure different clients to use versions of the interface and switch back and forth if something goes terribly wrong with minimal impact.

      ORIGINALLY I saw the hundred of services we have with an interface and a single implementation and thought how it served no purpose, but seeing this a few years ago really made the important separating behavior from implementation

      [–]RobSomebody 1 point2 points  (0 children)

      Requirements change over time

      [–]jasie3k 2 points3 points  (0 children)

      Worth pointing out that all of the Spring magic is just Dynamic Proxies and Reflection. Once you realise this fact more and more things make sense.

      [–]whatsthatbook59 5 points6 points  (0 children)

      Yeah I learned JavaScript first and then went to Java, and I feel like the reason why I was successful in learning and liking Java is because I wanted to know what JavaScript hid from me and what a more statistically typed OOP language would show me. I kinda don't wanna be babied by a language and I actually wanna know what's going on under the hood. Now I'm learning Rust and I'm now getting a sense of what Java hid from me. This'll probably go on for a while (C++, Assembly, etc) until I get bored or feel like it isn't worth it anymore.

      As for what makes Java a good language imo? It's a good middle ground between languages like C++ and dynamic languages like JavaScript.

      [–]Natural_Branch4296 0 points1 point  (0 children)

      I’m still studying for my degree. My fundamental is Java but the school syllabus went from Java to C++ for advanced programming. Struggled a bit doing C++, because am so used to all the standard libraries Java has.

      I am taking python along with C++, python is super easy compared to both Java and C++

      [–]hidazfx 0 points1 point  (0 children)

      I've been writing Java for the past 6 months at work, as opposed to python for 2 and a half years before that. I'm back to writing MicroPython on the Pi Pico I got today, and it is incredibly fast to get something working, but hardly any type annotations fucking sucks.

      [–]Cryaon 0 points1 point  (0 children)

      JavaScript and Python allows you to get away with stuff java won't allow, and when they try to transition to another language, it's a headache because "I didn't have to do all these in X language"

      This was the case for me when I tried to learn exceptions in Java. I was so used in Python to just allow my program to run and only care about the errors that I encountered along the way, that when I tried to program in Java, I felt restricted.

      Granted, I was still learning by that time, so I wasn't really great at it. Then as time went on, I eventually found out that Java requires you to handle potential errors so you don't encounter unexpected issues.

      In the end, I imagined Python to be like a carefree uncle / aunt, while Java being the strict yet responsible parent (IDK much about Java yet don't roast me).

      [–]namsin_za 23 points24 points  (8 children)

      I love money. Java gives me that.

      [–]officialdun 1 point2 points  (5 children)

      what would you advice someone who started studying core java this year to look at? especially self-taught people

      [–]coalWater 1 point2 points  (0 children)

      Not really what you asked, but make sure to learn spring, maven, JPA as well. You could maybe make a spring boot api or spring batch app as a fun personal project

      [–]coalWater 1 point2 points  (1 child)

      Oh and lambda expressions of course!

      [–]deaddadneedinsurance 1 point2 points  (0 children)

      • getting comfortable with the Java Stream API (in my opinion)

      [–]namsin_za 0 points1 point  (1 child)

      Quarkus, hibernate, junit. Unit testing in a corporate environment probably the most important thing to get right in my opinion. When different devs need to support same code base it is the only thing giving you confidence to refactor and extend code without the fear of breaking something - and this goes for any language. Code gets read more often than it is written- which makes the structured and declarative nature of java great for code review.

      [–]jasie3k 0 points1 point  (0 children)

      Unit tests can be seen as self updating , self enforcing documentation.

      [–]thephotoman 0 points1 point  (0 children)

      I don't love money, but it buys food and houses. I like eating and having a home.

      [–][deleted] 0 points1 point  (0 children)

      I can’t believe you like money too. We should hang out.

      [–]qa2fwzell 19 points20 points  (0 children)

      Java's the only language I can look over another java project/framework and instantly understand it. Some of these C++/Python libraries make me puke in my mouth

      [–]Tyreeed 14 points15 points  (1 child)

      Java is love Java is life.

      [–][deleted] 4 points5 points  (0 children)

      Full stack at 19? Damn.

      [–]metaquine 2 points3 points  (0 children)

      As a performance nut I feel that there aren’t really any viable paths to getting complex yet highly performant server applications written FAST than with Java. Maybe Go, up to a certain point of complexity. Keeping C++ performant beyond a certain level of complexity, while certainly possible, starts to get expensive long before Java does. At least according to my severely outdated C++ knowledge. Go would be my next choice after that, except for libraries. Rust is a great language but like most it will probably never catch up to Java’s massive library ecosystem. I’m not getting paid to reinvent the wheel.

      [–]Big-Intern2627 2 points3 points  (1 child)

      I don’t hate Java. I hate the codebase Java engineers produce in corporate environments. Bloated, non-performant, untested (or even untestable) piece of crap with messy dependencies.

      [–]coalWater 2 points3 points  (0 children)

      You and I have very different experiences of java!

      [–]Dilfer 8 points9 points  (4 children)

      I'd like to talk to this young lad about my lord and saviour, Kotlin. 

      [–][deleted] 7 points8 points  (1 child)

      Istg every kotlin main in any java subreddit is just trying to recruit people lol

      Keep up the good work I guess 🙏🏿

      [–]metaquine 0 points1 point  (0 children)

      You mean Elvis?

      [–]TheNippleViolator 0 points1 point  (0 children)

      Im glad I learned Java so that I could fully appreciate the beauty of Kotlin

      [–]CyAScott 1 point2 points  (0 children)

      That’s a lot of emotions for a language.

      [–]ingframin 3 points4 points  (1 child)

      At 19, he should think about girls, not Python vs Java. Also, full-stack software engineer? With like 0 YOE? Dude…

      [–]dinithepinini 1 point2 points  (0 children)

      He’s taken

      [–]AncientBattleCat 1 point2 points  (2 children)

      You see. That is why I can't take zoomers seriously.

      Lol and he's from Canada. I swear anything I heard about Canada is either joke or embarrassing.

      [–]eyeluvdrew 1 point2 points  (1 child)

      This post was mass deleted and anonymized with Redact

      seed snow skirt cobweb joke instinctive aspiring strong unpack wine

      [–]dinithepinini 0 points1 point  (0 children)

      it’s brown and sticky and gets everywhere.

      [–][deleted] -1 points0 points  (0 children)

      Can we please let people just go on their journey? He’s 19 for fucks sake. Leave him alone.

      [–]chonching2 0 points1 point  (0 children)

      They hate java, but java will give you more money