Pull to refresh
3
0
Send message
Да бог с вами, с чего бы это? Вы бы еще статью об Интернете из бумажного Коммерсанта добавили в этот список для полного счастья.
Вы не понимаете — это убойный аргумент. Контрольный выстрел.
Честно говоря, надоело уже давно. Так что, всего вам доброго.
Серьезно. На основании предоставления продукта не соответствующего техническому описанию.
Что нет?
Вот выдержка с вашей же ссылки:
Обратная совместимость в программном обеспечении
Обратная совместимость применительно к программному обеспечению означает способность более поздних версий программы работать с файлами, созданными более ранней версией этой же программы или программы, реализующей те же алгоритмы, что и более ранняя версия. Так, например, в Microsoft Office присутствует поддержка целого ряда форматов, которые на данный момент почти не используются.

Сравните с моим:
Обратная совместимость — когда новое приложение для новой ОС, работает под старой версией ОС.

Перевожу, если сразу непонятно:
Новое приложение, для того чтобы работать под старой ОС, должно сохранять старые функции, отсутствующие в новой.
Так же, как новый MS Office сохраняет старые форматы.
Да и вы не должны мне писать, однако пишете. И я не должен, однако пишу. Давайте-ка понизим накал — время жалко. Поэтому к делу.
Ваш пример опять неудачен, хотя бы потому, что не раскрыт. Попробую сделать это за вас. Ваши скрипты не заводятся по одной из трех причин:
1. Удалена команда. Случай редкий, поскольку снижена функциональность без объявления войны. Типичный breaking changes. Объявление обязательно, поскольку необъявленные брикинги чреваты судебными исками, и не всегда «As is» прокатывает.
2. Функционал команды изменен. Случай нередкий. Обычно в этом случае меняется и формат команды, включая имя. Просто для того, чтобы сохранить старую команду для обеспечения совместимости.
3. Функционал добавлен к другой команде. См. п.2
4. Функционал изменен без смены имени и формата. По каким-то неведомым причинам. Нетипично, но тогда это breaking changes и требуется объявление потому что… см. п.1. Где удобнее всего сделать? При вызове команды.
5. см. п.4 но без объявления — наш случай. Это косяк, потому что… см. п.1
Только не обратной, а просто совместимости. Обратная совместимость — когда новое приложение для новой ОС, работает под старой версией ОС.
А вот представьте — переход на Windows 10, и не одно приложение не работает. Ни одно! Как вы полагаете, было бы это breaking changes? Да ни фига, как бы эта винда не называлась — пусть даже «Windows XP чуть-чуть получше». Это была бы новая система. И к ней новые приложения. И никаких ченджей.
Да, я об этом и сказал. Но здесь речь идет о взаимодействие компонента не с классом компонентов, а одного с одним. ОС и консоль. Поэтому все брикинги должны быть убраны. Это невозможно, или затруднительно для класса компонентов (например для всех приложений под Windows при переходе на 10-ку), но обязательно для случая один на один.
Ну какой тут брикинг ченджс? Ребята, мы сделали новую прогу, но пара функций точно не работает, а еще процентов 50 мы точно не знаем. Удачного кодинга или юзинга!
Вы че, смеетесь? Или троллите меня? Я человек доверчивый, меня троллить легко — а вам ни славы, ни удовольствия.
Нет, не оно. «Оно» относится к ситуации, когда компонент рассчитан на взаимодействие с неким классом других компонентов. Тогда завляются требования, исполнение которых гарантирует корректное взаимодействие. Если таковые не исполняются, взаимодействие компонентов не гарантируется. Но возможно. Пожалуй, наиболее яркий пример — Windows 10. В которую и были внесены breaking changes, о чем было широко заявлено. Большиство простеньких приложений прокатывало, но более сложные, использующие функционал ОС по максимуму, судорожно начали лепить костыли. Ну и MS тоже в этом поучаствовала.
В нашем случае однм компонент взаимодействует с другим. ОС с консолью. Поэтому все костыли должны быть слеплены до релиза.
breaking changes абсолютно никакого отношения к рассмтриваемой ситуации не имеет.
Ну или если упереться в формальный термин, то в нашем случае breaking changes — это голимый косяк. Это примерно как однопоточное приложение признать потоконебезопасным.
Мой пост не о PS Core. И не о PS. Если вы перечитаете первые пару абзацев, то возможно уясните, что у меня нет задачи дать строгий алгоритм, а указать на возможные проблемы, и возможные пути их разрешения. Что я и сделал.
Повторюсь. Косяк в дефолтной консоли — он мой, и не является, не должен являться проблемой остальных. А уж когда я с ним разберусь… это, в принципе, никого не касается.
Отдельно дополню. Знаки вопроса в 5-ке при вводе — мой косяк, мне кажется я это дал понять в тексте, и он несущественнен для сути поста. Он только мой. А вот косяки 7-ки, это косяки консоли. Они общие, поэтому я на них и акцентировался.
Не знаю, и вникать не хочу. Если вы заметили, я на этом внимание не акцентировал, и не предлагал убить дефолтную 5-ку. Полагаю, что это результат моих дефолтных установок. Пока мне не мешает, при необходимости поправлю. А в качестве иллюстрации правильности программной локализации как раз даже наоборот — помогает.
Что касается «делаете неправильно» попробуйте выдать chcp 1251, например, а затем chcp 65001, тоже например. В разных консолях. А после каждой chcp запустить код типа:
Writeline(GetConsoleInputCP());
Writeline(GetConsoleOutputCP());

Результат вас удивит. В 5-ке вы получите
1251
1251
65001
65001
а в 7-ке:
1251
437 (скорее всего, потому что 437 — дефолтная, ну или другую текущую CP)
65001
437 (или опять же другую текущую)

Вот и вся проблема. Две абсолютно одинаковых команды не должны по-разному работать в разных версиях одной и той же программы.
вообще-то если «эта функция не является частью новой версии», то она не явялется частью новой версии. Неожиданно, правда?
Другое дело, что часто «эта функция» сохраняется для совместимости со старой версией, а к ней добавляется аналогичная новая с расширенным фнкционалом. Примерно так же, как это и произошло с PS и PS Core.
Добавлю. Если привычная функция, любая, в новой версии начинает вести себя некорректно, значительно снижая свою функциональность, имхо, это вполне достаточное основание полагать, что новая версия не доработана.
С чего бы это? Моя задача, конкретно здесь и конкретно на первом этапе, была предельно проста — показать как установить дефолтную кодовую страницу в реестре. Она устанавливается с помощью команды CHCP. CHCP в PS Core работает некорректно. Возможно, в PS Core есть масса других полезных функций. Да та же кроссплатформенность.
Но тема поста — не PS Core.
Вот смотрите. Вы мне не ответили на неявно поставленный вопрос — как с помощью CHCP изменить кодовую страницу вывода. Моя версия насчет формата с двумя страницами тоже не подтвердилась. А значит, по моему мнению, CHCP в данной версии работает некорректно.
да не, мне консоль удобна. Отсюда кстати вся это «странная активность». Нужда заставила.

Information

Rating
Does not participate
Registered
Activity