Почему файлы Objective-C используют расширение .m?

204

С тех пор, как я начал изучать Objective-C и Cocoa, я удивлялся, почему они выбрали расширение .m для файлов реализации - должно ли это что-то значить или это была просто случайная буква?

Куба Судер
источник
12
Это для эм зации.
Dreamlax
2
Я предполагаю, что это беспокоило кого-то другого, поэтому они провели небольшое исследование, обнаружив противоречивые данные о значении расширения .m. В конечном итоге это означает сообщения. Для полного прочтения: pempek.net/blog/2013/11/30/objective-c-file-extension/…
Джон Риселвато
.mКак вы сказали, файлы являются файлами реализации. Зная Apple , любит приставку все с iлегко видеть , что я mplementation становится mplementation без указанной i. Тогда они просто использовали первую букву mplementation для расширения файла: m.
Даниил

Ответы:

465

Сегодня большинство людей называют их «файлами методов», но

«Расширение .m первоначально обозначало» м essages « когда Objective-C был впервые введен, ссылаясь на центральную особенность Objective-C [...]»

(из книги Марка Далримпла и Скотта Кнастера « Изучите Objective-C на Mac », стр. 9)

РЕДАКТИРОВАТЬ: Чтобы удовлетворить зуд, я по электронной почте Брэд Кокс , изобретатель Objective-C, о вопросе, и он ответил этой единственной строкой:

"Потому что .o и .c были взяты. Просто так."

Вот электронное письмо как наглядное доказательство:

Визуальное доказательство

splattne
источник
115
Вы удосужились написать Брэду Коксу, чтобы узнать! Вы потрясающий, потрясающий человек.
Chironex
15
Похоже, он шутил. Если o и c были взяты, почему m, а не другие доступные буквы? Хотя я думаю, что это забавный ответ, мне также трудно поверить, что его просто вытащили из шляпы, и он не использовал никакой логики при выборе m.
прототип
2
Я согласен, что он, скорее всего, шутил, но, скорее всего, немного коснулся языка. .m, скорее всего, был для метода или обмена сообщениями, но также использовался только потому, что .o и .c уже использовались.
bigtunacan
10
Хотелось бы, чтобы Брэд действительно ответил на вопрос, а не просто объяснил, почему .o и .c не использовались. По крайней мере, это проливает немного света на один аспект ответа, хотя ...
still_dreaming_1
1
@INTPnerd Он ответил, более или менее. Мне кажется , что «.m» был выбран первый из необходимости что - то иное , чем «.o» или «.c» , и второй , потому что это может быть принято для обозначения любой / все м ethods, м essages, я м зация.
Слипп Д. Томпсон
8

Это означает «методы». Из comp.lang.objective-C FAQ :

Организация источника Objective-C, как правило, аналогична исходному коду C или C ++: объявления и интерфейсы объектов входят в заголовочные файлы с расширением .h, а определения и реализации объектов - в файлы с именами .m (short для методов ) расширение.

Адам Розенфилд
источник
5

Файлы .m содержат методы (m). Возможная причина?

baker1990
источник
4
В m файлах также может быть (m) количество комментариев! пойди
разберись
-3

Дикая догадка: в 1983 году был представлен ObjectC вместе с первым компьютером Macintosh ... Так что это может быть m как в macintosh или m как в методах или даже в обоих.

Мартин Керстен
источник
4
Изначально Objective-C не имел ничего общего с Macintosh. Кроме того, правильный ответ уже был опубликован несколько лет назад.
Йохан Халин