VadiMGP писал(а):А теперь проиллюстрируй свою мысль на конкретном примере, пожалуйста. Какой именно плагин виртуальной панели написанный в соответствии с нынешним API станет работать некорректно? И в чем именно эта некорректность будет заключаться?
Уже упомянутый мной ранее TempPanel. Я - юзер. Я знаю, что плагин содержит некий неупорядоченный набор ссылок на файлы, разбросанные по разным дискам и разным подкаталогам. Я знаю, что я могу переименовывать, создавать, удалять ссылки без малейшего влияния на реальную файловую систему (в чём и состоит главное предназначение временной панели).
Тотал обновляется до версии 8.0, и в нём поведение плагинов временной панели меняется по твоему сценарию. Я не в курсе этих изменений, ибо многостраничную историю читать дико влом, но я помню, что обновление всегда выполнялось без каких бы то ни было проблем с совместимостью. Я устанавливаю эту версию 8.0, захожу в TempPanel, и вижу, что очепятался в имени одной из ссылок. Ладно, сейчас быстренько переименую... Переименовываю... Опс, а почему ссылка перестала работать? Иду смотреть оригинальный файл... Ух ты, а куда это делся оригинальный файл?.. Переименовался? А с какого бодуна он переименовался, если я переименовывал ссылку? Ну его в топку этот глючный Тотал 8.0!
VadiMGP писал(а):Ну что ж, я не буду в третий раз настаивать на удовлетворении моего праздного любопытства. Неважно, так неважно.
По сути ты предлагаешь выбирать из двух зол. Я не могу ответить на такой вопрос. Оба подхода плохи, примерно одинаково. Первый - необходимостью реализовывать всё силами плагина, второй - невозможностью выполнять одну из важнейших функций, без которой временная панель просто не имеет смысла (по крайней мере, с моей точки зрения).
VadiMGP писал(а):Более того, беру на себя смелость утверждать, что такого определения не существует.
API - Application Programming Interface. Интерфейс, предоставляемый одним компонентом другому. Если один из компонентов перестаёт удовлетворять заранее обговоренному соглашению, второй компонент либо придётся обязательно обновить, либо он перестанет работать так, как предполагалось изначально. Я считал, что это очевидно...
Разумеется, изменения допустимы, но изменения ни в коем случае не кардинальные. Иначе говоря, показывать диалог вместо in-place-remane-окошка можно, потому как на существенную часть функционала это не влияет. А полностью отказываться от вызова плагиновской функции, заменяя её своей собственной - нельзя, потому что плагин о таких каверзах не осведомлён.
VadiMGP писал(а):Извини, я не понял какой смысл ты вкладывал в это предложение. Выражение "такой, какой есть" синоним слова "неизмененный". То есть, я вижу фразу "Неизмененный API менять категорически недопустимо."
Есть внешний интерфейс API, а есть его внутренняя реализация (обработка) Тоталом. Менять второе без изменения (расширения) первого недопустимо.