ArtReal's readme
personal unreality:  точка пушистости

Мак и привязка к интуитивности

23.03.08 19:40 ◇ keywords: soft, хайтек

«Рекомендации лучших собакоедов»*

Если говорить о Маке и его плюсах, то вот что подумалось (в контексте комплексной работы в предоставляемой среде).

Меня вот что беспокоит — привязка к интуитивности. Интуитивность (не только в интерфейсе), как со стороны пользователя, так и со стороны системы (это когда система «интуитивно догадывается», что от нее хочет пользователь), вещь вроде неплохая, но. Нет ощущения контроля. И никто не гарантирует, что система правильно догадается. И как с этим жить?

Заставить ОС использовать именно мою концепцию работы — вот условие комфортной работы. Но «тигру в зоопарке не докладывают мяса» — т.е. мне такого пока не дает ни одна операционка. Или я не прав?



* — от поговорки «он на этом деле собаку съел»


Движкостроение и оптимизация

23.03.08 12:56 ◇ keywords: xblog

Есть такая хорошая штука — функционально-стоимостный анализ (ФСА). Позволяет оптимизировать различные штуковины. Весьма эффективно оптимизировать.

Так вот, в движкостроении есть два подхода: универсальный и специализированный.
Универсальный движок позволяет реализовать на своей базе почти любую задачу/функциональность. Плюс, позволяет подключать дополнительные плагины, реализующие ту функциональность, которая изначально даже не была заложена в движок. Но, платой за универсальность является большой объем движка, сильная прожорливость в отношении ресурсов и, как следствие, медлительность.
В противоположность универсальному, специализированный движок «заточен» под вполне конкретные задачи, монолитен и быстр. Зато расширение функциональности реализуется только вставками нужного кода в код движка — а это для рядового потребителя (по понятным причинам) затруднительно.

Золотая середина? Ну, она как бы есть, но. Этот вариант оказывается самым худшим вариантом — мало того, что функциональность куцая, так еще и тормозит. [самое интересное, что такой вариант все-таки пользуется популярностью, 80% движков — это попытка найти золотую середину]

И вот тут мы возвращается к ФСА. Идея вот в чем: берем универсальный движок, настраиваем/наращиваем функциональность до нужной — а потом оптимизируем его в специализированный (быстрый, монолитный). Правда, при попытке добавить (или изменить) функциональность придется оптимизировать заново… но не каждый же день это потребуется.

Проблема тут только одна, зато самая убийственная: нет автоматических методов оптимизации кода. А вручную это настолько трудоемко, что нет смысла за это браться.
Т.е. одним из направлений современного софтостроения должна стать «методика разработки оптимизируемого кода» (иначе говоря, как писать код, чтобы его потом можно было бы оптимизировать) и, скорее всего, разработка языка, позволяющего писать программы, пригодные к автоматической оптимизации.

Но это будет потом, а пока остается разрабатывать архитектуру специализированного движка так, чтобы потом было удобно вставлять «дополнительный» код.

 [ link ]