Por que os arquivos Objective-C usam a extensão .m?

204

Desde que comecei a aprender Objective-C e Cocoa, fico imaginando por que eles escolheram a extensão .m para os arquivos de implementação - isso deveria significar algo ou era apenas uma letra aleatória?

Kuba Suder
fonte
12
É para o em plementação.
dreamlax
2
Eu acho que isso estava incomodando alguém, então eles fizeram um pouco de pesquisa encontrando evidências contraditórias sobre o significado por trás da extensão .m. Em última análise, significa mensagens. Para a leitura completa: pempek.net/blog/2013/11/30/objective-c-file-extension/…
John Riselvato
.marquivos são arquivos de implementação, como você disse. Conhecendo a Apple gosta de prefixo tudo com iele é fácil de ver que eu MPLEMENTAÇÃO se torna MPLEMENTAÇÃO sem disse i. Em seguida, eles simplesmente usado a primeira letra do MPLEMENTAÇÃO para a extensão de arquivo: m.
Daniel

Respostas:

465

Hoje a maioria das pessoas se refere a eles como "arquivos de método", mas

"A extensão .m originalmente significava" m essages "quando o Objective-C foi introduzido pela primeira vez, referindo-se a um recurso central do Objective-C [...]"

(do livro " Aprenda Objetivo-C no Mac ", de Mark Dalrymple e Scott Knaster, página 9)

Edição: Para satisfazer uma coceira, enviei um email para Brad Cox , o inventor do Objective-C, sobre a pergunta e ele respondeu com esta única linha:

"Porque .o e .c foram tirados. Simples assim."

Aqui está o email como prova visual:

Prova Visual

splattne
fonte
115
Você se preocupou em enviar um email para Brad Cox para descobrir! Você é uma pessoa incrível.
Chironex
15
Parece que ele estava fazendo uma piada. Se o e c foram tirados, por que me não existe outra letra disponível? Embora eu ache que é uma resposta engraçada, também acho difícil acreditar que foi simplesmente tirado do chapéu e ele não usou nenhuma lógica na escolha de m.
Protótipos
2
Concordo que ele provavelmente estava brincando, mas provavelmente um pouco de língua na bochecha. .m provavelmente foi para método ou sistema de mensagens, mas também foi usado apenas porque .o e .c já foram usados.
Bigtunacan
10
Eu gostaria que Brad tivesse realmente respondido à pergunta em vez de apenas explicar por que .o e .c não foram usados. Pelo menos ele derramou um pouco de luz sobre um aspecto da resposta embora ...
still_dreaming_1
1
@INTPnerd Ele respondeu, mais ou menos. Parece-me que “.m” foi escolhido primeiro a sair da necessidade de algo diferente de “.o” ou “.c” e segundo porque ele poderia ser levado para qualquer / todos os m étodos, m ensagens, eu sou complementação.
Slipp D. Thompson
8

Significa "métodos". Na FAQ do comp.lang.objective-C :

A organização da fonte Objective-C é geralmente semelhante à do código fonte C ou C ++, com declarações e interfaces de objeto entrando em arquivos de cabeçalho nomeados com uma extensão .h, e definições e implementações de objetos entrando em arquivos nomeados com um .m para métodos ) extensão.

Adam Rosenfield
fonte
5

Os arquivos .m contêm os (m) métodos. Razao possivel?

baker1990
fonte
4
Os arquivos m também podem conter (m) vários comentários! go figure :)
NeverStopLearning
-3

Palpite: 1983 foi introduzido o ObjectC juntamente com o primeiro computador Macintosh .... Portanto, pode ser m como no Macintosh ou m como nos métodos ou até em ambos.

Martin Kersten
fonte
4
O Objective-C originalmente não tinha nada a ver com o Macintosh. Além disso, a resposta correta já foi publicada anos atrás.
Johan Halin