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?
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.
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?
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.
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”?
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.
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.
“No, I don’t use type annotations because they don’t actually do anything. In fact I purposefully give this parameter different types for different behaviors. How is that confusing?”
I got the impression they skipped the hello world cause it was too easy and they wanted to get right to writing their app, so they moved on to more advanced stuff without having a real grasp of the basics
$ 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
Python:
C:
#include <stdio.h> int main() { printf("Hello World!"); return(0); }
EDIT: POSIX-compatible shell:
echo "Hello World!"
PHP:
Python2 is only one character longer:
And you get proper data types too.
Shell is only meant for duct tape scripts, you know to tie two regular compiled programs together
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:
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”?
Microsoft Java is a one-liner these days.
> cat program.cs Console.WriteLine("Hello, World!"); > dotnet run Hello, World!
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
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
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.
**kwargs
“No, I don’t use type annotations because they don’t actually do anything. In fact I purposefully give this parameter different types for different behaviors. How is that confusing?”
Python has its drawbacks but it also has a pretty useful standard library so as a language for small scripts, one can do much worse
It is possible to dislike both. For me SmallTalk-like languages are peak. Message passing for life!
I got the impression they skipped the hello world cause it was too easy and they wanted to get right to writing their app, so they moved on to more advanced stuff without having a real grasp of the basics
He types REALLY slow.