Преимущества кроссплатформенной разработки? - PullRequest
3 голосов
/ 14 марта 2009

Есть ли преимущества для разработки приложения на двух или более разных платформах? Преимущество использования другого компилятора на одной и той же платформе?

Ответы [ 8 ]

3 голосов
/ 14 марта 2009

Да, особенно если вы планируете распространять свой код на несколько платформ.

Но даже если вы не кросс-платформенные разработки, это форма защиты будущего; если сегодня он работает на нескольких (разнообразных) платформах, то он скорее будет работать на будущих платформах, чем что-то, что было настроено, настроено и специализировано для работы над чистой версией 7.8.3 блоков Q-серии вендора Х (уровень исправления 1452) ) и ничего больше.

2 голосов
/ 14 марта 2009

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

1 голос
/ 14 марта 2009

Если вы разрабатываете на нескольких платформах одновременно, вы получаете возможность использовать различные инструменты. Например, однажды у меня была перезапись памяти (я все еще клянусь, мне не нужны +1 для нулевого байта!), Что приводит к аварийному завершению «free». Я довел код до скорости в Windows и нашел перезапись примерно через 1 минуту с помощью Rational Purify ... мне потребовалась неделя под Linux на его поиск (валгринд мог бы его найти ... но я не знал о это в самый раз).

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

Использование таких вещей, как несколько баз данных, при разработке означает, что у вас гораздо меньше шансов привязать себя к конкретной базе данных, что означает, что вы можете поменять базу данных, если есть причина для этого. Если вы хотите интегрировать что-то, что использует Oracle, в существующую инфраструктуру, которая, например, использует SQL Server, это действительно может быть отстой - гораздо лучше, если части Oracle или SQL Server можно перенести в другую систему (я знаю, что в некоторых местах есть 3 разных базы данных для своих финансовых систем ... ick).

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

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

1 голос
/ 14 марта 2009

В основном, существует существующая платформа, для которой написано приложение ( отдельное программное обеспечение ). Но вы обращаетесь к большему числу разработчиков (обе платформы), если решите предоставить независимый язык.

Также продукты ( стандартное программное обеспечение ) для МСП могут продаваться лучше , если они работают на разных платформах! Вы можете получить доступ к обоим рынкам, WIN & LINUX! (и MacOSx и так далее ...)

Крупные компании в основном покупают оборудование, которое поддерживается / сертифицируется поставщиком продукта только для развертывания указанного продукта.

1 голос
/ 14 марта 2009

Я перенес большую программу на C ++, изначально Win32, в Linux. Это было не очень сложно. Главным образом имеет дело с несовместимостью компиляторов, потому что компилятор MS C ++ в то время был несовместим различными способами. Я ожидаю, что эта проблема в основном исчезла (до тех пор, пока функции C ++ 0x не начали постепенно появляться). Также написание простой библиотеки абстракции платформы для централизации кода, специфичного для платформы, в одном месте. Это зависит от того, в какой степени вы зависите от сервисов операционной системы, которые будет трудно имитировать на новой платформе.

Вам не нужно создавать мобильность с нуля. Вот почему «портирование» часто описывается как действие, которое вы можете выполнить за один раз после первоначального выпуска на своей наиболее важной платформе. Вам не нужно делать это постоянно с самого начала. Чисто по экономическим причинам, если вы можете избежать выполнения работы, которая может никогда не окупиться, очевидно, вы должны. Стоимость переноса позже, когда это действительно необходимо, оказывается не так уж и плоха.

1 голос
/ 14 марта 2009

Есть ли преимущества для разработки приложения на двух или более разных платформах?

Если это производственное программное обеспечение, очевидной причиной является приманка большей клиентской базы. Привлекательность вашего продукта усиливается в тот момент, когда клиент слышит, что вы поддерживаете несколько платформ. Помните, что большинство предприятий не используют ни одну ОС или даже одну версию ОС. Довольно типично найти раздел, использующий Windows, другой Mac и уменьшенную версию, немного разновидности Linux.

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

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

Имеет ли преимущество использование другого компилятора даже на одной и той же платформе?

Да, снова. Разные компиляторы реализуют разные расширения. Следите за тем, чтобы вы не зависели от конкретной версии конкретного компилятора.

Кроме того, в самом компиляторе может быть одна или две ошибки. Использование нескольких компиляторов помогает разобраться в этом.

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

1 голос
/ 14 марта 2009

Краткий ответ: Да.

Если не считать клонирование диска, почти невозможно сделать две системы абсолютно одинаковыми, поэтому вы в конечном итоге будете работать на «разных платформах», независимо от того, хотели вы это или нет. Конкретно сталкиваясь и решая вопрос "что делать, если система A не делает такие вещи, как B?" проблемная точка зрения, у вас гораздо больше шансов найти те ключевые допущения, которые делает ваш код.

Тем не менее, я бы сказал, что вы должны получить хороший кусок своего базового кода, работающего в системе A, а затем потратить один день (или неделю или ...) и запустить его в системе B. Это может быть очень познавательно.

Мое образование вернулось в 80-е годы, когда я перенес отладчик C уровня источника на более чем 100 разновидностей U * NX. Gack!

0 голосов
/ 14 марта 2009

Некоторые платформы имеют действительно ужасные инструменты разработки. Однажды я работал в IB, где вместо того, чтобы использовать ужасный набор инструментов Sun, peole разработал код на VC ++, а затем перенес его в Solaris.

...