25

Why don't people like Java? With only a year of AP comp sci for experience, I don't know enough about it to say I do or don't like it. But it's widely used, and is an official language of Android. Are the people hating on Java just people that don't use it? Or is there something about Java that people just genuinely despise?

Comments
  • 9
    #teamjava
  • 14
    I don't understand the hate for any language, tbh. 🤷 They all have strengths and weaknesses.
  • 3
    I was a huge Java fan until I discovered dynamically typed languages like Ruby and JS. They both have pros and cons, but I feel like dynamically typed languages require less boilerplate and are more user friendly.
  • 1
    i think it's just a preferences. but sometime someone will take it to higher level like hating it so much. i love use it because it statically typed and portability. but still not like about null and other bad side.
  • 8
    I... ehh. It's nice, but the strictness and verbosity can make it arduous to write.
    public static void main(String[ ] args). System.out.println().
    Two iconic examples of how doing something simple in Java can just be painfully overspecified.
    Compare with Python:
    def main()
    print()
    I know Python doesn't meet the same use-case. But it shows my point well. Java is syntactically nice, but functionally, just not fun. It's like the helicopter mom of programming languages.
  • 5
    The reason I dislike it is that you have to have the JVM installed wherever you want to use Java, it's just bloatware to me
  • 6
  • 1
    @tahnik Java isn't really more portable than any other well written program. At some point someone had to port the JVM to whatever platform you're looking to run it on.
  • 2
    From what I heard from people Java is write once test everywhere
  • 2
    Oracle started shipping malware with the jvm.
    http://zdnet.com/article/...
  • 3
    @atomicTurtle *write once, debug everywhere

    With Java, you can write code just as platform-dependent as any other language
  • 5
    Wayyyy to fucking verbose, and very slow start up times
  • 3
    People hate it just because they can. There. I said it.
  • 1
    Too verbose, unlike Ruby. But again runs on anything. .Net Core looks more interesting nowadays but
  • 1
    @jhh2450 you behave like a professional. I like you.
  • 8
    So I am aline with the opinion that dynamic typing ia annoying as hell? I really dislike not knowing for certain what kind of result a function/method returns. Especially in JS there is so much liberty and since nobody ever wants to write doc you need to look at the code to determine a functions output which might be simple, an array of sorts or even some weird object
  • 0
    @TyloRen especially when you have to do many checks for input data just because dynamic languages doesn't enforce anything....
  • 3
    @NiPfix jup, you're right. I dislike dynamic types too. The programmer has to deal with type checking at some point which could easily be done by the language
  • 3
    I just think OOP is not actually as good of a approach to programming as some people think it is. And since Java is pure OOP, I dislike it.
  • 1
    Well I'm just wondering why you should use Java instead of C#/Mono. Better performance and more portability, what's the point of using Java then? Last time I asked, someone spoke about the IDE and another thing, so I guess that's ok for some people , but not for me.
  • 0
    I don't have too much against Java, but they've been lagging behind for a long time. Java 8 and 9 is really a lot of catch up for the last decade or so. I mean lambdas and functional style array operators are recent additions.

    I also think Java is a bit of a product if it's time, when OOP was all the rage and the silver bullets to all your programming problems.
  • 0
    I think it's just because it takes more time to code a simple project on java than in other languages, more lines...
  • 1
    It's used a lot and some people will hate it, but most people I think just listen to the "cool" haters and tag along. Just because it took you longer than 5 minutes to do your "Hello world" project doesn't mean the language is bad.
  • 0
    @stimulate actually that is not completely true. For example you have int, boolean, char, and so on, which aren't objects. In Python or Ruby that's different.

    But OOP makes sense when modularizing code. It helps to make code cleaner and better understandable.
  • 0
    @Celes it runs better on more platforms (C# is open source but I had lots of trouble because it's not yet that good supported), Java is extremely reliable and as you already said: the IDEs. They are insanely helpful and supportive to the programmer.
  • 0
    @JonStodle so? It's well tested and used very much around the world. Now we have lambdas. Just because something is new and hip doesn't mean that it is good. But lambdas have proven that they help a lot.
  • 0
    @anasshd most of it is created by your IDE.
  • 1
    @ctwx
    yes, some things are better put into objects, as you need identifiable instances of the same data layout. But other things simply should not be wrapped into objects. Objects are fine but don't get too "oriented" on them or you will easily find yourself misguided by comfortable abstractions which actually do not make true sense.
  • 1
    @stimulate sure, but I had not many occurrences. But hey,we have tons of different languages and you should use the right one for your problems. 🙂
  • 1
    @ctwx what do you mean by not very good supported? Seems like mono aupport pretty much all .Net framework :o
    About IDE, well I guess lot of guys love them, but I used them since I started programming (let's say 7 years). But now I tried Neovim and I'm feeling so much better with it. Anyway that's probably why IDE can't stand to be a good argument for a language in my head, but I still can understand that it is for others people :p
  • 1
    @Celes in my former company we wrote a big software in C# which did not work on Linux, although the Servers were primarily Linux. In the end we just used Windows servers. We used some features that weren't yet available.
    That would not have happened with Java.

    In the end a Dev use its tools he's best with. But for the broad mass the IDEs bring huge sets of features by default. 🙂 If NeoVim works for you best it's great! 👍
  • 0
    @ctwx changing of server because of missing futures, hard :( I don't know if I'm right but I think that the support is really good since Microsoft bought Xamarin. But maybe I just said shit, I'm not a C# dev after all x) but if you need futures that mono doesn't support that will be a problem anyway.
  • 0
    It's probably an edge case but it happened. Anyway, Windows Servers are easy to manage. 😅 In the end it's probably a decision based on the knowledge about different technologies in the company and personal preferences. I just prefer Java over most other languages. 😃
  • 1
    @ctwx yeah I don't see any companies saying: oh well maybe this language is more interesting here! Guys, learn it right now and go work on the next project!
    Well I shouldn't say that, maybe it happened ^^'
  • 0
    Java/JVM is trying to be a general language that solves all the problems out there. That means that it doesn't really fit anything perfectly, it's just a tool with which you can do almost anything but nothing particularly well.

    Usually more focused languages/runtimes to your specific problem/use case are far better choices, as long as you know the fundamentals in them.

    For example:
    High level lang for processing big data -> haskell
    Soft real-time -> elixir
    Productive & safe frontend development -> Elm
    Unix scripting & automation —> python
Add Comment