понедельник, 21 февраля 2022 г.

[prog.c++] Еще о возможных направлениях развития SObjectizer

Давеча поймал себя на том, что работы над SObjectizer-5.6 начались где-то приблизительно в это время три года назад, в феврале 2019.

То событие было довольно таки знаковым, т.к. с 2014-го года развивалась ветка 5.5, в которой не было серьезных ломающих изменений и переход на новые версии в рамках ветки 5.5 происходил практически безболезненно. И после 4.5 лет сохранения совместимости между версиями SObjectizer мы таки решились эту совместимость поломать. Как в плане API самого SObjectizer-а, так и в плане минимальных требований к стандарту C++.

Формально говоря, ветка 5.7 сломала совместимость с веткой 5.6. Но, по сути, 5.7 -- это все тот же SO-5.6, с минимальными косметическими изменениями в именовании пары функций. Так что можно сказать, SO-5.6 продолжает свое развитие уже на протяжении трех лет подряд, просто сейчас под именем SO-5.7.

Неожиданно быстро пролетевшие три года поступательного развития -- это серьезно. Это такой срок, который позволяет задуматься о том, что можно было пойти на выделение ветки 5.8, в которой за счет отказа от 100% совместимости с 5.6/5.7 можно было бы добавить что-то новое и полезное. Что-то, что вряд ли получится сделать в рамках API версий 5.6/5.7.

Пост месячной давности обозначил пару общих направлений, но не содержал никаких конкретных идей. Сегодня же зафиксирую на будущее пару более предметных предложений, к которым можно будет вернуться когда и если представится возможность начать работы над SO-5.8.