2. The type system is both gradual and not enforced by default. This means you benefit from the rapid prototyping and general freedom of dynamically-typed code, but you have the option to layer on the additional safety of static type checking as the project grows. There aren't many other gradually-typed languages out there anyway; Julia, Typed Racket, and Common Lisp aren't exactly in widespread industry use for general-purpose server dev.
You can either start with JS and add types later on (you can mix them on a per-module/file basis), or just start with TypeScript, with a loose configuration.
Python is strongly typed. The support for external tools is to enable static type checking, not strong typing.
> Why not just use Java or C#?
Why add “dynamic” to C#, why not just use Python?
- (number_of_people_who_enjoy_coding_with_python_more_than_coding_with_c_sharp_or_java > 0) == True
- Some people have large existing codebases, and would rather add types gradually than have to port all their logic to another language.
- In terms of being free and open source, Python > C# > Java (meta: can you even do a comparison like that in C# and/or Java?)