Здравствуйте, Tanker, Вы писали:
T>У тебя должно быть хорошее объяснение, почему насквозь императивное ООП отлично влезает в те области, которые, казалось бы, на раз покрываются возможностями функциональщины, МП и ДСЛ. И наоборот — функциональщина, МП и ДСЛ почему то болтаются где то на той грани, дальше которой ими можно пренебречь и хорошо живет только в очень, очень специализиваных нишах, можно даже сказать вырожденых случаях, где нужно решать одну единственную задачу, вдобавок ко всему жестко прижестко изолированую.
Кстати, недавно как-то обратил внимание на один забавный нюанс в этой области. Особенно забавный в контексте местных мыслей о продвижение МП. Обычно при этом подразумевают всякие маргинальные языки... Но ведь настоящее МП есть в самом мейнстримовом языке! Макросы в C/C++ — это же прямое МП. Ну т.е. конечно их частенько и для ерунды (типа объявления констант и т.п.) используют, но можно и именно для генерации кода. Я например только так и использую — очень удобно для всяких там тестов и т.п.
А теперь внимание! Смотрим большинство учебников или советов по языку и видим что там выдвигается жёсткий лозунг: "Макросы — зло! Стараться не использовать!".
Более того, этому лозунгу следуют везде. Помнится в прошлом для организации вещей типа обработки сообщений была популярна техника составления таблиц обработчиков с помощью макросов. Сейчас же в большинстве библиотек это переписано (!) на техники типа сигнал/слот (причём через средства самого языка, а не через извращения как в устаревшей Qt).
И таких примеров не мало. Т.е. получается что на самом деле в мейнстриме всё это время происходил плавный отказ от средств МП в пользу встраивания необходимых инструментов в сам язык.