C-Macs – a pure C macOS application

Licensing and “Open Source” Status

  • Repository lacks a formal license; by default this means “all rights reserved” in many jurisdictions.
  • Several commenters warn this is riskier than using even a restrictive license, since terms can change later.
  • The informal “use at your own risk, no Objective‑C allowed” text is viewed as (a) not legally solid, and (b) incompatible with standard open‑source definitions.
  • Some classify it as “source-available” rather than open source; others like the attitude but still recommend adopting an established license.

What the Project Actually Does

  • It’s a macOS GUI app written in C that drives Cocoa via the Objective‑C runtime (e.g., objc_msgSend) without any .m/Objective‑C source files.
  • This mirrors what the ObjC compiler/runtime does under the hood: dynamic message sending, runtime class creation, method registration.
  • Commenters liken it to manually building C++/ObjC object systems from C using vtables and runtime metadata.

Significance and Practicality

  • Some see it as an educational “digging with a spoon” exercise: demystifying Cocoa/ObjC, showing that “impossible” things (pure‑C GUI) can be done.
  • Others argue it’s not practical for production: more complex, less safe than ObjC/Swift, not faster than just writing ObjC, and mainly useful for language bridges or learning.
  • It still compiles and runs on modern Apple silicon, which impresses some readers.

Apple APIs, Languages, and Alternatives

  • Discussion notes that below Cocoa there are C‑level APIs (Core Foundation, Core Graphics) and historically Carbon, so C GUIs are possible, if painful or deprecated.
  • Several point out existing cross‑platform or wrapper approaches (SDL, Qt, X11/XQuartz, various *Cocoa bindings for other languages).
  • Some lament that newer APIs like Metal are ObjC‑centric rather than having clean C interfaces, making cross‑language interop harder; this is seen as Apple being opinionated about ObjC/Swift.

Broader System and Performance Commentary

  • There’s debate about macOS as a “polished Unix”: some describe the BSD underpinnings and low‑level tooling as dusty, inconsistent, and hard to use directly.
  • One commenter questions the reported ~1.5 MB memory use for such a trivial window, while others note accounting details (e.g., window backing stores) can differ by OS.