5 ms·
I don't buy it. Yes, the language may be C, but if you're linking the ObjC runtime and frameworks, all you're really avoiding here is the nib-loading machinery.
by icodestuff 10y ago
I don't buy it. Yes, the language may be C, but if you're linking the ObjC runtime and frameworks, all you're really avoiding here is the nib-loading machinery.
To be fair, I think that's a perfectly reasonable goal in and of itself - showing how to set up an OS X app "from scratch" is definitely something I'm interested in - but we shouldn't pretend this isn't strongly relying on Objective-C to actually get things done.
EDIT: indeed, the makefile copies main.c to main.m before invoking clang, which means it's using the Objective-C compiler.
What would be much more impressive is if this used only the C Core* frameworks (Core Foundation and Core Graphics in particular) to do the same thing.
- hunterwerlla 10y agoSo obviously it's impossible to write a linux app in anything pure but C because the kernel is written in C. That makes no sense.
- deleted 10y ago[deleted]
- thought_alarm 10y agoLook at the makefile again. It builds five different binaries from the same source file, one of which using a C compiler. This is no different than writing a COM application in C. Both COM and objc runtimes provide similar dynamic OO services over a plain C API.
- convivialdingo 10y agoI just ran the code through clang (Apple LLVM version 5.1) with no problems. You don't have to rename the source - but perhaps there are issues in other configurations. clang -framework Foundation -framework OpenGL -framework Cocoa -o test test.c