Почему файлы 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 были взяты. Просто так."

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

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


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). Возможная причина?


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

-3

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


4
Изначально Objective-C не имел ничего общего с Macintosh. Кроме того, правильный ответ уже был опубликован несколько лет назад.
Йохан Халин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.