Що таке незалежність платформи? Чи однакові між платформи та «незалежність платформи»?


11

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

(Це може бути питання для самостійного вивчення, але я хотів би почути від експертів із переповнення стека. Існує багато визначень і поглядів щодо цього на меренет, а деякі з них заплутані)


Я думаю, що термін «платформа залежно» більше підходить для застосування до конкретного програмного продукту, а не до самої мови.

3
Я особисто бачу Java як незалежну платформу, тому що JVM на кожній платформі повинен підтримувати однаковий набір інструкцій та код для будь-якої програми Java (для загального значення "будь-яка"). З іншого боку, C # вважатиметься кросплатформою, оскільки він працює як на Mono, так і на .NET, але не в однаковій мірі.

1
@Randolph ти, здається, забуваєш, що стільки інфраструктури дотнету втомило вікна - наприклад, всі речі інтерфейсу. Ви не можете порівняти незалежність платформи Java від dotnet + mono, її навіть не закрити. Є так багато деталей, які називаються частиною стандарту, і єдиною проблемою є те, що вони працюють лише в Windows. Не забуваємо, що пінвоке розкиданий по всьому місцю, і використання його звичайно не буде портативним.
mP01

Не могли б ви пояснити різницю між незалежністю платформи та незалежності платформи?

@mP - я зовсім цього не забув. Насправді, я вважав, що це цілком зрозуміло, коли я сказав «не в тій же мірі» через те, що більша частина інтерфейсу прив’язана до Windows. Я НЕ порівнював Java з .NET і Mono, якщо ви уважно прочитали: я сказав, що Java не залежить від платформи, а .NET / Mono - кросплатформна. Якщо це порівняння, я думаю, що це означає, що яблука та груші також повинні бути рівнозначними. Пробачте, якщо я натрапив на рентантність, але я не ціную слова, що вкладаються мені в рот.

Відповіді:


8

Жодна платформа-незалежність та крос-платформа не є однаковими. давайте подивимось на наступні пояснення, щоб зрозуміти.


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


кросплатформна або багатоплатформна - це атрибут, що надається комп'ютерному програмному забезпеченню або обчислювальним методам та концепціям, які реалізуються та взаємодіють на декількох комп'ютерних платформах

Його можна розділити на два типи.

  1. Потрібна індивідуальна побудова чи компіляція для кожної платформи, яку вона підтримує,
  2. А інший можна безпосередньо запускати на будь-якій платформі без спеціальної підготовки, наприклад, програмне забезпечення, написане на інтерпретованій мові, або попередньо складений переносний байт-код, для якого інтерпретатори або пакети для виконання є загальними або стандартними компонентами всіх платформ.

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

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

Платформа незалежна


Програмне забезпечення, яке не залежить від платформи, не покладається на будь-які особливості будь-якої окремої платформи, або, якщо вона є, обробляє ці особливості, такі, що вони можуть працювати з декількома платформами.

Програмне забезпечення незалежне від платформи : незалежне програмне забезпечення від платформи в його суворому розумінні означає -

  • Встановлюйте будь-де і бігайте скрізь - неважливо, де ви знаходитесь. Хоча ви можете отримати різних інсталяторів (для різних платформ), це було б просто для користувачів. Існували б варіанти для встановлення безпосередньо з вихідного коду.




Зведено з різних джерел


@Shekhar: Випадково я теж потрапив у ті самі джерела (Wikipedia AND openalternatives.org/site/2008/08/… ), звідки ви, можливо, взяли цей матеріал. Велике спасибі.

@CSharpLearner, як я згадував у нижній частині свого допису

0

Моє "визначення кишок" відповідає тому, що сказав Шехар; multiplatform == будує для багатьох несумісних платформ, незалежна платформа == працює незалежно від платформи.

Звичайно, якщо операційну систему platform ==, яку легко зрозуміти, в такому випадку сценарій Python, ймовірно, буде "платформою незалежною", доки в операційній системі є інтерпретатор Python, який ви маєте намір запустити.

Певним чином платформа сценарію - Python. Зрештою, платформи - це стандартні стеки програмного забезпечення + обладнання, які абстрагують певну функціональність.

Не впевнений, в чому моя думка.


0

Щоб трохи розширити відповідь Shekhar_Pro ,

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

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


-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.