Цитата Сообщение от Barmaley_m Посмотреть сообщение
Тут дело не во вкусе, а в необходимости. Вот представь себе: игра, в ней враги, их много, и у каждого свое состояние. Как писать код, обслуживающий врагов, без ООП (в явном или неявном виде)?
Конечно, враги - это обьекты. Но я не люблю не работу с обьектами (структурами данных), а работу методами ООП. Когда идет наследование чего-то от кого-то, а ты видишь только верхушку айсберга при взаимодействии с обьектом. Любая абстракция от железа и, тем более, четкого понимания всех элементов массива данных, мне претит. Для ООП это нормально. Но мне такое программирование не интересно. Мне нравится программировать на низком уровне, с чувством железа, каждого байтика и битика. Там, где я все сделал сам, и понимаю в деталях, как, зачем и почему это работает. Тут для меня большое поле для творчества. Тут можно выжать из железа или алгоритма невозможное. А кому-то нравится ООП. Дело вкуса и склада мышления.

---------- Post added at 23:28 ---------- Previous post was at 23:25 ----------

Цитата Сообщение от Barmaley_m Посмотреть сообщение
LD A,(IX+n) занимает 3 байта и выполняется за 19 тактов, тогда как ее замена в общем случае (без ограничений на расположение структуры в памяти) требует двухбайтового сложения:

LD BC,n ; 10 тактов
ADD HL,BC ; 11 тактов
LD A,(HL) ; 7 тактов

Всего 5 байт и 28 тактов, места больше на 67%, по времени дольше на 47%, к тому же, требуются две хорошие регистровые пары (HL,BC), тогда как при использовании индексной адресации они свободны.
Это если делать в лоб и универсально.
А если:

LD L,#nn ; 7 тактов
LD A,(HL) ; 7 тактов

То это гораздо быстре.
Что? Нет универсальности? Любая универсальность раздувает код, замедляет скорость и заставляет лениться)