비주얼 J++
1. 개요
비주얼 J++는 마이크로소프트가 개발한 Java 기반의 프로그래밍 언어 및 통합 개발 환경(IDE)이다. 썬의 Java 구현과 비교하여, J++는 Java RMI 및 JNI와 같은 썬의 기능을 구현하지 않았지만, 콜백과 대리자를 이벤트 처리기에 포함하는 등 확장 기능을 구현했다. J++ 응용 프로그램은 ActiveX를 지원했으며, 썬과의 소송으로 인해 추가 업데이트가 중단되었다. J++ 기술은 이후 Microsoft .NET 플랫폼과 J# 프로그래밍 언어의 일부로 재활용되었다. 비주얼 J#은 자바와 문법이 유사한 마이크로소프트의 .NET 프레임워크 기반 프로그래밍 언어로, J++ (또는 자바)에서 .NET 프레임워크로의 마이그레이션을 지원하기 위해 설계되었다. C#은 자바의 영향을 받아 개발된 .NET 플랫폼의 주요 언어이다.
이미지 준비중입니다.
| 개발사 | 마이크로소프트 |
|---|---|
| 출시일 | 2002년 |
| 지원 종료일 | 2015년 7월 14일 |
| 운영 체제 | 마이크로소프트 윈도우 |
| 플랫폼 | .NET Framework |
| 언어 | J# |
| 종류 | 개발 환경 |
|---|---|
| 라이선스 | 독점 소프트웨어 |
| 후속 제품 | Visual C# |
-
마이크로소프트 비주얼 스튜디오 -
비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. -
마이크로소프트 비주얼 스튜디오 -
J 샤프
J#은 마이크로소프트에서 개발한 .NET Framework 기반의 프로그래밍 언어로, 자바와 유사한 문법을 가지며 기존 자바 코드의 .NET 플랫폼 이전 및 .NET 언어와의 상호 운용성을 지원했으나 현재는 개발이 중단되었다.
2. Visual J++
Visual J++는 마이크로소프트가 개발한 자바 기반의 프로그래밍 언어 및 통합 개발 환경(IDE)이다.
Microsoft Visual J++ 6.0은 Windows Foundation Classes(WFC)나 ActiveX 컨트롤을 사용하여 빠른 응용 프로그램 개발(RAD)을 지원했다. Raw Native Interface (RNI), J/Direct, Java/COM 통합 등 독자적인 네이티브 인터페이스를 사용할 수 있었으나, 이들 중 하나라도 사용하면 마이크로소프트의 Java 가상 머신에서만 작동했다.
썬 마이크로시스템즈의 Java 가상 머신에서 작동하는 Java 클래스 파일을 생성하도록 설정할 수도 있었지만, 이 경우 코드 편집기의 입력 보완 기능, 클래스 뷰 등의 기능은 사용할 수 있었고, GUI를 시각적으로 설계하는 것은 불가능했다.
Visual J++는 ActiveX를 지원했다.
2.1. Sun의 Java 구현과의 비교
J++는 자바 언어 명세를 준수했지만, 마이크로소프트는 자사의 Visual J++ 제품군에 썬의 공식 Java 구현의 특정 기능인 원격 메서드 호출 (Java RMI) 및 JNI를 구현하지 않았다.
또한 J++는 썬의 자바 구현에 포함되지 않은 콜백과 대리자를 이벤트 처리에 포함시키는 확장 기능을 구현하여, J++를 기존의 설계 개념을 기반으로 하는 완전히 다른 언어로 정의했다.
J++ 응용 프로그램은 썬의 Java SDK에서 다른 자바 응용 프로그램과 동일한 표준화된 방식으로 기본 운영 체제 기능에 액세스하지 않았다. 마이크로소프트의 구현에서 J/Direct라는 프레임워크는 J++ 응용 프로그램이 자바의 클래스 라이브러리와 API를 완전히 우회하여 기본 운영 체제에 액세스할 수 있게 해주었다. 이 자바 프레임워크를 우회하는 방법으로 인해 J++ 응용 프로그램은 자바 응용 프로그램보다 Win32 API 기능을 활용하는 데 더 효율적이었다.
이러한 기능을 사용하는 J++ 응용 프로그램은 썬의 Java SDK에서 실행할 수 없었지만, Kaffe 프로젝트는 이러한 기능을 가진 J++ 응용 프로그램을 오픈 소스 JVM에서 실행할 수 있도록 해주는 확장을 개발했다. 그러나 이러한 확장 기능(마이크로소프트의 자금 지원을 받아 TransVirtual에서 구현)은 널리 사용되지 않았으며, J++ 응용 프로그램은 Kaffe에서 실행하기 전에 Visual J++에서 컴파일해야 했다.
2.2. WFC (Windows Foundation Classes)
WFC는 마이크로소프트 Win32 플랫폼의 API와 DHTML 객체 모델을 통합된 클래스 라이브러리로 캡슐화한 것이다. WFC는 주로 Windows에서 Java 애플리케이션용 GUI를 만들기 위해 설계되었다. Microsoft Visual J++ 6.0은 GUI 라이브러리로서 WFC나 ActiveX 컨트롤을 사용하여 빠른 응용 프로그램 개발(RAD)을 가능하게 했다.
2.3. Sun Microsystems와의 소송
선 마이크로시스템즈(Sun Microsystems)는 원래 자바를 마이크로소프트(Microsoft)에 라이선스했지만, 나중에 상표권 침해로 마이크로소프트를 상대로 소송을 제기했다. 자바 브랜드 사용에 대한 Sun의 상표 라이선스는 모든 구현이 "호환"되어야 한다고 주장했다. 일부 관찰자들은 이러한 비호환성이 Sun의 자바 기술 발전을 늦추려는 마이크로소프트의 의도적인 목표였던 것으로 보인다고 언급했다.
MSJVM(Microsoft Java Virtual Machine)이 Sun의 소프트웨어 테스트 컴플라이언스 테스트를 통과하지 못한 것이 초기 소송의 큰 요인이었다. 2004년, 이 소송과 그 외 모든 미결 Sun-Microsoft 소송은 Sun과 Microsoft 간의 광범위한 합의의 일환으로 해결되었다. 합의 조건에 따라 Microsoft는 J++가 (당시) 미러링되었던 버전 이후의 자바 버전에 Sun이 도입한 기능을 J++에 통합할 수 없었다. 즉, 자바 버전 1.1.4의 기능 세트에 고정되었다. 이는 사실상 J++를 죽였고, 추가 업데이트를 종료했다. 또한 마이크로소프트는 MSJVM 배포를 중단하기로 합의해야 했다. 더 이상 다운로드할 수 없다.
그러나 합의 조건에 따라 Microsoft는 보안 지원을 제공하여 MSJVM에 대한 추가 업데이트를 통해 취약점(Vulnerability (computing)) 및 보안 위협과 관련된 기타 문제를 해결할 수 있었다. Microsoft는 2007년 12월 31일에 MSJVM에 대한 이러한 지원을 중단했다.
J++ 기술은 결국 재활용되어 한동안 마이크로소프트 .NET(Microsoft .NET) 플랫폼과 J#(J Sharp) 프로그래밍 언어의 일부로 살아남았다.
2.4. Visual J++ 통합 개발 환경 (IDE)
비주얼 J++는 J++ 프로그래머가 Win32 API를 최대한 활용할 수 있도록 다양한 도구와 유틸리티를 제공했다. Microsoft Visual Studio 제품군의 일부였으며, Visual Studio 6.0이 J++를 포함한 마지막 릴리스였다.
3. Visual J#
비주얼 J#은 자바와 문법이 유사하지만, 컴파일된 바이너리는 .NET Framework에서 작동한다. C#은 JAVA를 본따 만든 언어로서 JAVA와 문법이 비슷하며, 따라서 J#과도 비슷하다.
```csharp
public class Class1
{
public static void Main()
{
System.Console.WriteLine("Hello, World!");
}
}
```
(C# 코드 예시)
마이크로소프트는 이후 .NET 플랫폼의 주요 언어인 C#을 개발했는데, 이는 여러 면에서 자바의 영향을 받았다. 따라서 .NET 프레임워크는 자바와 많은 아이디어를 공유한다. C#은 자바와 마찬가지로 일종의 바이트코드(CIL)로 컴파일되며, .NET의 공용 언어 런타임이라는 가상 머신 위에서 실행된다.
3.1. 개발 목적
비주얼 J++ (또는 자바) 개발자들이 .NET 프레임워크로 쉽게 마이그레이션할 수 있도록 설계되었다. .NET 프레임워크의 일부이며, 마이크로소프트 비주얼 스튜디오 .NET 제품군에 포함되었다.
3.2. Visual Studio 지원
마이크로소프트 비주얼 스튜디오 2005는 J#을 포함하는 마지막 릴리스였다.
4. Visual C#
C#은 JAVA를 본떠 만든 언어로서 JAVA와 문법이 비슷하다.(고로 비주얼 J#과도 비슷하다)
```csharp
public class Class1
{
public static void Main()
{
System.Console.WriteLine("Hello, World!");
}
}
```
마이크로소프트는 이후 .NET 플랫폼의 주요 언어인 C# 언어를 개발했는데, 이는 여러 면에서 자바의 영향을 받았다. 따라서 .NET 프레임워크는 자바와 많은 아이디어를 공유한다. 자바와 마찬가지로 C#은 일종의 바이트코드(CIL)로 컴파일되며, .NET의 공용 언어 런타임이라는 가상 머신 위에서 실행된다.
5. 한국에서의 Visual J++, Visual J#, Visual C#
Visual J#와 C#는 모두 자바의 영향을 받아 문법이 유사하며, .NET Framework에서 작동하도록 설계되었다. Visual J#는 J++(또는 자바) 개발자들이 .NET Framework로 쉽게 이전할 수 있도록 돕는 역할을 했다.
C#은 JAVA를 본떠 만든 언어로서 JAVA와 문법이 비슷하다.(고로 J#과도 비슷하다)
```csharp
public class Class1
{
public static void Main()
{
System.Console.WriteLine("Hello, World!");
}
}
```
마이크로소프트는 .NET 플랫폼의 주요 언어로서 C#을 개발했지만, 이 언어는 많은 면에서 자바의 영향을 받았다. .NET Framework 또한 자바와 공통되는 많은 사고방식을 공유하고 있다. 자바 바이트코드나 자바 실행 환경과 마찬가지로, C# 코드는 공통 중간 언어 (CIL)라고 불리는 중간 표현의 일종으로 컴파일되어, .NET의 공통 언어 런타임 (CLR)이라고 불리는 가상 머신 위에서 실행된다. Visual Studio 2005는 J#을 포함하는 마지막 릴리스였다.