Java

What is wrong with it? I can write a variety of applications with it, mobile, web, desktop. There are libraries for everything in it. I know there are a lot of less skilled developers and Pajeets who use it, but I can manage a large team much easier with it.

Also, how does Java compare to Golang for servers? I am curious about Golang.

Other urls found in this thread:

techempower.com/benchmarks/#section=data-r12&hw=peak&test=json
twitter.com/AnonBabble

Too verbose imo. So disgusting you NEED an IDE with autosuggest.

I learned java as a first language and it wasn't bad for that. But there are multiple reasons people hate java, I think historically among non-programmers Java has been 'that slow thing on the web that never works' though that has recently come to an end (the web thing, not the reputation)

Also Java from a programming perspective is just not really interesting. The JVM can be, for its cross-platform JIT functionality, but other than that there's really not anything other languages can't do. It also makes you depend a lot on your IDE. I have a hard time just writing some Java in a text editor, compiling it, running it, done. In C or Haskell I can do that. The library names are easy to remember there, but in Java you probably need to have them suggested because you're always using a fuckton of them and some are just hard to remember (when swing, when awt?)

Also it's not really nice for anything. It's jack of all trades, master of none. (except for using a language with the JVM of course)

...

I have a number of reasons, you decide how valid they are.
Java is a true object-oriented language, stemming from a time when OO was seen as the silver bullet that would solve all complexity. As it turns out if you follow OO properly your program turns into a huge mess, and if you introduce shortcuts through the object graph you are missing the point of OO.
I like native applications for every system. With a Java program I feel like it's trying to serve the lowest common denominator and the result is equally unsatisfying on all platforms.
This is the price you have to pay for "write once, run everywhere". It's also true for all interpreted languages, but it makes distribution harder when you have to tell people "oh, you also need to install this thing from some other website". I guess you can also bundle the JVM with your program somehow, but that's rather a hack.

Java is not a true OO language, it has int, char, float. If it was a pure OO language then everything would be an object.

OK, aside form those primitive types then. But you cannot have any naked functions or primitive types floating around in global scope, everything has to wrapped up in an object.

This. I like the JVM as a concept, but even then uber-cross platform coding isn't really that big of a need. Moost modern languages are well supported enough through and through that recompilation is still trivial.

Even if I ignore everything else, that makes it Pajeet tier.
You call that a plus? Fuck having a standard lib the size of a planet.

In the end, ask yourself why almost no serious program is written in Java. And no, the entreprise shitwares aren't "serious programs".

- The language has no flow
- Obscene startup time

...

So I guess for example Haskell is Pajeet-tier too, by your standards?

Lisp is also Pajeet tier, then. Basically, anything that's not C or C++ is Pajeet tier.

Come the fuck on, it's the $CURRENT_YEAR! How dare people use anything else than C, in MY Holla Forums?

Why would you program anything when you can be like Holla ForumsJWs and go around derailing every thread on Holla Forums instead?

Get out Ramjesh. x86 Assembly is the only language worth programming in. You fucking street shitters will never learn.

You are the worst kind of streetshitter, Koothrappali.

Why do you hate freedom?

It's like you hate hardware that exists in reality.

Funny you mention that, since imaginary lambda calculus are the only worthwhile programming you can ever do.

it only work correctly on sparc cpu
otherwise you need the java virtual machine witch is slow as fuck you can compare minecraft and minetest.

Not even pajeet uses haskell.
But garbage collection does automatically exclude it from being a true general purpose language. There are some things such languages just can't do.

You're right! C is the only true language for memory leakage!

The easier question is "What isn't wrong with it?"
FTFY.

since minecraft this is not an issue anymore

Ever heard of boxing? These primitive types have corresponding classes.


Minecraft's a broken pile of cruft. It's not the JVM or Java that makes it slow, it's the way it's written.


The JVM's one of the highest performing language VMs and, given suitable tasks, easily outperform solutions written in C or C++. The good thing about it is that no one forces you to write Java for it; there's dozens of other, better languages. If you want a Java that ain't shit, use Kotlin or Groovy, if you want a Lisp, use Clojure, if you want Ruby or Python, use JRuby or JPython (gasp).


See above, also, as you said, it's true for all interpreted languages. If you write your app in Ruby or Python, you'll need to bundle a runtime or require the user to install them. This even goes for Electron-based web apps as, after all, they bundle CEF and node.js - you just don't see it.

Arguably, the JVM even has a benefit over Ruby and Python in terms of portability. While the latter usually rely on globally installing a single version of a dependency, leading to version conflicts when running multiple applications on a system, convention in the Java world is separation and configurability: You can have multiple versions of dependencies around, and the JVM doesn't care where you put them as you can specify it.

Of course, this is a bit of a complicated matter as both Ruby and Python have solutions to cope with this (e.g. Bundler for the former), but my point is that, with a Java application, you can have a single .jar containing the app and all its dependencies which is trivial to run (java -jar app.jar) and multiple apps will always peacefully coexist on the system, while some Ruby and Python apps I've seen in the wild foolishly rely on global dependencies and cause issues with other apps as a result.

Java's still prevalent in the web, though it doesn't have as much visibility as PHP. Chances are that you use a Java-based web app or API every once in a while without realizing it. In fact, if you're using GMail, at least some of the serverside tech stack it uses is Java-based. (I used to have a screenshot of a nice exception message that was passed to the client when I poked around in GMail, but I seem to have lost it...)

Technology in the JVM space has continuously evolved over the years, so using the Java EE cruft isn't the only way to write web apps: There's everything from Sinatra-like libraries to full stack solutions. And everything in between!


Also, elaborating on the performance point, here's a good example of how hilariously fast JVM-based solutions can be:
techempower.com/benchmarks/#section=data-r12&hw=peak&test=json

Note how 6 of the top 8 performers in this benchmark are Java apps.

>techempower.com/benchmarks/#section=data-r12&hw=peak&test=json

This isn't because of the language itself and you know it. Show me HPC with Java. Show me anything that needs to run on more than x86/amd64/arm not made in C/C++.

You can leak memory in GCed languages too, they just call it memory capture instead of memory leak because they're very sensitive about that. I think it's easier to leak in GCed languages as (usually) every pointer implies ownership. C/C++ programmers seem to just need valgrind while memory debugging tools are a huge industry over in Java land.

wew?

Too much reasonability ITT. I'll just leave this here.

Doing anything in Java beyond "hello world" tier programs is still a clusterfuck. Minecraft has an entire package management system built into the launcher.

Modded minecraft can take minutes just to load all those stray class files. The power of jaba XD

The modded game is that way due to the proprietary bullshit nature of what it builds on, everything has to be done using reflection and hooks which completely ruins the JIT.

...

It's like you don't like quality.