Насколько важный назад-совместимость? [закрытый]

Вместо прямого назначения указателя вы должны либо объявить статические буферы и использовать strcpy с ними, либо использовать strdup не забудьте освободить память после того, как она не понадобится)

6
задан Scott Dorman 20 November 2008 в 19:49
поделиться

7 ответов

В то время как Вы спросили это с точки зрения разработчика, я думаю, что это был бы более интересный вопрос в отношении программного обеспечения, которое Вы разрабатываете. Таким образом, я собираюсь ответить на тот вопрос вместо этого.:)

Аппаратное и программное обеспечение это назад совместимо (и, что еще более важно, совместимо с будущим) предоставляет чувство защищенности Вашим пользователям, особенно при покупке или обновлении платформ как Windows. Если ничто иное, Windows известен своим дотошным вниманием к назад совместимости. Можно запустить программы, переписанные десятилетие назад на Windows Vista только с незначительными проблемами, если они были "правильно написаны" (т.е. не используйте недокументированные API).

С другой стороны, строгое внимание к назад совместимости может связать Ваши руки, когда Вы пытаетесь представить новые возможности или коренным образом изменить платформу. Apple знала, что имела умирающую ОС, и в одном из ее самых отважных перемещений, она купила NeXT и решила сделать NeXTSTEP новой MacOS. Одной из ключевых вещей, которые продали людей на переходе, был назад совместимый уровень Classic. Снова, когда Apple решила переключиться на процессоры Intel, механизм для того, чтобы запустить приложения PowerPC на Intel по имени Rosetta, наряду с Универсальными Двоичными файлами, разрешенными людей для свободного перемещения между PowerPC и Intel без страха перед потерей приложения.

Одна интересная вещь состоит в том, что с переходом к Intel Классическая среда исчезла, но никто действительно не заботится, потому что у них было предшествование 5 годам для перехода далеко от Mac OS 9. Таким образом, возможно в конечном счете отбросить поддержку унаследованных систем, пока у Вас есть простой способ мигрировать на новую систему и дать Ваше пользовательское достаточное количество времени, чтобы сделать так.

11
ответ дан 8 December 2019 в 12:23
поделиться

Для домашних проектов назад совместимость действительно не важна. Для офиса/предприятия это абсолютно очень важно.

2
ответ дан 8 December 2019 в 12:23
поделиться

Это зависит, на каких средах необходимо поддерживать и какие сторонние программы используются, который может или не может быть compatabile.

Например, где я работаю, мы обновили всех до VS2008 от VS2005 за исключением нашей группы BI, поскольку инструменты SQL Server BI не были совместимы с VS2008. После того как они были обновлены, они обновили до VS2008.

При рассмотрении VS specficially, имейте в виду, что VS2008 может предназначаться для.NET 2.0.NET 3.0 и.NET 3.5. Прием должен понять, что на самом деле предназначается для.NET 2,0 SP1 и.NET 3,0 SP1. По сути, обновление IDE не должно требовать, чтобы Вы внесли изменения в свой код.

1
ответ дан 8 December 2019 в 12:23
поделиться

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

100% назад совместимость с источником являются требованием. Единственная ситуация, где это не общее требование, состоит в том, когда несовместимые биты являются расширениями; т.е. изменения API, которые характерны для инструмента, таковы как плагины Eclipse и т.д. Даже затем я хотел бы совместимость, но я понимаю, что она не может полностью ожидаться. Но если Вы обеспечиваете API для основного приложения / разработка инструмента и не можете быть побеспокоены для поддержания совместимости; хорошо, затем, Вы ясно не серьезно относитесь к своим инструментам, и я не заплачу серьезные деньги за них.

3
ответ дан 8 December 2019 в 12:23
поделиться

В генерале при разработке платформы, которая будет постоянно использоваться большим количеством других пользователей для создания их собственных продуктов, и Вы планируете разработать приложение в течение долгого времени затем, это важно. Посмотрите PHP, Python, Eclipse и другие проекты с открытым исходным кодом, кто поместил много важное в назад совместимость. Это также importan при разработке сервисов или другой открытой пчелы, используемой в n-tier архитектуре. У Вас могут быть все приложения на предприятии, повреждающемся все время при изменении сервисов.

Теперь, Если Вы создаете приложение термоусадочной пленки или бизнес-приложение затем, это не настолько важно, потому что каждая версия является отдельной от своих предшественников.

1
ответ дан 8 December 2019 в 12:23
поделиться

Начиная с партии изменений происходят в поле Software and Hardware, я думаю, что это - хорошая идея быть открытым для новых изменений и лучших инструментов при проектировании решения. Например, у нас не было многоядерных процессоров и высококачественных видеокарт или сетевой платы назад в 90-х, Таким образом, естественно цели оптимизации компиляторов и инструментов отличались. Но в то же время Visual Studio как инструменты прилагает все усилия для размещения старых платформ и приложений.

Я думаю, ожидаем ли мы к лучшему миру, мы должны быть открыты для постоянного изменения, пока эта промышленность супер не назревается. (Может не произойти в наше время жизни хотя :))

1
ответ дан 8 December 2019 в 12:23
поделиться

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

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

0
ответ дан 8 December 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: