Some of us try to understand what we’re doing, rather than just copy/paste. It’s easy to discount how difficult learning the basics of something is when you’re already past it.
That said, I think it highlights everything I hate about Java:
public class MyClass {
Why does it need to be a class? I’m not constructing anything?
public static void main(String[] args) {
Why is this a method? It should be a top-level function. Also, in most cases, I don’t care about the arguments, so those should be left out.
System.out.println(“Hello world!”);
Excuse me, what? Where did System come from, and why does it have an “out” static member? Also, how would I format it if I felt so inclined? So many questions.
And here are examples from languages I prefer:
C:
#include “stdio.h”
Ok, makes sense, I start with nothing.
int main() {
Makes sense that we’d have an entrypoint.
printf(“Hello world”);
Again, pretty simple.
Python:
print(“Hello world”)
Ok, Python cheats.
Rust:
fn main() {
Ooh, entrypoint.
println!(“Hello world”);
I have to understand macros enough to realize this is special, but that’s it.
In C, Python, and Rust, complexity starts later, whereas Java shoves it down your throat.
It’s like 5 lines of trivial code
Some of us try to understand what we’re doing, rather than just copy/paste. It’s easy to discount how difficult learning the basics of something is when you’re already past it.
And most IDEs will autogenerate it for you.
That said, I think it highlights everything I hate about Java:
Why does it need to be a class? I’m not constructing anything?
Why is this a method? It should be a top-level function. Also, in most cases, I don’t care about the arguments, so those should be left out.
Excuse me, what? Where did System come from, and why does it have an “out” static member? Also, how would I format it if I felt so inclined? So many questions.
And here are examples from languages I prefer:
C:
Ok, makes sense, I start with nothing.
Makes sense that we’d have an entrypoint.
Again, pretty simple.
Python:
Ok, Python cheats.
Rust:
Ooh, entrypoint.
I have to understand macros enough to realize this is special, but that’s it.
In C, Python, and Rust, complexity starts later, whereas Java shoves it down your throat.