АВ
Работающая сложная система обязательно произошла от работавшей простой системы. Сложная система, разработанная с нуля, никогда не работает, и её невозможно исправить так, чтобы она заработала. Нужно начать заново, с простой работающей системы.
Я и начинал с простого - формата моделей. То, что я не сделал реализации всех промежуточных итераций, не имеет большого значения. Я продумывал концепт и проверял, что он в принципе работоспособный, пусть и в голове. Конечно, при реализации вылезут мелкие детали и подводные камни, но я справлюсь с ними.
У меня есть план составных частей и в каком порядке я буду их разрабатывать. Каждая из них относительно простая и может быть протестирована отдельно.
Я всегда стремлюсь к простоте, а точнее к оптимальному балансу между простотой и функционалом. Большинство существующих решений очень далеко от этого баланса, и именно поэтому то, что делаю я, может восприниматься как серебряная пуля.
Я практически уверен, что реализация моей идеи займёт в разы меньше кода, чем тот же protocol buffers, возможности которого на порядок меньше.