Earlier quoted context omitted.
Specifically for Linux, there is no ubiquitous standard with decent performance and a predictable look such as win32 or Cocoa. Instead, developers rely on toolkits such as Qt or GTK to ensure compatibility, which are usually either bloated or ugly.
If you think that Qt is more bloated than Cocoa I don't know what to say. That objc runtime is so heavy and slow, good luck making it run on microcontrollers
You’d probably also want some form of malloc(), but that’s completely optional. There’s nothing in Objective C that says you have to allocate memory dynamically, or that you have to do it with malloc.
ObjC runtime has grown somewhat to include more features, but you don’t need all those runtime features if you want to run your code on a microcontroller. Just like you don’t need glibc if you want to run C. There is more than one runtime for Objective C you can choose, just like there is more than one runtime for C.