Pourquoi les fichiers Objective-C utilisent-ils l'extension .m?

204

Depuis que j'ai commencé à apprendre Objective-C et Cocoa, je me demandais pourquoi ils avaient choisi l'extension .m pour les fichiers d'implémentation - était-ce censé signifier quelque chose, ou était-ce simplement une lettre aléatoire?

Kuba Suder
la source
12
C'est pour la mise en œuvre .
dreamlax
2
Je suppose que cela dérangeait quelqu'un d'autre, alors ils ont fait un peu de recherche pour trouver des preuves contradictoires sur la signification de l'extension .m. En fin de compte, il représente des messages. Pour la lecture complète: pempek.net/blog/2013/11/30/objective-c-file-extension/…
John Riselvato
.mles fichiers sont des fichiers d'implémentation comme vous l'avez dit. Connaissant Apple aime à tout préfixe , iil est facile de voir que je XECUTION devient XECUTION sans dit i. Ensuite , ils ont juste utilisé la première lettre de l'extension XECUTION du fichier: m.
Daniel

Réponses:

465

Aujourd'hui, la plupart des gens les appellent des "fichiers de méthode", mais

"L'extension .m était à l'origine synonyme de" m essages "lors de l'introduction d'Objective-C, faisant référence à une caractéristique centrale d'Objective-C [...]"

(extrait du livre " Learn Objective-C on the Mac " de Mark Dalrymple et Scott Knaster, page 9)

EDIT: Pour satisfaire une démangeaison, j'ai envoyé un courriel à Brad Cox , l'inventeur d'Objective-C, à propos de la question et il a répondu avec cette seule ligne:

"Parce que .o et .c ont été pris. C'est aussi simple que ça."

Voici l'e-mail comme preuve visuelle:

Preuve visuelle

splattne
la source
115
Vous avez pris la peine d'envoyer un courriel à Brad Cox pour le savoir! Vous génial, génial personne.
Chironex
15
On dirait qu'il faisait une blague. Si o et c ont été pris, pourquoi m et pas toute autre lettre disponible? Bien que je pense que c'est une réponse amusante, j'ai également du mal à croire qu'elle a simplement été tirée d'un chapeau et il n'a utilisé aucune logique pour choisir m.
prototypique
2
Je suis d'accord qu'il plaisantait probablement, mais probablement quelque peu ironique. .m était probablement pour la méthode ou la messagerie, mais aussi uniquement parce que .o et .c étaient déjà utilisés.
bigtunacan
10
J'aimerais que Brad ait réellement répondu à la question au lieu d'expliquer simplement pourquoi .o et .c n'ont pas été utilisés. Au moins, cela apporte un tout petit peu de lumière sur un aspect de la réponse ...
still_dreaming_1
1
@INTPnerd Il y a plus ou moins répondu. Il me semble que «.m» a été choisi en premier lieu par nécessité d'autre chose que «.o» ou «.c» et ensuite parce qu'il pourrait être considéré comme signifiant tout / partie des m éthodes, m essages, i m mise en œuvre.
Slipp D. Thompson
8

Il signifie "méthodes". De la FAQ comp.lang.objective-C :

L'organisation de la source Objective-C est généralement similaire à celle du code source C ou C ++, avec des déclarations et des interfaces d'objet dans des fichiers d' en- tête nommés avec une extension .h, et des définitions et implémentations d'objet dans des fichiers nommés avec un .m (short pour les méthodes ) extension.

Adam Rosenfield
la source
5

Les fichiers .m contiennent les méthodes (m). Raison possible?

baker1990
la source
4
Les fichiers m peuvent également contenir (m) une multitude de commentaires! allez comprendre :)
NeverStopLearning
-3

Devinette sauvage: 1983 a été introduit ObjectC avec le premier ordinateur Macintosh .... Il peut donc s'agir de m comme dans macintosh ou de m comme dans les méthodes ou même les deux.

Martin Kersten
la source
4
Objective-C n'avait à l'origine rien à voir avec le Macintosh. De plus, la bonne réponse a déjà été publiée il y a des années.
Johan Halin