October 19th, 2012

flow

История о типах

Как-то попался мне один датасет на паблик сервере сторонней компании. Коллеги говорят - софтинка наша этот датасет не понимает, экзотично ошибками на него сыпет, посмотреть бы.

Увиденное удивило даже меня. В возвращаемом с сервера RDF вместо типов сущностей торчали литералы. Что бы вы сказали увидев в исходнике на C
"int" x;
"float" f;
?

Вот там было подобное. Но стандарты W3C пишутся дерьмодемонами 80го уровня, так что этот бред прекрасно генерируется, сохраняется в триплстор и запрашивается по SPARQL.

Статическая типизация атрибутов на уровне базы данных (включая те атрибуты, значения которых сами являются типами) пресекает подобные технические ошибки.

Она не решает ошибки предметной области и опечатки, когда вместо показаний датчика температуры записывают показания датчика давления. Но позволяет далее идентифицировать их как ошибки предметки, а не "парсер сглючил" или "разное понимание формата X", и направлять на исправление по адресу.

Если вы или я обходимся без ошибок типизации внутри своего кода, то, увы, это никак не переносится на других людей, взаимодействие со сторонними API и датасетами.

И я целиком и полностью за статические гарантии того, что производители заведомо битых данных будут огребать канделябрами до самого просветления, а мир так и не увидит продуктов их жизнедеятельности.