Що таке Java Virtual Machine, або Джава - це вам не Ява! .. Частина 2
Протистояння Sun і Microsoft
На початку розвитку платформи Java існували дві конкуруючі реалізації Java VM - одна від фірми Sun Microsystems, творця мови Java, для різних платформ (Windows, Mac OS, Unix), і інша - від фірми Microsoft, орієнтована тільки на платформу Windows і, за твердженням Microsoft, «спеціально оптимізована для швидкого виконання Java-коду на платформі Microsoft Windows».
Однак, Microsoft JVM була повністю сумісна зі специфікацією, описаної Sun в Блакитний книзі JVM, а також мала істотні проблеми, пов'язані з безпекою і з продуктивністю при роботі під великими навантаженнями (при великій кількості одночасно виконуваних потоків). Компанія Sun порахувала таку ситуацію неприпустимою і вирішила, що Microsoft займається навмисної дискредитацією і профанацією платформи Java шляхом поширення своєї версії віртуальної машини Java, що володіє перерахованими вище недоліками.
На цій підставі Sun неодноразово подавала в суд на Microsoft, і послідовно добилася спочатку того, що Microsoft втратила право називати свою реалізацію JVM - Java VM. З цього моменту Microsoft стала називати свій продукт просто Microsoft VM. Потім Microsoft втратила право вбудовувати свою VM в браузери і операційні системи. Після цього Microsoft змушена була вилучити свою VM з постачання Windows і з пакету IE, але могла, згідно з рішенням суду, пропонувати її окремо для скачування на своєму сайті. Потім Sun домоглася припинення розробки нових версій Microsoft VM і припинення випуску оновлень до неї, а потім і виключення Microsoft VM зі списку доступних для скачування програм на сайті Microsoft.
Деякі IT-експерти вважають, що жорстка позиція, зайнята Sun з питання Java, могла послужити додатковим стимулом для розробки компанією Microsoft власного крос-платформного рішення - .NET Framework.
Про боротьбу за дотримання стандартів
Ось що каже з цього приводу «батько» Java Джеймс Гослінг: «Якщо говорити про дотримання стандартів, то наш конфлікт з Microsoft полягав у тому, що ця компанія спробувала обмежити інтероперабельність своєї віртуальної машини, тим самим порушивши досягнуте раннє угоду. Код, оптимізований під цю машину, не виконувався на інших платформах. В наявності спроба прив'язати користувачів до своєї системи. Такі спроби завжди припинялися і будуть припинятися надалі. Однак якщо принцип інтероперабельності дотримується, то ніяких перешкод немає. Наприклад, у IBM щонайменше півдюжини віртуальних машин Java, є свої розробки в цій галузі у HP та багатьох інших компаній ».
Протистояння Sun і IBM
У 2001 р, з метою розробки стандарту крос-платформних desktop-додатків, IBM стартувала відкритий проект Eclipse. Фреймворк Eclipse заснований на закритій розробці IBM VisualAge. IBM вдалося збалансувати інтереси вільного спільноти та інтереси бізнесу (свої інтереси) в ліцензії Eclipse Public License, визнаної FSF.
Проект успішно розвивається, визнаний індустрією, в значній мірі відокремився від IBM в самостійну Eclipse Foundation.
Sun залишається в опозиції Eclipse Foundation, як і Microsoft. Формально основною причиною протиріч залишається бібліотека SWT, яка суперечить Sun-концепції віртуальної машини і переносимості джава-додатків.