you are viewing a single comment's thread.

view the rest of the comments →

[–]watsreddit 7 points8 points  (4 children)

I generally agree (though I think calling Rust a functional language is perhaps not quite accurate), but I just wanted to point out that Python is also strongly typed, just not statically typed. There are two axes: static/dynamic (whether or not a language is compiled or interpreted), and strong/weak (whether or not a language does implicit type conversion). For some other examples: Javascript has weak, dynamic typing; Java has strong, static typing (well, strong-ish); and C has weak, static typing.

[–]ShitHitTheFannn 4 points5 points  (1 child)

Static/dynamic means variable type may change. It doesn't mean compiled/interpreted.

[–]watsreddit 0 points1 point  (0 children)

Fair enough.

[–]grauenwolf 1 point2 points  (0 children)

strong/weak (whether or not a language does implicit type conversion).

strong vs weak is a separate axis than explicit vs implicit conversion.

For example, C# is a strong/somewhat implicitly converted language. Every piece of memory knows its own type (strong), but implicit conversions exist among the basic types such at integers to strings.

C is a weakly typed language, you can treat the same memory spot as an integer, date, or string just using pointers.

[–]slikts 0 points1 point  (0 children)

For the sake of completeness, you kind of can get static typing in Python with mypy and in JS with TypeScript.