Безопасность разработчика не принципиальна -- пусть отлаживает и тестирует.
Это грубая ошибка.
Поэтому разработчик может пользоваться векторами, если это не влияет отрицательно на быстродействие. И может ради быстродействия писать сколь угодно длинные коды. Именно это я пытаюсь донести до читателя.
Это ещё одна грубейшая ошибка.
Доносить такое до читателя - преступление.
Это не заточенный на чудеса программирования математик-вычислитель. Он пользуется не новейшей системой программирования, а той, к которой привык.
Тут есть рациональное зерно. Но видимо, вы не понимаете, что разные люди привыкли к разному. Кто-то к древнему C++. Кто-то к ещё более древнему Fortran. Кто-то к Matlab. Кто-то к Maple. Кто-то к Python. Кто-то к Excel. Кто-то к Turbo Pascal. Кто-то к BASIC - и попробуй его в чём переубеди.
Я, как проектировщик, являюсь "уполномоченным представителем" такого пользователя.
Для этого надо
1. Лучше представлять себе его нужды.
2. Уметь превращать их в грамотные архитектурные решения.
И то и другое у вас не получается, так что ваша претензия на представительство необоснована.
Раз уж он производит какие-то рассчеты на заказчика, то он имеет приличное фундаментальное образование и ему-таки немало лет :-)
Надо сказать, что тех, кому "немало лет", как раз всё меньше и меньше. Людей под 30-40 встретить можно не реже, чем людей под 70-80, и в общем, и те и другие - переучивались за свою жизнь, часто не раз, просто потому, что были вынуждены. Чтобы кому-то повезло просидеть без изменений на тех же аппаратно-программных средствах, что и в 90-е годы - это как раз редкое исключение.
Например, вектор безопасен для поднаторевшего разработчика, а не для пользователя.
Ровно наоборот. Векторы рекомендуются начинающим потому, что они безопасней именно для начинающих. А для опытного разработчика разница уменьшается (но не до нуля).
Задача разработчика, чтобы вектор по возможности не появлялся в интерфейсе пользователя.
Грубейшая ошибка. Сегодня задача разработчика - чтобы в интерфейсе пользователя не было ни массивов, ни указателей, а были бы векторы, контейнеры STL, и другие подобные выразительные средства - часто более безопасные, чем базовые конструкции языка.
----------------
я говорю о студентах, которых вы готовите, и которым после вашего обучения, если они захотят стать программистами, будет сложнее, чем если бы этого обучения не было
Я надеюсь, что всё-таки студенты сталкиваются с таким "мастером-ломастером" по касательной, а основные навыки и представления получают в другом месте из других источников. Так что это общение будет хоть и травматичным, но не судьбоносным.
Чур, pair или самопальные его аналоги не предлагать
pair в данном случае наиболее очевидный и естественный способ достичь желаемого. На функциональном языке однозначно именно так бы и было сделано.
Разумеется, в интерфейсе должно быть как минимум три операции деления: возвращающая только частное, возвращающая только остаток, и возвращающая пару (частное, остаток). Ну и до кучи можно четвёртую булеву: "разделилось нацело".