4 ms·
>C doesn't have type checks, unless you're using some runtime type system (like GObject) on top of it. At any rate, C may not be completely type safe, but it's
by crdoconnor 9y ago
>C doesn't have type checks, unless you're using some runtime type system (like GObject) on top of it. At any rate, C may not be completely type safe, but it's better than dynamic languages which are completely type unsafe
And worse than dynamic languages which have greater type-safety. Point being that it's type safety, not static typing that helps cut down on the need for sanity checking.
>you can just use type annotations
Type annotations are both unchecked and render any code that you write unusable in python 2.
>rather than littering the code
Type annotations DO litter the code.
- weberc2 9y ago> And worse than dynamic languages which have greater type-safety I think you're confusing strong typing with type safety. Strong typing doesn't preclude errors; you just don't see the error until you hit the code, which might be all the time for a happy path, or almost never for an error path. Static typing, on the other hand, completely eliminates the need for sanity type checks (and depending on your language's notion of 'type' this can include virtually all forms of sanity checks). > Type annotations are both unchecked and render any code that you write unusable in python 2 Static type checking is supported for both Python 2 and 3. If you need to write Python 2/3, you could probably just use the Python 2 annotations. > Type annotations DO litter the code. They don't. They're a small annotation that tells you what the variable actually is/does. Much neater than Sphinx docs, etc. And you do need to know the type, whether you like it or not.
- crdoconnor 9y ago>I think you're confusing strong typing with type safety. Check the wikipedia page for strong typing. Type safety is one of the ~11 or so different definitions. It's one reason I try to avoid using the term - because it's more emotional than meaningful. >Static typing, on the other hand, completely eliminates the need for sanity type checks You've not programmed in C have you?