Hacker News new | ask | show | jobs
by db48x 1209 days ago
> The author has miscalibrated expectations.

No, they don’t. Nobody expects to dive into a C program and find that every single function parameter is a void*. That’s just abusive. Yea, the language technically allows it, but it eliminates all possibility of effective cooperation between developers.

> C's type system is different enough in scope and goals from many other type systems that it leads to confusion to lump them together.

C does have a type system, it makes C better than languages without one (like assembler), and faulting C for not incorporating ideas invented in the decades after C was invented is also abusive. Claiming that it isn’t good enough to be called “a type system” is just an attempt to change the language so that you are always right.

1 comments

The difference between

    function(void *pointer) { 
      data_type *argument = pointer;
      ...
    }
and

    function(data_type *argument) { 
      ...
    }
is really small. If this hurdle is enough to 'eliminate all possibility of cooperation,' there was no possiblity in the first place.