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?


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


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.


5

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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.