Обратная совместимость

В новых версиях операционных систем часто нарушается обратная совместимость, а программистам нужно буквально переписывать свои программы каждые 3 года, иначе они не будут работать. Почему нельзя добавлять новые возможности без нарушения обратной совместимости?

Я думаю, что новая версия операционной системы каждые 5 лет была бы оптимальна с точки зрения разработчиков. А между релизами — выпуск сервиспаков, исправление ошибок, разработка и тестирование новых возможностей.


Например, 32-разрядный модуль winhelp начиная с висты удалили, а оставили 16-разрядный, хотя возможность выполнять такие программы тоже убрали.

Или, например, несовместимость кода программ, написанных в visual studio 2010, и win2k. Или современных версий скайпа и winxp sp2, браузера хром (50 и выше) и winxp/vista.

Что технически мешало выпустить ie9 под winxp, добавив нужные библиотеки, тем самым избавившись от проблем ie8? Или, например, браузер ms edge 12/13 и win7 sp1.

Я помню, как рекламировали vista/7. По сравнению с десяткой эти операционные системы вообще, можно сказать, не обсуждались.

В восьмёрке выпилили меню пуск, а потом его вернули в урезанном виде и представили как новую возможность.

Плюс в десятке многие стандартные элементы десктопного интерфейса сильно изменили (например, часы, некоторые элементы панели управления). А классический калькулятор убрали и заменили метро-версией.

Зачем настольные операционные системы превращать в планшетные и смартфонные?

Каждая новая операционная система преподносится Microsoft как нечто совершенное и идеальное. А старые версии объявляются устаревшими и не рекомендуются к использованию.

А относительно старые операционные системы на новые компьютеры уже проблематично установить. Причём на уровне драйверов и компьютерного железа.

Такие вот мысли (изменённая версия 2016 года). Это моя первая статья на хабре, хотя зарегистрировался ещё в 2013 году.

Олег.
Поделиться публикацией

Комментарии 19

    +13
    Это моя первая статья на хабре

    Вот и зачем? Вот вы написали страницу текста, и что?

      –12
      Хотел поделиться своими мыслями.
        +8

        Вот вы поделились своими мыслями. И что?


        Вы заметили какую-то ранее неизвестную закономерность?


        Вы предложили какое-то решение? Какой у вас опыт написания и поддержки широко используемого ПО на протяжении ну хотя бы лет пяти, и сохранения обратной совместимости все это время?

      0
      Welcome to Linux
        +4

        Ага, тоже мне пример, в котором нужно поставить конкретную версию убунты с конкретной версией ядра и конкретными версиями пакетов чтобы собрать чертов хромиум, перебирать 15 комбинаций разных библиотек чтобы заставить работать Nvidia, править ручками системные файлы чтобы драйвера intel установились (хотя они ставятся после этого), бегать с бубном чтобы поставить старую версию node на новую версию линукса и с еще большим бубном чтобы новую ноду на старый линукс. Это я молчу про лотерею с тем, заведется ли HiDPI экран в очередном релизе ядра или нет, как и будет ли поддерживаться thunderbolt на конкретном ноутбуке. Да и как там wayland и system-d поживают?

          +1
          Не надо писать код для ubuntu, пишите на gcc, openCL, etc… или страдайте от windows
            +1

            Я сам сижу на линуксе 7 лет. И с уверенностью говорю, что каждый раз обновление системы до новой версии несет сюрпризы и отваливание чего-то. Более того, тот же хром не мной выбран, тут вполне конкретная инструкция


            Тот же вейланд, хоть и гораздо стабильнее стал, продолжает портить жизнь. Конечно, можно сидеть на fedora 20 до посинения и никогда не обновлять и ничего не поломается, но так же можно и на windows XP сидеть. Речь же все таки про обновление. Хотя "ничего не поломается" не факт, нет гарантии, что в репозиториях не случится такая же шумиха как в npm недавно и не удалят старые версии пакетов с подозрением на уязвимости.


            пишите на gcc, openCL

            Они, к слову, тоже не без грешка с компилированием старого кода, вон вопросы даже есть на stackoverflow

              –1
              Я сам сижу на линуксе 7 лет.
              а толку?
                +1

                Читаю я всякие такие посты и каждый раз думаю, как же скучно я живу — почему-то у меня на моей Генте ничего не ломается и все работает уже второе десятилетие, хотя я на анстейбле и регулярно обновляюсь.


                А на Windows, которая у меня только для полутора игор, опять что-то отвалилось, и она снова повадилась включаться сама из спящего режима. А если ее выключать целиком, то в одном из двух включений после запуска какой-то системный процесс жрет 100% CPU минут 10-15. И апдейты никак не могут установиться.

                  0

                  Я не говорю что винда прекрасна. Мои потуги поработать на ней всегда заканчиваются вопросом «как люди этим пользуются». Говорю что линукс не без грешка.
                  А что касается генту — не всем хочется плясать вокруг компьютера несколько вечеров, пытаясь завести Xilinx Vivaldi или alters quartus (или как там ее Интел переназвал). Ну а в терминале то да, вим + питон, в федоре три года проблем не знал, все работало как часы, идеальная рабочая машина.

                    0

                    Я поплясал вокруг компьютера лет 14 назад один раз неделю, чтобы понять, что там как в этих линуксах, и с тех пор эта инвестиция отбилась стократно.


                    А заводить… Ну я вот пользуюсь clion, intel vtune, intel advisor, mkl, cuda раньше пользовался, ещё всякой ерундой. Всё заводится просто по emerge cuda, emerge vtune и так далее. В редких случаях (например, интеловских) надо руками скачать пакет, но это вопрос к лицензированию своих тулз интелом.


                    А вот представлять, как я буду заниматься разработкой на плюсах, на хаскеле или на ещё чём чуть менее мейнстримном, например, под той же виндой, я не хочу даже в самом страшном сне.


                    Тем более, что на винде было очень смешно даже с 3k-экраном на ноуте, на котором стояла стоковая винда. А на рабочем столе с линуксом у меня два 4k-экрана, и всё просто работает, с хорошим качеством, поддержкой HiDPI, без мыла и так далее.

              +1
              В копилку поделюсь своим случаем (ибо длится это уже больше года и сегодня вот опять приключилось (сам перезагрузился комп и после загрузки опять слетели дрова)).

              У меня вполне так нормальный комп для программиста (14Gb ОЗУ, Core i7 и в том духе). Но видюха была совсем простая, офисная, работала на два моника. Я захотел себе три моника и купил GeForce GTX 1060 (к нему конечно же пришлось блок питания помощнее взять).

              Так вот, поставил GTX 1060, комп не загружается… То есть вообще. Здесь конечно же убунта еще не при чем, но она будет, дальше. Короче после трех часов танцев с бубнами добился загрузки компа на следующей конфигурации: старая видюха была заменена на другую простенькую GeForce 210 в дополнение к GTX 1060. К 210 подключен один моник, к 1060 два других. Запускается только вот с такой конфигурацией:) Если поставить одну только 1060, не запускается вообще. Но это скорее всего с мамкой связано. То есть при запуске компа она проверяет видюху и не запускается, если не найдет 210-ую, а потом в процессе загрузки переключается на 1060 as default.

              Так вот, на убунте год не мог драйвера поставить. Ставишь nvidia — убунта не загружается. В очередной раз очень захотелось поиграть в гаму какую-нибудь и решил во что бы то ни стало поставить дрова. 3 часа плясок с бубнами — и ура! Поставил! Но: работает только два моника из трех :) То есть на запуске компа, как и говорилось ранее, стартует младшая видюха, а после запуска переключается на старшую, но младшая судя по всему просто не может работать на новых дровах (стоит 430 и ничего из доступного списка для 1060 не подходит для 210). То есть у меня выбор: или сидеть в хорошем качестве на 2 мониках, или на трех: но fps низкий :)
              Но это ведь еще не все. При желании откатиться до nouveau — тоже ооочень сложный квест. Сегодня вот, как я говорил, опять дрова слетели и из трех моников работал один с расширением 1260*1080. Восстановить nouveau так и не получилось (хотя вроде как по старой накатанной все делаю). Пришлось опять поставить nvidia и сижу вот на двух мониках опять:)
            +2
            То есть, вы выбрали в-индус, а теперь жалуетесь? На кого?
              –5
              Я не жалуюсь. Я сознательно выбрал Винду, хотя линукс (дебиан, например) тоже устанавливал. Просто мысли.
              +1
              x86 архитектура меняется (развивается/умирает), ARM «лезет» на десктопы
              в Microsoft это понимают, пытаются уменьшить зависимость (лепят .NET Core, вместо своего браузера Chrome, skype на electron, ОС по подписке ...)
                +6
                В новых версиях операционных систем часто нарушается обратная совместимость, а программистам нужно буквально переписывать свои программы каждые 3 года, иначе они не будут работать. Почему нельзя добавлять новые возможности без нарушения обратной совместимости?

                Очень интересно, что такого вы разрабатываете, что перестает работать каждые три года?


                Например, 32-разрядный модуль winhelp начиная с висты удалили, а оставили 16-разрядный, хотя возможность выполнять такие программы тоже убрали.

                Да, в 2019 году плакать про потерю совместимости с 16-ти битными костылями...


                У этого есть и обратная сторона: многие вещи 30-40 лет назад были спроектированы без учета современных потребностей, мир и архитектуры давно поменялись и продолжают развиваться. Если продолжать тянуть легаси из тех времен, системы рано или поздно раздует и они просто лопнут под обилием тех костылей, которые приходится использовать для того, чтобы новый функционал и новые возможности могли сосуществовать со старыми. Особенно если они нужны меньше чем сотой процента пользователей — это банально не выгодно.

                  0

                  Основной принцип — Tempora mutantur, nos et mutamur in illis

                    0
                    Зачем настольные операционные системы превращать в планшетные и смартфонные?


                    Ответ легко найти в гугле по запросу «История о том, как у тебя отжимали компьютер».

                    Настольная операционная система крайне невыгодна крупному бизнесу:

                    1) Пользователь может улучшать её частично, что удлиняет период полной замены.
                    2) У пользователя намного больше доступа к узлам настольной системы, чем к узлам мобильной. Это уже не только про улучшение, но и про настройку, и про контроль.
                    3) Отсутствие трекинга, прямой привязки к местоположению и уникальным идентификаторам (вроде номера телефона).

                    Ну и некоторые другие мелочи.

                    Самый лучший вариант — это литой неразборный неотключаемый кирпич, который раз в год обязательно нужно менять. Лучше бы совместить его с платежной системой и системой общественного транспорта, чтобы пользователь в принципе из дому без этого устройства не выходил.
                      –1
                      image

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое