Jun. 8th, 2009

wizzard: (Default)

Современные, кгм, программно-аппаратные вычислительные комплексы проекты все чаще выходят за рамки одной конкретной машины и конкретного пользователя.

Приходит сеть, вынужденная многопоточность (потому что два разных компа – это, как ни крути, два разных потока), транзакции, понятие времени, понятие латенси, гонок (data races) и всякого такого.
Вроде бы, проблемы у всех одинаковые, тем не менее, вменяемых инструментов до сих пор нету.

Есть ОО дизайн, есть реляционная модель, есть всякие CASE инструменты, нынче появились также различные онтологии, микроформаты и прочие попытки распределенного хранения данных, но у них всех есть два общих недостатка:

1. Они ориентируются на формальные математические модели, и не имеют понятия “достоверности” (valid/invalid data) данных, а также “доверия” (trusted/untrusted) к данным. Отсюда семейство уязвимостей, связанных с инжектированием вредоносного кода, ошибки и вылеты при работе с внешними источниками информации (датчиками и людьми), паника при повреждении носителей информации, невозможность без предварительной очистки импортировать внешние корпуса данных (что порождает проблемы разнообразной совместимости) и т.д.

2. Нету понятия времени. Реляционная модель ломается, когда начинается эволюция, с ООБД ситуация теоретически лучше, на практике мало кто доходит до корректной эволюции данных параллельно с кодом, а случаи автоматической эволюции мне вообще неизвестны, увы.
Онтологические базы знаний еще более статичны, и призваны представлять замороженный конденсат знаний, но почти полностью непригодны для отражения динамически изменяющейся проблемы, которую, вроде бы, должны помогать решать.
Также, статичными являются любимые многими юнит тесты, которые очень помогают при проверке, “не сломали ли чего, что должно было остаться”, но требуют эволюции не меньше, чем весь остальной изменяющийся код.
Единственное место, где есть вменяемое, пускай и примитивное, понятие времени – современные графические редакторы, рассчитанные на не-программистов, с бесконечным undo\redo, а также системы контроля версий.
Очень интересно на этом фоне выглядит CouchDB, в которой, вроде бы, были учтены большинство из вышеприведенных аспектов (кроме доверия), надо будет как-то посмотреть.

А в общем – складывается впечатление, что в этой области никаких велосипедов еще пока не изобретено, и придется делать что-то своё :(
Как-то так.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 01:59 pm
Powered by Dreamwidth Studios