LINUX.ORG.RU

Ян Мёрдок: Важность обратной совместимости


0

0

Создатель Debian Linux Ян Мёрдок в своём блоге попытался объяснить почему важна обратная совместимость для приложений и операционных систем.

Источник

Перевод

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от nofate

> на вкладке "Совместимость" в разделе "Параметры экрана" установите опцию 256 цветов

Рецепт неработает. Придумывайте следующую отмазку

no-dashi ★★★★★
()
Ответ на: комментарий от jackill

>Взять тот же софт из Red Hat 7.3 и поставить на Fedora 4 - что из этого выйдет, напомнить?

Напомни. Вот... как раз вчера делал любовнице новый компьютер. Ставил на 4 Энтерпрайз программы из RH7.3 (sic!) mpg123 xsnow xview. И из ASP 9 xine и "цивилизацию" не помню откуда. Работает зараза.

Beria.

anonymous
()
Ответ на: комментарий от anonymous

>Не понимаю... какая ещё обратная совместимость при наличии открытых исходных кодов, то!?! Фтопку устаревшие технологии, да здравствует прогресс, и оптимизация... Если какая-то программа не хочет работать после обновления системы, значит нужно её исправить! Имхо, всё очевидно. И ещё, зачем оно нужно, программное обеспечение десятилетней давности? Тупость!

Я возмущён! =)

Полностью согласен

Lemon_joe
()
Ответ на: комментарий от Quasar

Воще то, приведенный пример не есть обратная совместимость как таковая. Это кастыль для запуска одной программы. Обратная совместимость, это когда тобой(другом/малой конторой/средней конторой....) написанная программа под 95вынь(к примеру), без проблем запускается под ХР. А когда мелкий софт должен каждую прогу дизасемблить и сделать под нее костыль - это не обратная совместимость.

anonymous
()
Ответ на: комментарий от no-dashi

> Рецепт неработает. Придумывайте следующую отмазку

Очень интерестно, а я на XP пол года назад ее в очередной раз прошел был. Проблем не было. Может быть надо там же выставить разрешение 640х480 и запускать в режиме совместимости с windows 98? А может у Вас не XP? :)

nofate
()
Ответ на: комментарий от nofate

> Может быть надо там же выставить разрешение 640х480 и запускать в режиме совместимости с windows 98?

Пробовал. Это все было - и 256 цветов, и 640x480, и Windows 98. Падает.

no-dashi ★★★★★
()
Ответ на: комментарий от wa

>Коммерческе производители БУДУТ трахать мозг и _НЕ_БУДУТ_НИКОГДА_ _НИЧЕГО_ пересобирать, нравится ли это комуто или нет.

Уже пересобирают. И тенденция будет шириться.

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

У хороших крупных компаний поддержка игр тоже хорошая и в случае проблем с теми же виндовыми сервиспаками тоже идет пересборка и бесплатные обновления.

Благо это обычно несложно.

jackill ★★★★★
()
Ответ на: комментарий от wa

> Ну какая-какая, на уровне иходных кодов. Вот вчера собирал KDE 3.5.5 из исходников на машине исталляции 2002-го года. Собрал. За рабочий день. Но если бы не был программистом, шансы насладиться новой KDE были у меня равны 0.0%. А на исталляцию 1998-го года gcc 4.1.1 водрузить из исходников так и не удалось.

Это не обратная совместимость. С таким же успехом ты не водрузишь ie7 на w9x. Вот если бы ты взял KDE от 2000 года и попытался водрузить на дистрибутив от 2006 года - вот это была бы проверка обратной совместимости :)

В остальном согласен :)

anonymous
()

Отдельные личности пытаются доказать, что MS эту совместимость поддерживает. Но именно в том Баяне который взят за основу Джоэль пишет что лагерь Чейна проиграл и уже давно. И теперь в MS обратная совместимость не в почёте. И даже не через костыли (где виноват девелопер и только девелопер). А даже новые фреймворки не обязаны теперь быть совместимы с предыдущими. ИМХО он приводит примеры проблем при апгрейде .NET к новой версии. Не говоря уже о том что технологии в MS отмирают раньше чем они успели распространиться.

anonymous
()
Ответ на: комментарий от jackill

> У хороших крупных компаний поддержка игр тоже хорошая и в случае проблем с теми же виндовыми сервиспаками тоже идет пересборка и бесплатные обновления.

Недолго. Не более 4-х лет обычно. Чаще гораздо меньше. А это очень мало.

wa
()
Ответ на: комментарий от wa

> Недолго. Не более 4-х лет обычно. Чаще гораздо меньше. А это очень мало.

4-х лет ? Это ты хиты вспоминаешь :) Вообще средний срок жизни игрушки 6 месяцев.

anonymous
()
Ответ на: комментарий от DOKA

> И тебе удачно сходить в сторону биореактора ;) Вот именно, что разраб (в данном случае МС) лижет пользователю зад, добавляя костыль, лишь бы у пользователя всё работало. Да, у МС есть куча недочетов, но именно проблемы совместимости решаются у них очень хорошо. Взять тот же софт из Red Hat 7.3 и поставить на Fedora 4 - что из этого выйдет, напомнить? А у меня дома и проги с 95 винды нормально работают под ХР. ;)

Давай-давай, не жди пинка ;) И ты очень даже зря признался, что вендокодеры - суть напрочь лишенные таланта существа с творческой импотенцией на борту, не могущие осилить даже "чтение", за работоспособность кривых поделок которых должны отдуваться другие.

Gharik
()
Ответ на: комментарий от no-dashi

> Расскажи это тем, у кого ГЭГ (игруха такая) под XP упорно не работает.

Ээээ нееее, не нужно рассказывать сказки - все работает :) Правда на втором диске может беспричинно зависнуть ;)

Gharik
()
Ответ на: комментарий от anonymous

>Отдельные личности пытаются доказать, что MS эту совместимость поддерживает. Но именно в том Баяне который взят за основу Джоэль пишет что лагерь Чейна проиграл и уже давно. И теперь в MS обратная совместимость не в почёте. И даже не через костыли (где виноват девелопер и только девелопер). А даже новые фреймворки не обязаны теперь быть совместимы с предыдущими. ИМХО он приводит примеры проблем при апгрейде .NET к новой версии. Не говоря уже о том что технологии в MS отмирают раньше чем они успели распространиться.

Не путай возможность запуска старых программ на новых версиях ОС и эволюционный/революционный путь развития технологий программирования. Технологии изменяются слишком часто, становясь несовместимыми со своими предыдущими версиями, и разработчику приходится выбирать остаться на старой технологии, перейти на новую или вообще бросить МС. Многие проги, написанные под 95 винду, запускаются и на 64-битной висте.

anonymous
()
Ответ на: комментарий от jackill

>Смотря что ставить.

>И есть chroot - можешь туда нужные либы воткнуть.

Ну это не меньший костыль, только делать его придётся не разрабам ОС, а каждому пользователю. А это лишний геморой. Хотя решение сгодится, если таки непременно надо что-то запустить. Но это не меньший костыль, чем указаный в сабже топика.

DOKA
()
Ответ на: комментарий от Gharik

> И ты очень даже зря признался, что вендокодеры - суть напрочь лишенные таланта существа с творческой импотенцией на борту, не могущие осилить даже "чтение", за работоспособность кривых поделок которых должны отдуваться другие.

Я такого сказать не мог, ибо сам являюсь win-программистом. Если ты имеешь в виду случай, когда программа не работает в новой версии ОС, потому что там сменили путь к папке с C:\Windows на C:\Vista, а в проге строчка "C:\WIndows" хардкодед (а не получается через API), то тут действительно проблема разработчика программы. А если разработчик ОС что-то меняет у себя, то он должен обеспечить работу ПО, которое следует старому стандарту.

DOKA
()
Ответ на: комментарий от DOKA

> А если разработчик ОС что-то меняет у себя, то он должен обеспечить работу ПО, которое следует старому стандарту.

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

Gharik
()
Ответ на: комментарий от DOKA

DOKA> Да, у МС есть куча недочетов, но именно проблемы совместимости решаются у них очень хорошо.

Да ну? Наглядный и пока что живой пример со свистой показывает обратное.

DOKA> Мсье злится оттого, что под Windows можно нормально работать без правки конфигов, а под Linux нельзя?

Что курил? В венде НЕЛЬЗЯ нормально работать без бубна или дополниетльной настройки - факт. Взять хотя бы то, что в той же XP жутчайшие тормоза на новейших компьютерах при прокрутке окна (web страничка, текстовый файл и т.д.). Разве в ЭТОМ можно нормально работать?

Под GNU/Linux хоть конфиги можно поправить, чтобы работало, если не работает. А под вендой даже это не сделаешь - там ужасный реестр, причём непонятно, что править там.

Rolex> Почитайте чейнджлоги к виндовым драйверам от nVidia и AMD/ATI - похоже они на 90% из таких костылей сделаны!

Венда же костыльная система. Вот для нормальной работы в ней костыли видать и нужны =)

wa> Именно поэтому под Линукс будет мало коммерчесеских приложений. А те, что будут, будут быстро умирать

maya вроде не R.I.P. ...

Gharik> Ээээ нееее, не нужно рассказывать сказки - все работает :) Правда на втором диске может беспричинно зависнуть ;)

Нифига себе обратная совместимость... На одной инсталляции венды работает, но криво, а на другой не работает =)

P.S.

Помните историю с SP2, где много популярных игр перестало работать? ;)

DOKA> Ну это не меньший костыль

chroot это инструмент, а не костыль. Учи матчасть.

Или mount -o loop -t iso9660 myimage.iso virtualcd тоже костыль?

Quasar ★★★★★
()

[:|||||||||||:] Это на ЛОРе еще год назад пробегало. Причем в более длинном варианте.

Fr_A
()
Ответ на: комментарий от Quasar

> Взять хотя бы то, что в той же XP жутчайшие тормоза на новейших компьютерах при прокрутке окна (web страничка, текстовый файл и т.д.). Разве в ЭТОМ можно нормально работать?

Эээ... Гм... Чего-то я такого не наблюдал. Cure2Duo можно считать новейшим компьютером или уже нет ? :)

> Помните историю с SP2, где много популярных игр перестало работать? ;)

Помним. И не только игр. Просто MS начала закручивать гайки на предмет безопасности. Хотя до этого она долгие годы выдавала рекомендации програмерам, как чего писать и куда стоит соваться, а куда нет. Аналогичная ситуация была при выходе w2k.

anonymous
()
Ответ на: комментарий от Quasar

> Что курил? В венде НЕЛЬЗЯ нормально работать без бубна или дополниетльной настройки - факт. Взять хотя бы то, что в той же XP жутчайшие тормоза на новейших компьютерах при прокрутке окна (web страничка, текстовый файл и т.д.). Разве в ЭТОМ можно нормально работать?

А почему у меня такого безобразия никогда и нигде не было? Я что-то не так делаю?

DOKA
()
Ответ на: комментарий от DOKA

Неа, ты просто __в курсе__, что венды в обязательном порядке требуют сторонних дров для нормальной работы. Особенность у неё такая, иначе будет жужжать через три ноги копыто.

Gharik
()
Ответ на: комментарий от Gharik

> Неа, ты просто __в курсе__, что венды в обязательном порядке требуют сторонних дров для нормальной работы. Особенность у неё такая, иначе будет жужжать через три ноги копыто.

Тупой фанатик, а GNU/Linux не требует? Где же мля fglrx и nvidia в ядре? А где драйвера софтмодемом и USB ADSL-модемов в ядре? А где драйвера внешних твтюнеров и вебкамер? Если к винде ставишь драйвера и generic меняется дрова видяхи либо IDE контроллера заменяются на специфлизированные, то в linux ни много не мало нужно обновлять все ядро нахер и для прикручивания новых железок нужно убиваццо с бубном и патчами в зубах.

anonymous
()
Ответ на: комментарий от Quasar

> Что курил? В венде НЕЛЬЗЯ нормально работать без бубна или дополниетльной настройки - факт. Взять хотя бы то, что в той же XP жутчайшие тормоза на новейших компьютерах при прокрутке окна (web страничка, текстовый файл и т.д.). Разве в ЭТОМ можно нормально работать?

Не пи*ди. Почему у меня в XP ни на Celeron 1100/i815/256RAM/GF2MX400, ни на P4 2.8/i865/512RAM/R9600XT ни на Core Duo 2 6300/1GB RAM/i965/GF7300GT ниче не тормозит? У тебя там что за говно386 с говноинтегрированной говновидяхой? Вот KDE 3.x на cel 1100 тормозил серьезно. ПО количеству бубнов на новом десктопном железе винда может дать огромную фору любому линуксу и только фанат будет утверждать обратное.

> Венда же костыльная система. Вот для нормальной работы в ней костыли видать и нужны =)

Костыльная-некостыльная, а с софтом и игрушками напряга нет, да и с поддержкой разношерстных десктопных железок в отличие от линухов. Юзеры выбирает ОС не для того чтобы на нее молицца, как это делают многие линуксоиды, а для того, чтобы работать/играть с минимальным напрягом, а не заниматься пересоркой ядер и софта, прикручиванием патчей и поиском убогого альтернативного софта.

> Нифига себе обратная совместимость... На одной инсталляции венды работает, но криво, а на другой не работает =)

А уж на линуксах-то как все работает, особенно если пользователь не гуру-программист с десятилетним стажем!

> Помните историю с SP2, где много популярных игр перестало работать? ;)

Лично я не помню. Вы, наверняка, выдумываете. Модет проблемы и были, но не в таких масштабах как об этом любят выть комплексующие линуксоиды, наслушавшиеся баек.

anonymous
()

Может и оффтоп, но, по крайней мере, не такой жуткий боян, как у Мердока:

======================================================================

Раньше я как-то не задумывался, что обеспечение совместимости новой версии операционной системы с существующими приложениями - сложная задача. Пока не столкнулся сам. Теперь, совсем немного поварившись в этом котле, я начал ближе к сердцу принимать истории, вроде тех, что рассказывает Raymond Chen. Перед выходом Windows Vista, как, впрочем, и перед выходом предыдущих версий системы, было протестировано огромное количество приложений на совместимость с новой версией ОС. Помимо ошибок в самой операционной системе была обнаружена масса проблем с самими приложениями: начиная от странностей при проверке версии системы и заканчивая грубыми ошибками в коде приложений, которые не проявлялись ранее только по чистой случайности. Например, одно из приложений делало проверку на наличие запрещённых символов в пути и в список запрещённых (по мнению приложения) символов входили круглые скобки. В результате, оно отказывалось работать в каталоге “Program Files (x86)”, где по умолчанию устанавливаются все 32-х битные приложения на 64-х битной системе. Ошибки обнаруженные в самой системе были исправлены. Не скажу, что абсолютно все, но, определённо, подавляющее большинство ошибок было исправлено. Осталась проблема, что делать с ошибками в самих приложениях. В Windows эта проблема решается с помощью механизма заплаток. Входит CreateProcess. Функция CreateProcess стоит на переднем крае борьбы за совместимость. Как я уже говорил ранее, CreateProcess, помимо собственно запуска процесса, выполняет множество дополнительных задач. Так вот, во время создания процесса, CreateProcess проверяет, не входит ли запускаемое приложение в список “проблемных” приложений. Если это так, то в адресное пространство создаваемого процесса загружаются необходимые заплатки и лишь после выполнения “заплаточного” кода, управление передаётся приложению. Как правило, заплатки перехватывают вызовы системных функций и имитируют поведение предыдущих версий системы. Самый простой пример – заплатка перехватывает вызовы функции GetVersion и GetVersionEx и возвращает Window XP SP2 в качестве версии системы. Для некоторых программ этого достаточно, чтобы привести их в чувство. Другие заплатки делают более сложные вещи: исправляют hard coded пути, корректно обрабатывают коды ошибок вроде ERROR_ACCESS_DENIED и т.д. Замечу, что хотя я использую слово “заплатки”, эти заплатки по большому счету не изменяют код приложения. Список или вернее база “проблемных” приложений весьма обширна. В скомпилированном виде она занимает больше 2-х мегабайт в Windows XP SP2 и более 4-х мегабайт в Windows Vista (суммарный объем всех .sdb файлов в каталоге “%windir%\AppPatch”). В базе указываются все признаки, по которым распознается приложение: информация о версии, размер и контрольная сумма файла, имена сопутствующих файлов и т.п. Там же указывается список заплаток применяемых для каждого приложения. Зачем это всё нужно? Об этом хорошо написал Joel Spolsky в статье How Microsoft Lost the API War. Благодаря этим усилиям на Windows до сих пор можно запустить очень старые приложения, которые будут работать, как ни в чем не бывало. Пользователи могут рассчитывать, что переход на новую версию системы с большой вероятностью не повлечет за собой проблем с совместимостью. В конечном итоге это, по видимому, один из факторов, который привел к доминированию Windows на персональных компьютерах.

=======================================================================

Без авторства, бо прошло по внутренней рассылке...

eugine_kosenko ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.