this post was submitted on 13 Nov 2024
811 points (96.1% liked)
Greentext
4385 readers
1293 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:
- Anon is often crazy.
- Anon is often depressed.
- Anon frequently shares thoughts that are immature, offensive, or incomprehensible.
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
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
This is getting a little better nowadays.
Things to notice:
public static
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.
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?
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.
No. From JEP-445:
Without the preview feature enabled, it is not an optional part of the method signature. It specifically looks for a
main(String[])
signature.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?
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”?
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
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.
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.
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()
topublic static void main(String[] args)
.