Что такое независимость от платформы? Являются ли кроссплатформенность и «независимость от платформы» одинаковыми?

11

Что на самом деле означает независимость платформы? По какому критерию можно назвать языковую платформу независимой? Являются ли кроссплатформенность и «независимость от платформы» одинаковыми?

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

ученик
источник
Я думаю, что термин «независимый от платформы» больше подходит для конкретного программного продукта, а не для самого языка.
3
Я лично вижу Java как независимую от платформы, потому что JVM на каждой платформе должен поддерживать один и тот же набор инструкций и кода для любой программы Java (для общего значения «any»). С другой стороны, C # считается кроссплатформенным, поскольку он работает как в Mono, так и в .NET, но не в одинаковой степени.
1
@Randolph, вы, кажется, забыли, что большая часть инфраструктуры dotnet устала от Windows - например, от всего пользовательского интерфейса. Вы не можете сравнить платформенную независимость Java с dotnet + mono, это даже не близко. Есть так много частей, называемых частью стандарта, единственная проблема заключается в том, что они работают только в Windows. Давайте не будем забывать, что pinvoke разбросан повсюду, и его использование не будет портативным.
mP01
Не могли бы вы объяснить разницу между кроссплатформенностью и независимостью от платформы?
@mP - я не забыл это вообще. На самом деле, я думал, что совершенно ясно, когда говорю «не в той же степени», потому что большая часть пользовательского интерфейса связана с Windows. Я НЕ сравнивал Java с .NET и Mono, если вы внимательно прочитали: я сказал, что Java независима от платформы, а .NET / Mono является кроссплатформенной. Если это сравнение, я думаю, это означает, что яблоки и груши тоже должны быть эквивалентны. Простите, если я выгляжу как ненормальный, но я не ценю слова, которые вводят в мой рот.

Ответы:

8

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


Кроссплатформенное программное обеспечение


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

Это может быть разделено на два типа.

  1. Каждый требует отдельного построения или компиляции для каждой платформы, которую он поддерживает,
  2. А другой может быть непосредственно запущен на любой платформе без специальной подготовки, например, программного обеспечения, написанного на интерпретируемом языке или предварительно скомпилированного переносимого байт-кода, для которого интерпретаторы или пакеты времени выполнения являются общими или стандартными компонентами всех платформ.

Многоплатформенное или кроссплатформенное программное обеспечение: программное обеспечение доступно на нескольких платформах (операционных системах). Это может означать две вещи -

  1. Программное обеспечение поставляется с различными сборками / приложениями для разных платформ [разные пакеты для Windows, в том числе для Linux].
  2. Программное обеспечение может быть запущено (с одной и той же загрузкой) на нескольких платформах, но НЕ на всех.

Независимая платформа


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

Независимое от платформы программное обеспечение: независимое от платформы программное обеспечение в его строгом смысле означает -

  • Устанавливайте где угодно и работайте везде - не важно, где вы находитесь. Хотя у вас могут быть разные установщики (для разных платформ), это будет просто для удобства пользователей. Там будут варианты для вас установить прямо из исходного кода.




Агрегировано из разных источников

Shekhar_Pro
источник
@Shekhar: По совпадению я тоже попал в те же источники (Википедия и openalternatives.org/site/2008/08/… ), откуда вы, возможно, взяли материал. Большое спасибо.
@CSharpLearner, как я уже упоминал в нижней части своего поста
0

Мое "внутреннее определение" соответствует тому, что сказал Шекхар; MultiPlatform == сборка для многих несовместимых платформ, независимая от платформы == работает независимо от платформы.

Конечно, если платформа == операционная система, которую легко увидеть, в этом случае сценарий Python, вероятно, будет «независимым от платформы», если в ОС имеется интерпретатор Python, который вы собираетесь запустить.

В каком-то смысле платформа скрипта - это Python. В конце концов, платформы - это стандартные стеки программного и аппаратного обеспечения, которые абстрагируют некоторую функциональность.

Не уверен, в чем моя точка зрения, хотя.

ggambett
источник
0

Чтобы немного расширить ответ Shekhar_Pro ,

Независимая платформа выполнит любую любую платформу. Подумайте о приложениях Java или Python без каких-либо специфичных для платформы компонентов, которые могут быть выполнены в Windows, Mac и Linux без обязательной перекомпиляции или перезаписи.

Продукты Cross-Platform - это совершенно другой котелок с рыбой. Если некоторые аспекты кроссплатформенного продукта могут иметь общие требования и даже исходный код (например, некоторые математические функции, реализованные в C), каждая версия продукта написана и скомпилирована полностью для конкретной платформы. Подумайте, например, о Mozilla Firefox, который имеет разные версии для Mac, Windows, Linux, BeOS, Android и так далее. Каждая версия похожа и может даже иметь совместимые структуры данных, но каждая версия также разрабатывается независимо и часто пишется с использованием совершенно разных языков программирования и API, разной нумерации версий и так далее.

S.Robins
источник
-1

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

MP01
источник