Введение

Недействующая реализация Java

Visual J++ — это прекращённая Microsoft реализация Java. Синтаксис, ключевые слова и грамматические правила были аналогичны Java. Она была представлена в 1996 году и прекращена в январе 2004 года, частично заменена J# и C#. Реализация MSJVM не прошла проверку на соответствие требованиям Sun Microsystems, что привело к судебному иску со стороны Sun, разработчика Java. Microsoft прекратила поддержку MSJVM 31 декабря 2007 года (позже Oracle приобрела Sun, а вместе с ней и Java, и её товарные знаки). Однако Microsoft официально возобновила распространение Java в 2021 году (хотя и не в составе Windows или веб-браузеров, как это было ранее), а именно свою сборку OpenJDK от Oracle, которую Microsoft планирует поддерживать не менее 6 лет для версий LTS, то есть до сентября 2027 года для Java 17.

J++ по сравнению с реализацией Sun Java

Хотя J++ соответствовал спецификации языка Java, Microsoft не реализовала некоторые функции официальной реализации Sun Java в своей линейке продуктов Visual J++. Remote Method Invocation (Java RMI) и Java Native Interface (JNI) – примеры таких функций. Кроме того, J++ реализовал другие расширения, отсутствовавшие в реализации Java от Sun. Включение обратных вызовов и делегатов для обработки событий еще больше отделило J++ как самостоятельный язык, основанный на существующей концепции проектирования. Более того, приложения J++ не использовали тот же стандартизированный метод доступа к функциям операционной системы, что и другие приложения Java под Java SDK от Sun. В реализации Microsoft базовая структура J/Direct предоставляла механизм, позволявший приложениям J++ полностью обходить классовые библиотеки и API Java при доступе к операционной системе. Благодаря этому обходу оригинальной структуры Java, приложения J++ были более эффективны в использовании функций Win32 API, чем приложения Java. Приложения J++, использующие эти функции, не могли быть запущены на Java SDK от Sun, однако проект Kaffe разработал расширения, позволившие запускать такие приложения J++ на своей JVM с открытым исходным кодом. Тем не менее, эти расширения (реализованные TransVirtual при финансировании Microsoft) не получили широкого распространения, и приложения J++ все равно требовали компиляции в Visual J++ перед запуском в Kaffe. Visual J++ поддерживал ActiveX.

WFC

Windows Foundation Classes (WFC) инкапсулировали API платформы Microsoft Win32 и объектные модели DHTML в единую библиотеку классов. WFC разрабатывались главным образом для создания графических пользовательских интерфейсов для Java-приложений под Windows.

Судебный процесс Sun против Microsoft

Sun Microsystems первоначально лицензировала Java компании Microsoft, но позже инициировала судебное разбирательство против Microsoft за нарушение прав на товарный знак. Лицензионное соглашение Sun на использование бренда Java требует, чтобы все реализации были "совместимы". Некоторые наблюдатели отметили, что эта несовместимость, по всей видимости, была намеренной целью Microsoft, чтобы хотя бы замедлить развитие технологии Java от Sun. Неспособность MSJVM пройти проверку на соответствие требованиям Sun стала важным фактором в первоначальном иске. В 2004 году этот и все остальные неразрешенные судебные споры между Sun и Microsoft были урегулированы в рамках широкого соглашения между Sun и Microsoft. В соответствии с условиями соглашения, Microsoft не могла включать в J++ функции, которые Sun добавила в Java в версиях, более поздних, чем та, с которой J++ был (на тот момент) синхронизирован; его развитие было остановлено на уровне функциональности Java версии 1.1.4. Это фактически прекратило существование J++ и остановило дальнейшие обновления. Microsoft также была вынуждена согласиться прекратить распространение MSJVM; он больше не доступен для скачивания. Однако условия соглашения разрешали Microsoft предоставлять поддержку безопасности, что позволяло выпускать дальнейшие обновления MSJVM для устранения уязвимостей и других проблем, связанных с угрозами безопасности. Microsoft прекратила такую поддержку MSJVM 31 декабря 2007 года. Технология J++ в конечном итоге была переработана и некоторое время использовалась как часть платформы Microsoft .NET и языка программирования J#.

Визуальный J++ IDE

Visual J++ также являлся названием интегрированной среды разработки (IDE) для J++ и предоставлял множество инструментов и утилит, помогающих программистам J++ в полной мере использовать Win32 API. Visual J++ больше не распространяется, но входил в состав линейки продуктов Microsoft Visual Studio. Visual Studio 6.0 была последней версией, включавшей J++.

Визуальный J#

Visual J# (произносится "Джей Шарп") — это язык разработки Microsoft, синтаксис которого близок к Java и является частью платформы .NET Framework. Visual J# входит в состав пакета продуктов Microsoft Visual Studio .NET и предназначен для помощи разработчикам и программистам в переходе с J++ (или Java) на .NET Framework. Позже Microsoft разработала язык C# ("Си Шарп") как основной язык для платформы .NET, который во многом был вдохновлён Java; впоследствии .NET Framework имеет много общих концепций с Java. Подобно Java, C# компилируется в разновидность байт-кода (называемого CIL) и выполняется на виртуальной машине под названием Common Language Runtime в .NET. Visual Studio 2005 была последней версией, включающей J#.