Xbox One S: обзор обновленной игровой консоли MIcrosoft

()

Обратная совместимость применительно к аппаратным или программным системам означает способность успешно использовать интерфейсы и данные из более ранних версий системы. Этот принцип распространяется не только на программы, которые работают с файлами, созданными в более ранних версиях этих же программ, но и касается ситуаций работы со схожими алгоритмами. Например, Perl поддерживает обратную совместимость с другим языком — Awk, — который Perl был предназначен заменить.

Обратную совместимость легче выполнять, если предыдущие версии системы были разработаны с поддержкой встроенных функций, таких как хуки, плагины или API, которые позволяют добавлять новые возможности вашему софту, однако все из области backward compatibility (c упором на back) может стать головной болью для разработчиков.

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

Разработчик каждый раз принимает трудное решение: должен ли продукт быть обратно совместимым. «Объективно правильного» решения здесь просто нет — в мире достаточно примеров успешной обратной совместимости и отказов от нее. Возможно, чей-то опыт поможет сделать вам правильный выбор прямо сейчас.

Давайте снова поменяем стандарт

Один из самых ярких примеров, когда об обратной совместимости решили забыть, это появление разъема USB 3.1 Type C (USB-C). Многие годы мы не ведали проблем: любой гаджет с разъемом micro- или miniUSB можно было воткнуть в любой соответствующий USB-порт. Но консорциум USB-IF создал разъем Type C, совершенно несовместимый механически ни с одним из сотен миллионов, а то и миллиардов смартфонов, кабелей, зарядных устройств и прочих гаджетов.

Еще одна проблема заключается в том, что не каждый USB-C кабель, порт, устройство и питание совместимы между собой: некоторые кабели с USB-C на обоих концах могут передавать лишь 5 Гбит/с, другие совместимы с 10 Гбит/с, а есть и те, что нельзя использовать для питания.

Ситуация привычная для тех, кто когда-то собирал себе компьютеры самостоятельно или занимался их апгрейдом. За последние 20–30 лет на наших глазах сменилось множество поколений шин и портов, почти каждое из которых не было обратно совместимо с предыдущими. Поменялись буквально все разъемы на материнской плате, и не по одному разу: сокеты процессоров, шины видеокарт и оперативной памяти, разъемы для подключения накопителей и периферии.

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

Универсальный разъем, предназначенный для передачи данных и питания, способен стать единственным портом на устройстве — и в этом несомненный плюс USB Type-C. Можно смириться с отсутствием обратной совместимости в гаджетах, и даже отметить для себя плюсы (более высокую скорость передачи данных и иные параметры электропитания), но в сфере ПО болезненнее воспринимается несовместимость новых версий со старыми. Особенно это касается корпоративных продуктов, стоимость которых и влияние на бизнес-процессы слишком велики.

Геймдев

В экосистеме ПК игры обратно совместимы в течение десятилетий. Такие утилиты как DOSBox позволяют нам играть даже в самые ранние ПК-релизы. Фактор совместимости, при которой переход на новую версию системы с большой вероятностью не влечет за собой проблем, похоже, сыграл роль в текущем доминировании Windows. Да, в результате 32-битные версии Windows поддерживали запуск 16-битного программного обеспечения Windows и некоторый софт MS-DOS (а в 64-битных версиях, соответственно, работают 32-битные программы), но Microsoft получили огромную тяжелую платформу, в которой есть совместимость даже с ошибками.

А как дела у приставок?

Отчет Ars Technica показал, как пользователи Xbox One и Xbox 360 используют свои устройства. Интересно, что данные из отчета по приставке Microsoft совпадают с мнением корпорации Sony, которая не рассматривает обратную совместимость в PlayStation 4 как нечто важное. По мнению руководителя Sony Interactive Entertainment Europe Джима Райана, об этой функции больше говорят, чем реально пользуются. Хотя Sony действительно предоставила возможность скачать игры для PS1 и PS2 на PS4.

Некоторые сайты проводили свои собственные опросы в преддверии выхода Xbox One и PS4 — тогда было отмечено, что многие игроки заявляли о желании обратной совместимости. Microsoft привлекла большое внимание к обратной совместимости с Xbox One. Функция была в целом хорошо реализована, но сейчас не особо привлекает геймеров.

В линейках Nintendo DS и Wii также есть много примеров обратной совместимости. Геймдевелоперы усилия компаний встретили более воодушевленно — больше не требуется изучать архитектуру с нуля, чтобы воспользоваться преимуществами нового консольного оборудования. Обратная совместимость позволяет относительно просто поддерживать релизы для всех устройств, созданных на основе общей архитектуры.

Обнародован список получивших обратную совместимость с Xbox One игр

В стартовую линейку игр с Xbox 360, адаптированных для консоли Xbox One, попали 104 проекта. Их полный перечень в понедельник, 9 ноября, приводит портал DualShockers.

Список игр с обратной совместимостью

A Kingdom for Keflings A World of Keflings Alien Hominid HD Assassin’s Creed II Asteroids & Deluxe Banjo Kazooie: N n B Banjo-Kazooie Banjo-Tooie BattleBlock Theater Bejeweled 2 Bellator: MMA Onslaught Beyond Good & Evil HD Blood of the Werewolf BloodRayne: Betrayal Borderlands Call of Juarez Gunslinger Castle Crashers Castlestorm Centipede & Millipede Condemned Crazy Taxi Deadliest Warrior: Legends Defense Grid DiRT 3 DiRT Showdown Discs of Tron Doom Doom II Dungeon Siege III Earthworm Jim HD Fable II Fallout 3 Feeding Frenzy 2 Gears of War Gears of War 2 Gears of War 3 Gears of War: Judgment Golden Axe Halo: Spartan Assault Hardwood Backgammon Hardwood Hearts Hardwood Spades Heavy Weapon Hexic HD Ikaruga Arcade Jetpac Refuelled Joy Ride Turbo Just Cause 2 Kameo LEGO Pirates of the Caribbean: The Video Game LEGO Star Wars: TCS Lode Runner LUMINES LIVE! Mass Effect Metal Slug 3 Metal Slug XX Might & Magic Clash of Heroes Mirror’s Edge Missile Command Monday Night Combat Monkey Island 2: SE Monkey Island: SE Ms. Splosion Man Mutant Blobs Attack N+ NBA JAM: On Fire Edition NiGHTS into dreams… OF: Dragon Rising Pac-Man C.E. PAC-MAN CE DX+ Perfect Dark Perfect Dark Zero Phantom Breaker: Battle Grounds Pinball FX Plants vs. Zombies Prince of Persia Putty Squad R-Type Dimensions Rayman 3 HD Sacred Citadel Sega Vintage Collection: Alex Kidd & Co. Sega Vintage Collection: Golden Axe Sega Vintage Collection: Monster World Sega Vintage Collection: Streets of Rage Shadow Complex Sonic CD Sonic The Hedgehog Sonic The Hedgehog 2 Sonic The Hedgehog 3 Super Meat Boy Arcade Supreme Commander 2 The Stick of Truth Tom Clancy’s RainbowSix Vegas Tom Clancy’s RainbowSix Vegas2 Torchlight Arcade Toy Soldiers Arcade Toy Soldiers: Cold War Tron: Evolution Ugly Americans: Apocalypsegeddon Viva Piñata Viva Piñata: TIP Wolfenstein 3D Zuma

Со временем этот список будет расширяться. Уже известно, что в декабре его пополнят Halo Reach, Halo Wars, Call of Duty: Black Ops, Bioshock, Bioshock 2, Bioshock Infinite и Skate 3. Компания Microsoft, которая стоит за производством консоли, хочет перенести на нее всю игровую библиотеку с прошлого поколения устройства.

Обратная совместимость будет включена в Xbox One 12 ноября. В этот день в свободном доступе появится следующее обновление, которое добавит запускающий игры с Xbox 360 эмулятор. Вместе с тем сама приставка перейдет под управление новой операционной системы Windows 10. В дополнение к визуальным изменениям в интерфейсе устройство получит ряд важных нововведений.

Microsoft не скрывала планов по переносу игр с одного поколения Xbox на другое, однако официально об этом объявила в июне 2015-го. Оптимизацией к новой архитектуре занимаются инженеры компании, правообладатели могут как дать разрешение, так и запретить портирование. Помимо игр для приставки адаптируют дополнения и разные функции, в частности облачные сохранения. Онлайновая инфраструктура устаревших игр на Xbox One будет функционировать при условии, что их серверы все еще запущены и получают техническую поддержку.

У ближайшего конкурента Xbox One — PS4 — обратная совместимость невозможна на аппаратном уровне. По словам главы Sony Computer Entertainment Worldwide Studios Шухея Йошиды (Shuhei Yoshida), для реализации этой функции пришлось бы полностью переделать архитектуру консоли. Вместо этого Sony выпускает на PS4 переиздания главных блокбастеров PS3.

Обратная совместимость в языках

()

Каждый популярный язык программирования имеет ясную эволюцию, большую часть его жизни обозначенную версией: у вас есть Java 5, 6, 7 и т. д., PHP 5.1, 5.2, 5.3 и т. д. Каждая новая версия исправляет ошибки и добавляет функции, но если язык (или платформа) имеет фундаментальные изъяны, то разработчики либо избегают их (если могут), либо учатся жить с ними.

Разработчики языков получают много отзывов от программистов, использующих тот или иной язык программирования в своей работе. Кажется, что однажды выйдет версия языка, в которой все проблемы исчезнут. Но этого не происходит. Почему так? Один из вариантов — обратная совместимость.

У популярного PHP есть недостатки, и те, кто давно с ним работают, прекрасно знают, как можно обойти все ловушки и ямы языка. Теперь предположим, что в новой версии языка исправили все минусы, но потеряли обратную совместимость. В результате разработчик тратит время на обновление кода до актуальной версии PHP. То самое время, которое он мог бы потратить на выполнение запросов клиентов или внедрение новых функций.

Учитывая эти проблемы, понятен мотив тех, кто не хочет переходить на новую версию PHP, даже если она лучше, понятнее и безопаснее и т. д. Вы скажете, что это гипотетический пример. Возможно… Но в мире еще есть программисты, которые до сих пор работают на COBOL! Язык появился в 1958 году. К 1997 году активно использовалось около 240 миллиардов строк кода на COBOL, кодом на этом языке обрабатывалось около 90% финансовых транзакций в мире и 75% коммерческих транзакций. Самое интересное — это потрясающая совместимость языка: тот COBOL, который использовался в 60-х, может работать и на современном оборудовании.

Есть продукты, которые в принципе не могут поломать обратную совместимость, потому что это поставит на них крест. Например, Java: основная сфера применения этого языка — бизнес-приложения, по всему миру написано астрономическое количество строк кода, в том числе в огромных корпоративных кодовых базах. Код, написанный 20 лет назад, до сих пор работает. И если завтра выйдет версия Java, в которой разработчики накрутят фантастические фичи, но без обратной совместимости, то никто больше не станет инвестировать очень большие деньги в разработку серьезных — и дорогих — приложений. Так что Oracle придется либо всю жизнь тянуть за собой груз старых версий, либо открывать дорогу нововведениям, но при этом теряя большую долю клиентов. На третий вариант — поддерживать одновременно две ветки Java, с полноценным сопровождением и развитием — не согласится сама корпорация.

В свое время разработчики Python нарушили обратную совместимость, тем самым разозлив кучу пользователей. Большинство программистов не считало язык Python 2.x «ошибочным» или содержащим «фундаментальные изъяны». У них не было таких жалоб, какие появляются у разработчиков на PHP.

Сегодня сообщество языка разделено на два лагеря, при этом масса готовых библиотек под вторую версию не дает многим мигрировать на третью, хотя та и привнесла в язык ряд сильных улучшений. В результате закрепилось мнение, что «Python 3 — это худшее, что могло случиться с сообществом Python».

У проблемы есть и обратная сторона — Python 3 был выпущен в декабре 2008 года, но поддержка языка во фреймворке Django появилась только спустя пять лет.

Хотя нет 100% совместимости между C и C ++, но даже в C ++ есть обратная совместимость с очень ранними функциями языка (включая некоторые функции, унаследованные непосредственно от C).

Доступные игры

К настоящему времени насчитывается более четырехсот доступных геймерам игр обратной совместимости, и это количество продолжает увеличиваться. Среди них, например, все части Assassin’s Creed до Rogue включительно, несколько игр из серии Halo, трилогия Mass Effect, многие игры из вселенной «Звездных войн» и т. д. Полный список игр обратной совместимости доступен пользователям на официальном сайте по адресу xbox.com.

Накопление технического долга

Иногда проблема возникает потому, что мы просто не в силах предсказать будущее. В 1981 году «Интернета» хватало всем и каждому — была описана первая широко используемая версия протокола IPv4, использующая 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 возможными уникальными адресами.

4,3 миллиарда адресов IPv4 выглядели более чем достаточно для ARPANet. IPv6 появился в 1998 году (описан в RFC2460), но популярности протокол не снискал. Потребовалось более десяти лет, чтобы на проблему ограниченного количества адресов обратили внимание. И вот тогда стало понятно, что гигантская база разработанного и установленного программного и аппаратного обеспечения IPv4 требует сохранения обратной совместимости IPv6 с IPv4.

«Внезапно» выяснили, что IPv6 был разработан без полноценной совместимости с предыдущей версией — узел с поддержкой только IPv6 не может подключиться к узлу, работающему только по IPv4. Переход от IPv4 к IPv6 требовал «двухстековой» фазы, во время которой хост-компьютер взаимодействовал бы с обоими стеками протоколов одновременно, используя стек протокола IPv6 для взаимодействия с другими хост-компьютерами IPv6, а стек протокола IPv4 для взаимодействия с другими хост-компьютерами IPv4.

Некоторые коммутаторы, маршрутизаторы и устройства безопасности также оказались не совместимы с IPv6. Таким образом процесс перехода на IPv6 столкнулся со множеством проблем, решать которые предлагается разными способами. Ни одно из существующих решений нельзя назвать идеальным, но каждое из них найдет свое применение.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями: