Как стать автором
Обновить

Комментарии 7

Класс класса классом класса, но всё равно всё понятно, если вникнуть. Спасибо, хороший перевод!
Слово «класс» в статье встречается 159 раз. Читать перевод очень сложно, хоть тема и интересная.
В оригинале немногим меньше.
Чисто переводческий аспект — обилие в оригинале притяжательных падежей (possessive case-ов.), которые в английском обозначаются лишь апострофом (они не так бросаются в глаза), а при переводе на русский приходится добавлять падежные окончания.
Но иллюстрация с иерархией классов и метаклассов вносит значительную ясность.
Да, я понимаю, что это не ваша вина. Справедливости ради — перевод все же ваш и это ваша забота «олитературить» его настолько, чтобы было возможно прочесть и понять.
Спасибо за перевод. Всегда было интересно как работает метакласс.
Что-то очень похожее на eigen class из Ruby. Но если для интерпретируемой природы Ruby метопрограммирование выглядит естественно, то для компилируемого Objective-C такие дела в runtime не привычны.
По метаклассам есть хорошая книжка «Putting metaclasses to work». Оба её автора участвовали в разработке IBM System Object Model, пользовались опытом SmallTalk и CLOS, и то, что они сделали, и им, и мне кажется лучшим на текущий момент. Их модель метаклассов была позаимствована в Python.

Отвечая Tensho: у Objective-C был брат–близнец DTS C++, вполне себе компилируемый. Только вместо objc.dll som.dll, и синтаксис более нормальный*. И метаклассы есть, конечно. Никак это компилируемости не вредит, даже наоборот, снимает типичные для компилируемого языка проблемы хрупкого базового класса.

Мне даже, может быть, удастся найти и запустить компилятор под Windows. В IBM VisualAge C++ v3.6 эта возможность уже вырезана. VisualAge C++ v3.5 я в сети в виде установщика не нашёл, зато есть патч, который, может так получиться, содержит в себе достаточно файлов, чтобы запустить компилятор.

*Моё мнение основано на том факте, что, несмотря на рост количества разработчиков на Objective-C за счёт iOS, в появляющихся новых языках программирования синтаксис SmallTalk никто так и не начал использовать. Исключение составляют языки, заточенные под компиляцию для iOS (Oxygene, Swift).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории