But (for new projects anyway) what's the point of using Python with types instead of using a real typed language like Java or C#?
But (for new projects anyway) what's the point of using Python with types instead of using a real typed language like Java or C#?
Aside from that, an advantage is that the type system is more expressive than that of Java or C#. Most common Python idioms work just the same way with or without type annotations, so you can continue to write functions that take either int or str arguments (for better or worse) and the typechecker will understand your use of isinstance and make sure everything checks out. (But there are other fully statically typed languages that are also more expressive than Java or C#.)
You can also continue to do weird metaprogramming and monkeypatching, and though the typechecker is not always able to make sense of it you can often wrap it in a safe interface so you can still get assurances for the rest of the project.
I don't see the hype here, just use a statically typed language if it's an important consideration for the project.
I find typed python more pleasant and expressive than similar Java, for a variety of reasons, among them, I find python's type system to be superior to Java's (and getting even better faster!)
Other than that, I actually don't know... a lot of other languages now have interpreted-dev envs...
(btw, I'd rather use Kotlin than java --- it's like Java++)
All of the other replies are subjective.
On can use any bindings to those libraries, including using modern versions of Fortran and C++ directly.
Interpreted languages are quick to develop/quick to learn, and with the support of typing that same "quick prototype" can easily mature into a full application without needing to be re-written in a "real" language.
python task.py
vs javac Task.java
java -cp . Task
And if you're in and IDE (in fairness, they're not popular for quick prototypes), you're just clicking the play button either way.There are also toolchain options for running the code interpreted, JIT compiled, AOT compiled, or a mix of the previous options.
Languages are orthogonal to the toolchains.