I also think Java is shit, but if you manage to get a NullPointerException while writing a hello world program, maybe anon is just not cut out for computers?
Anyone who knows me knows that I hate Java with the fire of a thousand suns, but this is just sad. Most of these are true of any programming language. There are plenty of legitimate reasons to hate Java besides the fact that its concurrency utilities are as utterly shite as those of its 90s contemporaries, like the fact that it does not support multiple inheritance, or remote interface implementation, or any form of namespacing besides the goddamned filesystem, or unsigned integers, or string formatting. Or you could rant about the primitive type/object dichotomy and how you can’t use primitive types in generics, or the fact that type erasure is a thing and you can’t return a generic type from a method because javac is too stupid to remember what generic parameters you passed to a class, or the JVM’s atrocious memory efficiency, or the fact that it’s not backwards compatible thus requiring end users to install multiple versions of the JVM for different projects, or
My inner mathematician respects Java. The first step in any problem is defining your universe
Java
Thats your first mistake bucko
Can anyone who’s actually dealt with Java tell me how much Anon is exaggerating?
I’m pretty sure Java doesn’t have pointers, so writing a hello world application isn’t gonna fuck up nearly that hard.
The one thing he forgot though is that your source file is probably in the folder
com/companyname/net/classes/factory/factoryfactory/worker/lib/bin/refresh/jdk/model/ui/closebutton/press.java
And spread out among a bunch of other directories, and the java file is like…3 lines. But there are 10k files spread all around directories like this that are all 3 lines a piece with a class definition.
Everything in Java is a hidden pointer
95% exaggeration. Here is reality:
- yeah you need main class coz it’s OO-language. Though, not required anymore, which should’ve been done once Java got scrip language capabilities (jshell) back in JDK 9. But as of today not required anymore
- imports exist in most if not all languages. Gotta be insane writing them manually in 2010 let alone 2024
- installing Java runtime (JRE) is as simple as installing any app. Though for installing JDK you need 5 mins for setting PATH. Think about JDK as like TSC or Webpack and JRE as a Browser. I’d argue installing and configuring JDK is simpler than TSC or Webpack
- Unless you doing some non-trivial multi-threading your stack trace will tell you exactly where is your NPE. You gotta be as blind as my teammates to spend more than 1 minutes to find where it is coz it literally tells you file and line numer where Exception occurred
- I mean, yeah if you use IDE from 2000 it will look like it. IntelliJ looks modern, though I don’t like the fact latest versions look like VSCode
- I hardly reach 3G of deps from all 10 projects I have on my workstation.
- IDK what anon means by ecosystem here, Java ecosystem is quite standard across the board. JDK(std lib), Maven/Gradle(deps, build, publishing), Spring Framework (all sorts of blueprints and solutions to standard app level problems), Hibernate/JPA (ORM), JUnit+Mockito (testing). These are tools and libs used in 90% of projects I worked on. Of course there will be more depending on project needs. Layers? It’s not like language imposes any layers whatsoever. It’s just common practice to have 3-4 layers and some glue in-between.
- don’t do GUI in Java it sucks and will suck until Java gets string interpolation. Hopefully soon
- concurrency is actually the only thing which is really bloated in Java. Which will change with next LTS version if I remember correctly. And it’s not that hard if you actually read the f manual and not just “try and hope”. Again it will become much more efficient and easier to follow soon. As of now - yeah, not trivial. But people mostly prematurely optimize, so karma
- Java is kinda have 20 ways to do same thing but actually no. Java built with idea of providing simple building blocks. Then it provides more specific API built on top of those building blocks. It allows to have API which solves typical problems and provides capability to solve custom problems with those building blocks. People often confuse this as many ways to do one thing but it’s like saying “I can have byte array why I need string data type”. Those are different levels of abstraction
Edit: typos
I’ve worked on a corporate project with multiple Java services, anon isn’t really exaggerating. Java can be a hell scape at times
They forgot to mention that production Java applications apparently need to log a certain minimum number of completely meaningless stacktraces per hour to work properly. Or at least I assume that is the case from the fact that all of them do that.
- a hello world doesn’t need libraries in Java
- installing JDK takes at most 5 steps, depending on the OS
- a nullpointerexception is more likely the developper’s fault (unassigned value, calling a function on a null object)
- IntelliJ is easy to install and modern (granted, other IDEs are very ancient)
- developping GUI apps is a PITA, no matter the ecosystem (generally)
The rest is more or less spot on (no idea about concurrency issues though)
nullpointerexception is more likely the developper’s fault
Of course it was the developer’s fault. But it’s absurd a language without pointers throws an error about pointers.
I guess naming it NullReferenceException will revolutionize industry
Having error messages that match the language is actually helpful. A reference and a pointer aren’t exactly the same.
Like if Rust output “invalid word size” on a type mismatch.
Am I weird for liking Java? I feel like it just makes so much more sense than other languages.
My old boss is one of the 3 initial creators of Java. He ran our department the same way this greentext reads.
He was also a paedo. You can figure out the rest if you dig.
Are you saying OP is…
No.