On Oct 4, 2013, at 11:30 AM, Tom Davie <tom.da...@gmail.com> wrote:

> The more mathematically correct thing to do (and what it does for all other 
> types) is “I don’t know what it is, so I can’t ‘prove’* anything at all about 
> whether this is correct, therefore it’s not correct.  Puny human, you must 
> provide me with more information to make proofs”.

It’s only mathematically correct if you are talking about a strong type system 
as in C++/Java/Haskell/etc. But Objective-C has a mixture of strong and dynamic 
typing, and in fact the dynamic typing is older: in the original Objective-C 
language the only object reference type was ‘id’, and typed object pointers 
were added later. IMHO the mixture of static and dynamic typing is very useful; 
most of the time you get good compile-time checking, and the exceptions to that 
are to avoid the kind of rat-holing into parameterized types that adds so much 
complexity to C++.

(Or if you want to think about it in non-OOP terms, ‘id’ is the Obj-C 
equivalent of C’s ‘void*’, but not C++’s ‘void*’.)

tl;dr: Both static and dynamic typing are valid language designs, and both are 
extremely popular.  One is not more “correct” than the other.

—Jens
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to