818
top 50 comments
sorted by: hot top controversial new old
[-] cows_are_underrated@feddit.org 1 points 53 minutes ago

Trying to print hello world is actually pretty easy

public static void main[Args]{ SystemPrintOutLn("Helli world"); }

That's should be it. But I can devinetively agree. For simple tasks Java is to complex because you need to do to much stuff prior to it. If you have more complex things its actually not that bad since if you have a good polished infrastructure it can be quite good.

[-] Drz@feddit.uk 5 points 15 hours ago
[-] Batman@lemmy.world 28 points 1 day ago

My inner mathematician respects Java. The first step in any problem is defining your universe

load more comments (1 replies)
[-] lurklurk@lemmy.world 27 points 1 day ago

Hello World

30 minutes of boilerplate

writing imports

$ cat <<EOF > Hello.java
public class Hello {
  public static void main(String args[]) {
    System.out.println("Hello world!");
  }
}
EOF
$ java Hello.java
Hello world!

ok

[-] sugar_in_your_tea@sh.itjust.works 18 points 1 day ago* (last edited 1 day ago)

Python:

print("Hello world!")
[-] dch82@lemmy.zip 10 points 1 day ago* (last edited 1 day ago)

C:

#include <stdio.h>

int main() {
    printf("Hello World!");
    return(0);
}

EDIT: POSIX-compatible shell:

echo "Hello World!"
[-] derpgon@programming.dev 4 points 13 hours ago
[-] PushButton@lemmy.world 2 points 10 hours ago

Rust:

Still fighting the burrito check fil er
load more comments (2 replies)
[-] MooseTheDog@lemmy.world 26 points 1 day ago

Welcome to java, we have a couple unconventional ways of doing things, but overall I'm like every other mainstream oo language.

People: AHH! Scary!

Welcome to python. your knowledge of me wont help you elsewhere as my syntax is purposefully obtuse and unique. Forget about semicolons, one missed space and your code is as worthless as you after learning this language.

People: Hello based department

[-] Classy@sh.itjust.works 9 points 1 day ago

Oh my god I got fucked by a python script once because of a single space. It took forever to figure out what went wrong

[-] greenkarmic@lemmy.ca 1 points 1 hour ago

You can't use Python without a linter. I have everything setup in vscode to use tabs yet copilot autocomplete insists on inserting random spaces everywhere creating indentation errors. The linter is essential to quickly see and fix them.

[-] TonyOstrich@lemmy.world 2 points 15 hours ago* (last edited 15 hours ago)

I refuse to code in Python without a really good IDE and linting like PyCharm. When using PyCharm it's very rare I have issues like this, because it catches them in one way or another, but I notice it catches those kinds of issues a lot when I'm coding soooooooo....

I have also setup the IDE to specifically color code comments like

' # End If and ' # Next

in the same style as their beginning statements as I find it much easier to visually scam through code when they are present.

load more comments (3 replies)
[-] JackbyDev@programming.dev 7 points 22 hours ago

This is getting a little better nowadays.

> cat Hello.java
void main() {
    System.out.println("Hello, World!");
}
> java --enable-preview Hello.java
Hello, World!

Things to notice:

  1. No compilation step.
  2. No class declaration.
  3. Main method is not public static
  4. No String[] args.

This still uses preview features though. However, like you demonstrated already, compilation is no longer a required step for simplistic programs like this.

[-] Valmond@lemmy.world 1 points 9 hours ago

System.base.stuff.output.out.printfunctions.println

Or so it felt every time you wanted to dump something into the console...

[-] cashew@lemmy.world 4 points 20 hours ago* (last edited 19 hours ago)

Microsoft Java is a one-liner these days.

> cat program.cs
Console.WriteLine("Hello, World!");
> dotnet run
Hello, World!
[-] PanArab@lemm.ee 1 points 14 hours ago* (last edited 14 hours ago)

Main method is not public static

It must be somewhere under the hood. Otherwise, it wont be callable and it would require an instance of an object to call. Unless the object here is the Java environment?

No String[] args

They are just optional I'm sure, like C and C++. You still need them to read command line arguments.

All in all, these syntax improvements are welcome. I already moved on to Kotlin for Android development though.

[-] JackbyDev@programming.dev 1 points 14 hours ago* (last edited 14 hours ago)

Main method is not public static

It must be somewhere under the hood. Otherwise, it wont be callable and it would require an instance of an object to call. Unless the object here is the Java environment?

No. From JEP-445:

If an unnamed class has an instance main method rather than a static main method then launching it is equivalent to the following, which employs the existing anonymous class declaration construct:

new Object() {
    // the unnamed class's body
}.main();

No String[] args

They are just optional I'm sure, like C and C++. You still need them to read command line arguments.

Without the preview feature enabled, it is not an optional part of the method signature. It specifically looks for a main(String[]) signature.

[-] PanArab@lemm.ee 2 points 13 hours ago

I am not in the mood to read a technical document, but I don’t think the resulting binary/byte code should be different between the two “hello world” programs. But then again, why not?

Without the preview feature enabled, it is not an optional part of the method signature. It specifically looks for a main(String[]) signature.

Ah ha! So that’s what’s going on here. They almost got it right. They had the potential to make a lot of the boilerplate optional or implicit under relevant circumstances, but instead the language has two explicit switchable modes.

Can I write a Java application in “preview feature”?

[-] JackbyDev@programming.dev 4 points 12 hours ago* (last edited 12 hours ago)

I mentioned this uses preview features twice in the first comment regarding this, so I don't know why you're "ah ha"ing. Also you don't need to read the technical document, I've quoted the entirety of the relevant text. I provided it as a citation.

You seem confused about preview features. It's not a switchable mode to reduce boiler plate. I find the name very clear, but here is more information. From JEP-12

A preview feature is a new feature of the Java language, Java Virtual Machine, or Java SE API that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use; this may lead to it becoming permanent in a future Java SE Platform.

As an example, JDK 17 added pattern matching for switch statements as a preview, and by JDK 21 it was added as a full fledged feature that doesn't require usage of the enable preview flag. Presumably in some future release of Java this feature will not require the usage of a flag.

[-] PanArab@lemm.ee 1 points 12 hours ago* (last edited 7 minutes ago)

It is pretty late for me. Sorry. And thank you for your patience. Repeating it three times helped.

It will be interesting to find out if the resulting binary is the same or not and what’s possible once it matured.

[-] JackbyDev@programming.dev 2 points 12 hours ago

Yes, because it's genuinely not a static method. It's an instance method. Also the signature is different. It's not some sort of mere syntactic trick that translates void main() to public static void main(String[] args).

load more comments (2 replies)
[-] mlg@lemmy.world 14 points 1 day ago

Forgot the JVM eating the entire machine's RAM for breakfast

[-] nova_ad_vitum@lemmy.ca 16 points 23 hours ago

JVM is like a gas. It expands to fit it's container, however large that is.

[-] yamanii@lemmy.world 9 points 1 day ago

I still think Java is good for teaching newbies precisely because it will throw an error quickly if they are doing it wrong.

[-] DerArzt@lemmy.world 6 points 22 hours ago

Rust over there like

Hey kid, tired of putting off your problems?

load more comments (2 replies)
[-] Zementid@feddit.nl 14 points 1 day ago

I really enjoyed the text.

From the perspective of a python programmer it all seems valid.

A Java-Dev would probably write the same about an embedded engineer.

[-] MajorasMaskForever@lemmy.world 6 points 1 day ago

As embedded dev, the stack trace alone scares me. It would be funny to watch the Java runtime blow the 8 frame deep stack on a PIC18 tho

load more comments (4 replies)
[-] arc@lemm.ee 7 points 1 day ago

Could be worse, could be programming Javascript (or Typescript).

[-] jol@discuss.tchncs.de 7 points 22 hours ago

An text file with a block and nothing else, containing a console log, is all you need. You already have all the boilerplate to run it in any computer. No extra dependencies, no installing anything. Literally just a notes editor app. This is a valid HTML file:

<script>
console.log("Hello World")
</script>
[-] arc@lemm.ee 1 points 2 hours ago

By that logic we should all program with .bat files

load more comments (1 replies)
[-] Seeders@sh.itjust.works 2 points 18 hours ago* (last edited 18 hours ago)

I love javascript. Shit. Just. Works.

Even if you, the programmer, are a complete fucking moron, by god javascript will try to make your program run as long as possible.

[-] arc@lemm.ee 1 points 2 hours ago

Javascript doesn't "just work". It's a language originally designed to glue actions to html elements and it is fundamentally broken in ways that will be never be fixed. Weird syntax, weird type coercion, horrible base types & functions, surprises galore. Even Typescript, which is basically a precompiler, is just JS with some type checking. The only reason anyone uses either is because it is ubiquitous - people have to use it.

[-] herrvogel@lemmy.world 2 points 12 hours ago

Javascript is a beautiful language where '3' - 1 = 2 but '3' + 1 = '31'.

[-] ReluctantMuskrat@lemmy.world 2 points 15 hours ago

Even if you, the programmer, are a complete fucking moron, by god javascript will try to make your program run as long as possible.

I mean it might not work as intended but it'll run and not complain!

[-] Seeders@sh.itjust.works 1 points 15 hours ago

god damn right

[-] Malfeasant@lemm.ee 8 points 1 day ago

Must be several years old - otherwise, javafx deserves quite a bit more ire.

[-] AusatKeyboardPremi@lemmy.world 39 points 1 day ago

I might have agreed a decade or two ago, when I knew no better. But today, I find the tribalism surrounding programming languages comical.

I don’t particularly like Java, but I use it because it pays the bills. Similarly, I use C++ (which I prefer) when my work requires it.

[-] SorteKanin@feddit.dk 33 points 1 day ago

I don’t particularly like Java, but I use it because it pays the bills. Similarly, I use C++ (which I prefer) when my work requires it.

I mean, anon is not arguing against that. They're saying the language is shit regardless of how much it is used in business. I don't think they are entirely wrong.

load more comments (5 replies)
[-] babybus@sh.itjust.works 37 points 1 day ago

If it took anon 30 minutes to write hello world in java, programming is not for anon.

[-] pinkystew@reddthat.com 17 points 1 day ago

We bow to your wisdom, wise gatekeeper

load more comments (6 replies)
load more comments
view more: next ›
this post was submitted on 13 Nov 2024
818 points (100.0% liked)

Greentext

4386 readers
1065 users here now

This is a place to share greentexts and witness the confounding life of Anon. If you're new to the Greentext community, think of it as a sort of zoo with Anon as the main attraction.

Be warned:

If you find yourself getting angry (or god forbid, agreeing) with something Anon has said, you might be doing it wrong.

founded 1 year ago
MODERATORS