Le noyau XNU/Darwin est principalement en C, avec un peu de C++ pour IOKit (l'architecture des pilotes de périphériques) et de l'assembleur pour les choses de très bas niveau.
L'userland Unix vient de FreeBSD et est principalement en C.
Les API "Core" sont principalement en C, bien qu'elles chevauchent Cocoa à de nombreux endroits.
Cocoa est en Objective-C. Il y a probablement quelques bouts égarés de (Objective-)C++ flottant autour des applications standard comme iTunes.
Des parties de l'interface utilisateur - principalement le Dock dans El Capitan, mais probablement plus dans les versions futures - sont écrites en Swift, mais la plupart du temps Swift est utilisé pour le développement d'applications sur iOS.
Le système de compilation, LLVM, et ses deux principaux composants de compilation, Clang et Swift, sont en C++. Il est intéressant de noter que Swift n'est pas auto-hébergé ; d'après ce que j'ai compris, Chris Lattner a estimé que se donner la peine de lui donner un bootstrap approprié était une complication inutile alors que le langage était encore en pleine évolution. Swift finira également par fournir sa propre version du FoundationKit écrite en Swift, mais c'est en quelque sorte à moitié terminé pour le moment.
Les versions antérieures à OS X à partir de System 7 étaient principalement en C++ et en assembleur (680x0 et PPC) pour les nouveaux composants, bien qu'il y ait probablement beaucoup de code Pascal hérité des premiers jours, car je sais qu'Apple n'a jamais donné au MacOS classique un nettoyage en profondeur à part la réécriture du Finder à quelques reprises. (La rumeur a couru qu'ils avaient perdu à un moment donné les scripts de construction MPW pour le système d'exploitation de base et qu'ils ne pouvaient reconstruire le système qu'en appliquant des correctifs et en échangeant des composants). La Toolbox, la principale API de l'interface utilisateur, était principalement en assembleur 680x0, bien qu'au fil des ans, les parties critiques en termes de vitesse aient été réécrites en assembleur PowerPC. Ce n'est pas un langage mais une ABI, le System Object Model d'IBM, qu'Apple a adopté en même temps que le projet OpenDoc, qui a échoué ; cela devait permettre de résoudre le fameux problème de la "classe de base fragile" qui affecte le C++ et d'autres langages OO avec de multiples implémentations, dans ce cas les compilateurs de Symantec (MrC), IBM (xlc), Motorola et Metrowerks (Codewarrior). (GCC n'était pas un facteur déterminant à l'époque en raison de la vendetta de Richard Stallman contre Apple, et Chris Lattner était, je crois, encore au lycée, de sorte que LLVM n'existait pas encore). Je pense que cela est apparu autour de System 7.5.5, peut-être un peu après. Peu ou pas de ce code existe encore dans le système, à l'exception peut-être d'un peu de code de colle dans Quicktime Player et iTunes et des restes de Carbon.