118

When someone hears that I like Java, they say the following:

"But it is sooooooo slow! Use something like X or Y."
"But it is sooooooo repetitive! You could write the same application with less code in X and Y."
"It takes up so many resources on the computer. C++ is better."
"Saying that Java is good just because it runs on everything, is saying that anal sex is good just because it works on everyone!"

Please stop with the Java hate. Java is great for some applications, while other programming languages are great for other types of applications. You don't hear me saying "C++ is soooooo bad because I have to recompile for every system!"

Comments
  • 38
    BRAINFUCK is TERRIBLE. every single time i'm writing a backend for a website, i try to use it like other backend devs, but IT FUCKS MY BRAIN. like whenever i try to import a library it takes up all of my day. DEBUGGING is HELL, it's practically giberish. FUCK.
  • 19
    @calmyourtities Congratulations, you're legally insane.
  • 6
    @IllSlapU if you downvote my comment -.- :3

    I'll leave now
  • 29
    Java is great for android development. But Kotlin is better and you can write same app with less code :D

    /* Running away */
  • 12
    @rostopira /* Runs afterwards with a warhammer */
  • 4
    I agree with this assesment, and not just because I happen to like java, but because it's true.
  • 3
    Sometimes I love java and other I absolutely hate it. But ultimately I realize that language is just means to an end product. It is how and where you use it, that matters.
  • 4
    @vexusia can I have some of that popcorn? I have Pepsi that I can share in return
  • 4
    @vexusia @gitpush heartless bastards. 🤣🤣🤣
  • 3
    @yendenikhil because bro, food or fight? Choose what is right :D
  • 3
    @gitpush aww fk it. Share the popcorn..
  • 3
    @yendenikhil I knew you wouldn't disappoint me :D
  • 6
    @d3vnu11 have you never heard of Smalltalk or C# before? 🤔
  • 6
    I've been there many times - but luckily finally convinced my friends that different languages are for different purposes. I love that java because it's easier for me to architect my app using SOLID and CLEAN principles. I'm curious does python and JavaScript devs use them? My friends who code in them don't exactly have architecture in their app.
  • 2
    @chaddhag The words you said in caps. Yes. That's it.
  • 4
    But anal sex IS good, just not mainly because of compatibility.

    I’m sure some people are not compatible with anal. And physical ports are not the only form of compatibility.
  • 2
    @eArshdeep umm.. Are you ok?
  • 3
    @Singleton lol autocorrect always puts them in caps. I try to use them but I'm not that successful in my attempts. I learn something each time on how I could improve their implementation.
  • 1
    Whoa, I didn't think that I'd start such a conversation!
  • 18
    I'm going to go out on a limb and guess everyone who hates Java has had to maintain an enterprise Java codebase at some point.

    Design patterns are abused. It feels there's an endless army of halfwits who've read about design patterns somewhere and proceed to twist the codebase so they can use it.

    The staggering amount of indirection (hello stacktrace from hell) borders on comedy. This doesn't always come from your own team. It often comes from popular frameworks.

    The language simply has not aged well. Java 8 introduced streams, but the syntax is really clunky. Even JavaScript wins here when it comes to expressiveness.

    OOP quickly becomes ludicrous in medium to large teams as developers create layer after layer after layer of meaningless abstractions just because everything should be some kind of object/class (fuck you idiots). You can say these are idiot devs, but I say the language encourages idiocy.

    I *do* like other jvm languages though. Clojure and Kotlin come to mind...
  • 2
    @codebanana well said indeed.
  • 2
    java is good if you know java but there isn't a thing that you can build using java that can't be built using an alternate language or vice versa ..the difference is usually if you want to bill clients by lines of code..java is hands down the best language but if you want something to be built and manageable in a short time then java isn't the best option.
  • 3
    @bondman agreed, java can be good for Enterprise solution than hobbyist code cobbling. Having said that read what @codebanana said.
  • 2
    @yendenikhil i totally agree with what @codebanana has said , which is why I never choose java. If patterns are abused by everyone (which has been almost all the time), it means either nobody has understood patterns or noone cares as much.

    Apps built using non-java are not hobbyist code cobblers though.

    There are not as many enterprise solutions in the world anyway.The ones that are being called enterprise apps themselves are pretty modular and smaller than what qualifies to be called an "enterprise app".
  • 2
    @bondman having all this discussion, I personally use java on non web based things, due to my comfort and challenge ( I know it sounds opposite of each other). But as I started becoming more cognizwnt about the world around me and get my head away from what was in front of me ,I started dabbing into various different languages. What an exciting journey it is so far. Now I am novice in many things and master of none. Though I am happy with my progress and always thirsty for something more. Hehe. Sorry for mini rant as comment.

    tldr
    Love java hate java experiment new things.
  • 1
    I hate Java for the performance huts found in every application. If you want cross compatible and can live with it go for IT. .NET framework is barely better because of the fact it runs on windows only... Until dot net core gains more population. Cross platform just seems to kill performance. Unity. Java. Javascript.
  • 2
    I will not say you should change languages, but you have to agree with me, java is soooo verbose. 😄
  • 1
    @vhoyer what is you like verbosity?
  • 1
    @ribchinski @d3vnu11 yeah, I think I mean that, because I didn't quite understand either of you lol my English is not the best
  • 1
    📎 sorry, just lurking here
  • 1
    @d3vnu11 oh ok hahaha I thought it was just me.

    @ribchinski sorry man
  • 2
    @d3vnu11 @vhoyer I’m sorry for the typo! What I meant to say was, what if you like things to be verbose?
  • 1
    @ribchinski ooooh, now I understand....
    well if you like verbosity.... I think the problems is only yours lol have you seen a doctor? hahaha
  • 1
    Honestly the main reason why I started disliking Java is the unnecessary use of reflection because it just slows down the application.
    At work I had to use the Spring framework for a project and that application usually takes longer to start (2 - 3 seconds) than to execute the actual code (1 - 3 seconds), just because spring initializes a lot of stuff via reflection (at least for annotation based configuration, but I doubt the xml configuration is faster).
    Otherwise: use whatever fits your situation. If you have to develop for Linux while using Windows Java is a solid choice (certainly better than cross compiling).
  • 2
    @IRonnyc the feature of reflection comes with known drawbacks. So if spring uses it and that makes your program slow, then it is either your fault to use spring (in annotations way than xml) or springs (to use reflection), but definitely not java fault. For features like loose coupling and run time resolution, some sacrifices are made. Having said that, when Google decided to use java for Android development, they did something quite clever, compile time reflection, look for Android's R.java class to know more.

    tldr: if you hate Java due to reflection, that's fault of you choosing spring (or the way spring implemented in your project) without understanding the technical requirement (like speed of starting app).

    Also, other than going to lower level programming languages, do you know any language which does this feature in better way?

    Easy to hate Java, but hate it for actual reason and not just to follow crowd, blaming is easy, finding solutions makes you champion.
  • 4
    @yendenikhil maybe I didn't communicate my point precisely. I don't hate Java itself. I just dislike using Java when it involves reflection.
    And as I usually don't use Java in private projects (I just prefer C/C++ and python) I only use it at work, where I have to use spring.
    It's pretty much just negative association.

    Java definitely has its perks. Depending on what you're doing it can even be faster than C/C++ (if I remember correctly matrix multiplication is faster in Java).

    1) I never said I hate it, I said dislike
    1.1) stopped liking would have been more precise
    1.2) which is mostly because when I use Java I'm forced to throw reflection at non existent problems
    2) Java is usually absolutely fine and handles some stuff better than C/C++
    3) as I said: use what fits your situation.
  • 2
    @IRonnyc 😁 I can live with that..
  • 3
    @d3vnu11 I ❤️❤️❤️❤️ Java and even more the fact that it forces OOP :3 objects are love, objects are life (and so is abstraction)

    I just love how intuitive Java is(when used properly), I don't even have to think if want to use a Map an ArrayList or an array (I usually go with ArrayList and sometimes with Map but almost never with array, Collections are way easier and faster to work with)
  • 2
    @D3add3d especially with new streams API
  • 1
    @vlatkozelka I often feel like reflection is just something to fix bad design. Maybe I just miss some big advantage.
    Having spring create all classes using reflection just feels wrong I guess. Especially if the application takes multiple seconds to start because of the heavy use of reflection.
  • 3
    Different purposes different languages why waste time to hate a language just spread love.
Add Comment