Hacker News new | ask | show | jobs
by xigoi 842 days ago
Static typing is useless without strict typing. Knowing the type of everything won’t save you if you can multiply a pointer by an integer and use the result as a file handle.
2 comments

> Static typing is useless without strict typing. Knowing the type of everything won’t save you if you can multiply a pointer by an integer and use the result as a file handle.

What language are you talking about? Go to godbolt and try that with any of the compilers there for C or C++.

Compiles with only a warning:

    #include <stdio.h>
    int main() {
      int x = 5;
      int y = &x;
      FILE *f = x * y;
      fputs("hello", f);
    }
So what are you complaining about? That the compiler told you "Don't do that" but you ignored it?

I mean, you said:

>> Knowing the type of everything won’t save you

but the compiler is trying to save you! You have to actively work against it in order to hang yourself, and you blame the language?

Fortunately even C and C++ compilers will complain if you try to do that.