ailev.ru

20 марта 2007 · Комментарий

Re: Сверхпозднее связывание, рефлексия и интроспекция

Итого имеем - рефлексивность есть необходимое условие для наличия позднего связывания. Программа должна уметь судить о себе самой, чтобы рассказать о себе объектам, подключаемым на этапе позднего связывания. Писать себя саму - больше похоже на фантастику, чем на здравый смысл, поэтому этот пойнт просто опускаю. Отличия интроспекции от рефлексивности с точки зрения программы не увидел. В общечеловеческом смысле разницу увидел только в одном - программа имеет автоматическую возможность объяснять свое устройство не только другой программе, но и человеку, причем мало подготовленному (в смысле разработки программ), с показом истории развития и непосредственно процесса выполнения. В общем отвечаю на Ваш вопрос - у NET вполне себе есть и позднее связывание, и рефлексия. Ссылку с примером уже приводил выше. Глубинную необходимость интроспекции "ниасилил". В терминах Пайтона так вообще эти слова - синонимы. Какова ее практическая применимость? Особенно порадовал Тим Питерс: "Метаклассы (это которые описывают и на лету создают классы) - бОльшая магия, чем нужно 99% пользователей. Если вы задаетесь вопросом, нужны ли они вам, значит, они вам не нужны (те, кому они действительно нужны, точно это знают, и им не требуется объяснение, зачем)" А читать Вас много приятнее, чем ссылки, потому что 1) по-русски и 2) можно задать вопросы. PS: Много лет назад участвовал в процессе разворачивания процедурного языка высокого уровня в лисп, а его в свою очередь в лямба-исчисление, в надежде через какое-то время спроектировать мегабыстрый процессор под комбинаторную логику. Нафих никому это не нужно оказалось. А где нет денег, там нет и [быстрого] результата.

К записи · К обсуждению