The comparison with Java is always a funny one. Consider this: import sys def main( args: list[str], ) -> int: sys.stdout.write(“hi\n”) return 0 sys.exit(main()) Apart from the call to write instead of print everything else there is a standard Python pattern for writing testable, type-safe arg-parsing code! It’s just that you don’t have to write testable, type-safe code if you don’t want to.
The example they give later in the article is also pretty verbose and includes much more "magic" than Java Example: import antigravity def main(): antigravity.fly() if __name__ == '__main__': main() I would argue that there is nothing simple about the last if-statement and will probably be very confusing for new developers.
The only thing that isn’t perfectly straightforward is “what is __name__”, but once you know how __name__ is defined…
OTOH, that example is much more complicated than needed. As a simple executable script, that would do the same thing if antigravity. Fly() actually did anything, all that is needed is:
import antigravity
antigravity.fly()
The rest is unnecessary boilerplate to provide a module that can operate either as a library or a script, which is superfluous here. Moreover, since the actual functionality it is demonstrating is all in an import hook, all you actually need (the rest just produces an error message) is: import antigravity