I don't want to attack the OP specifically (please don't go after them), and I won't argue directly with the C++ part, but C is a terrible C. Later on the OP bemoans fragmentation, but Go is a way better C than C ever was, and Rust is a way better C++.https://twitter.com/landley/status/983060536714780672 …
Pervasive atomic reference counting and hash table based method dispatch is such a bummer though.
-
-
You rarely hit the hashtable in practice though
-
You usually don’t have to hash the string, but that’s not the overhead I’m talking about.
- 6 more replies
New conversation -
-
-
IMO the genius of ObjC as a design is in making those a well-marked sublanguage. I tried to do this initially with Rust too, if you'll recall: @ was "visible" to the user, as was obj-based dispatch. The user could choose where to place expensive boundaries.
-
I think C++/CX is probably a more modern design in this vein (Obj-C runtime is basically just another COM). Unfortunate that it inherits all of C++’s complexity…though that’s undoubtedly convenient for developers.
- 1 more reply
New conversation -
-
-
objc_msgSend is pretty fast. Without the late-binding semantics baked into the language banning any sort of static devirtualization or specialization it'd probably be much less of a big deal
-
Throw an inline cache at it and call it a day. You wanted late binding, you got it. There’s always function pointers, or just functions.
- 4 more replies
New conversation -
-
-
C calls are part of Obj-C. Use them as needed.
-
I agree. I just think we could do better if designing from scratch.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.