Comment by em-bee
1 year ago
ok, so that means message passing needs a runtime, and it can be assumed that pretty much every language that has a runtime uses message passing. more evidence that it is message passing that won out.
and the profound enlightenment ( https://news.ycombinator.com/item?id=42130432 ) is not specific to message passing but about a dynamic language runtime. being able to intercept messages/function calls is just one of the benefits of that.
Not sure if objc_msgSend is a runtime, but it does require malloc, so there are limits to how low level it can be.
> objc_msgSend [...] does require malloc,
Are you sure about that?
The two variants I implemented way back when also did not require malloc.
And of course NeXT used objc_msgSend() in the kernel, to good effect, so that's pretty low-level.