Здравствуйте, VladD2, Вы писали:
VD>Так что нет проблем в создании гибридных языков. И таких языков уже не мало.
VD>Проблема только в сознании людей и догмах. Тут найдется не мало фанатиков которые будут плеваться при певрвом упоминании модификации состояния. А простой довод, что любой вод-вывод (как консольный, так и графический) — это императивное действие сразу вызвает взрыв флуда и флэйма. Тебе сразу начинают объяснять, что ты неумешь смореть на мир. Что, мол, достаточно ввести левую переменную "мир" и все проблемы проходят. Мол каждый вод-вывод создает новый мир
.
Ну по-моему вопрос императивен или нет ввод-вывод сродни вопросу: вращается ли солнце вокруг земли или наоборот. Правильного ответа не существует — все зависит от системы отсчета и начала координат.
Что же до фанатизма — я бы не называл то, что имеет под собой аргументы фанатизмом. Все же ссылочная прозрачность несет в себе немало выгод. Я даже в последнее время за собой заметил, что для всех задач, где мне реально требуется делать что-то императивное, я делаю на Си, потому что в той же Java от этих всех присваиваний смысл без указателей, их арифметики и goto какой-то не очень большой. 99% этих присваиваний — локальные переменные и подергивание полей в конструкторах и сеттерах. Чудовищно бессмысленная работа, которая выводится за видимость нормальным компилятором. А оставшийся 1% случаев вполне оборачивается во что-нибудь безопасное. Оборачивают же они сейчас работу с буферами в памяти и тому подобное.