본문 바로가기

프로그래밍

Microsoft 프로그래밍 언어 4종 비교 분석



 

Microsoft 프로그래밍 언어

Prashant Sridharan
수석 제품 관리자

2003년 7월

목차

Microsoft .NET의 이점
Visual Basic .NET
Visual C++ .NET (US)
Visual C# .NET
Visual J# .NET
요약

Microsoft .NET의 이점

Microsoft .NET Framework는 차세대 응용 프로그램과 XML 웹 서비스를 구축 및 실행하기 위한 필수 Microsoft Windows® 구성 요소입니다. .NET Framework는 기업에서 바로 사용할 수 있는 표준 기반의 생산적인 다국어 환경을 제공합니다. 이 환경은 개발을 단순화하고 개발자가 기존의 기술을 활용할 수 있도록 해 줄 뿐만 아니라 기존 소프트웨어와의 통합을 용이하게 하고 인터넷 수준의 응용 프로그램을 더 쉽게 배포 및 운영할 수 있게 해줍니다. .NET Framework는 두 개의 주요 부분, 즉 공용 언어 런타임(CLR)과 계층적 통합 클래스 라이브러리로 구성됩니다. 계층적 통합 클래스 라이브러리는 스마트 클라이언트 응용 프로그램(Windows Form) 및 느슨하게 결합된 데이터 액세스 하위 시스템(ADO.NET)을 구축하기 위한 환경인 ASP .NET을 통해 웹 기반 개발을 획기적으로 향상시켜 줍니다.

프로그래머는 여러 언어를 사용하여 .NET Framework에 대한 응용 프로그램을 작성할 수 있습니다. 각 언어는 MSIL(Microsoft Intermediate Language)로 컴파일된 다음에 기본 코드로 변환되어 CLR에서 실행됩니다. 각 언어가 CLR용으로 작성된 코드와 상호 작용하기 때문에 특정 언어로 작성된 응용 프로그램이 다른 언어로 작성된 다른 응용 프로그램과 상호 작용할 수 있습니다. CLR이 소개됨으로써 선택할 수 있는 언어의 폭이 넓어졌기 때문에 프로그래머는 자신의 기술과 작업에 적합한 언어를 선택할 수 있습니다.

풍부한 언어

예술가가 저마다의 개성을 가지고 자신의 경험과 성격에 맞는 매체와 도구를 사용하듯이, 소프트웨어 개발자는 자신의 기술과 작업에 기초하여 프로그래밍 언어를 선택합니다. 어떠한 언어도 모든 개발자의 요구를 충족하지는 않습니다. 프로그래머는 예술가나 과학자와 본질적으로 다르지만 항상 고집이 있고 만족할 줄 모른다는 점에서 부분적으로 비슷한 면이 있습니다. 다만, 프로그래머는 완벽함을 추구하기는 하지만 현재의 프로그래밍 언어가 불완전하다는 것을 인정합니다. 따라서 어떤 사람은 여러 언어를 배우고 수시로 바꾸는 반면에 또 어떤 사람은 하나의 언어를 더 확실하게 터득하려고 합니다. 이는 미켈란젤로가 뛰어난 조각가이자 화가였던 것과 달리 모네는 유화만을 파고들었던 것과 같습니다. 어쨌든 간에 이러한 두 천재의 업적은 오늘날 높이 평가되고 있습니다.

"그 동안은 항상 VB 프로그래머만을 위주로 생각해 왔습니다. 그러나 이제 .NET에는 VB뿐만 아니라 Java 언어도 있고 심지어 COBOL도 있습니다!" – Tim Huckaby, Interknowlogy 회장 및 CEO

프로그래밍 언어는 본질적으로 여러 요인에 기초하는 개인적 취향에 따라 선택됩니다. 특정 언어를 사용하도록 프로그래머에게 강제하는 대신에 Microsoft는 C++, Objective-C, Fortran, COBOL, Visual Basic®, Perl 등의 다양한 언어가 충분히 사용되면서 .NET Framework의 강력한 기능과 유연성을 활용할 수 있는 플랫폼을 제공합니다.

이에 따라서 Microsoft는 특정 프로그래머를 대상으로 하도록 설계된 네 개의 프로그래밍 언어와 관련 개발 환경을 제공합니다.

  • Visual Basic .NET, 전세계에 가장 널리 보급된 개발 도구 및 언어의 최신 버전입니다. Visual Basic .NET은 .NET Framework를 사용하여 솔루션을 작성하는 작업 지향적 개발자를 위한 뛰어난 생산성과 고유한 언어 기능을 제공합니다.

  • Visual C++® .NET, 최대한의 기능과 제어 능력을 지닌 도구입니다. C++ 언어를 사용하는 능력 지향적 개발자는 플랫폼 기술을 활용하면서 최대한의 성능과 향상된 기능을 가진 기본 Windows 기반 및 .NET-connected 솔루션을 작성할 수 있습니다.

  • Visual C#® .NET, 혁신적인 최신 프로그래밍 언어 및 도구입니다. 2001년에 소개된 C#는 C++ 및 Java 개발자가 흥미를 가질만한 익숙한 구문을 제공할 뿐만 아니라 .NET Framework용 응용 프로그램 개발 시에 더 뛰어난 경험을 코드 중심 개발자에게 선사하는 고유한 언어 구문을 제공합니다.

  • Visual J#® .NET, Microsoft .NET용의 Java 언어 도구입니다. Visual J# .NET은 익숙한 언어와 구문을 유지하면서 업계에서 가장 앞선 XML 웹 서비스 플랫폼과 .NET Framework에 완벽하게 액세스할 수 있는 환경을 Java 언어 및 기존 Visual J++ 개발자에게 제공합니다.

이 문서에서는 특히 개발자가 사용할 수 있는 풍부한 Microsoft 개발 언어에 대해 설명합니다. Microsoft .NET을 선택한 프로그래머와 기업은 지금까지 쌓아온 기술을 그대로 사용하면서 매력적인 솔루션을 더 신속하게 작성하는 데 유용한 새로운 플랫폼, 도구 및 언어 기능을 통합할 수 있습니다.

Top of Page Top of Page

Visual Basic .NET

http://www.microsoft.com/Korea/MSDN/vbasic

Visual Basic 1.0은 진입 장벽을 낮추고 광범위한 개발자의 생산성을 향상시켜 Windows 개발에 혁명을 가져왔습니다. 이 뛰어난 역사를 기반으로 작성된 Visual Basic .NET은 쉽게 읽을 수 있는 구문, 직관적인 사용자 인터페이스, Microsoft .NET-connected 응용 프로그램을 신속하게 개발할 수 있는 도구와 업그레이드 마법사 등을 작업 지향적 프로그래머에게 제공합니다. Visual Basic .NET은 널리 보급된 이전 버전이 제공하는 개발 용이성을 활용하면서 모든 프로그래머(초보에서 전문가에 이르기까지)가 Windows, 웹 및 모바일 장치용 응용 프로그램을 작성할 수 있도록 새로운 기능을 선보이고 있습니다.

작업 지향적 개발

최종 기한을 지켜야 하는 것은 소프트웨어 업계의 오랜 전통입니다. 대부분의 프로그래머에게 최종 기한은 하나의 일상이 되었습니다. 프로그래머는 흔히 특정 비즈니스 요구를 해결하고 어느 정도의 배포 계획과 추적이 요구되는 응용 프로그램을 구축해야 합니다. 이러한 솔루션은 엄격하게 테스트되기도 하지만 작성 후 바로 배포되어 프로그래머가 따로 해야 할 일이 없는 경우도 있습니다. 이러한 작업 지향적 개발자는 솔루션을 신속하게 제공하는 데 초점을 맞추게 됩니다. 따라서 작업 지향적 개발 도구는 생산성에 초점을 맞춤으로써 프로그래머가 기본 플랫폼에 의존하는 경향에서 벗어나 응용 프로그램을 이해하고 처음부터 작성한 후에 비즈니스 그룹에 신속하게 배포할 수 있게 해야 합니다.

대상 프로그래머

Visual Basic .NET은 .NET Framework를 사용하여 차세대 응용 프로그램과 서비스를 작성하려는 다음 유형의 개발자에게 이상적입니다.

  • 신속하고 생산적인 .NET Framework용 개발 도구를 원하는 프로그래머. Visual Basic .NET은 프로그래머가 응용 프로그램을 신속하게 작성할 수 있는 이해하기 쉬운 구문과 직관적인 개발 환경을 제공합니다. 또한 방대한 프로그래머 커뮤니티는 Microsoft .NET 사용과 관련된 도움을 언제든지 받을 수 있는 풍부한 리소스를 Visual Basic .NET 프로그래머에게 제공합니다.

  • 기존 Visual Basic 기술이나 코드 자산을 가진 프로그래머. Visual Basic .NET은 Visual Basic 언어의 키워드, 구문 및 개념을 기반으로 작성되었습니다. 쉽게 읽을 수 있는 구문과 마찬가지로 대/소문자를 구분하지 않은 특성은 일반 Visual Basic 개발자에게 금방 익숙해질 것입니다. 또한 이전 버전의 Visual Basic에서 막대한 코드를 작성했던 했던 프로그래머는 내장된 업그레이드 기술을 사용하여 이러한 코드를 이전할 수 있습니다. 이 외에도 대부분의 기존 ActiveX® 컨트롤을 계속해서 Visual Basic .NET에서 사용할 수 있습니다.

  • 익숙한 디자인 타임 및 코드 편집기 패러다임을 원하는 개발자. 응용 프로그램 디자인과 코드 작성을 위한 대부분의 원칙은 Visual Basic .NET의 이전 버전에서 그대로 가져왔습니다. 응용 프로그램의 끌어서 놓기 디자인, 코드 작성 지원을 위한 IntelliSense®, 가독성 향상을 위한 자동 코드 서식 등이 여기에 해당합니다.

  • 더 직관적이고 액세스가 용이한 언어를 사용하여 응용 프로그램을 작성하려는 프로그래머. Visual Basic .NET은 초보자에서 전문가에 이르기까지 모든 개발자가 액세스할 수 있도록 설계되었습니다. 초보자는 Visual Basic 언어의 고유하고 다양한 새 기능이 Visual Basic 환경의 생산성 향상만큼이나 유용하다는 것을 알게 될 것입니다.

고유한 언어 기능

다른 Microsoft 제공 .NET 언어에는 없는 높은 생산성 향상을 제공하는 고유한 언어 기능이 Visual Basic .NET에 포함되어 있습니다.

  • 기본 변수 초기화. Visual Basic .NET에서는 변수와 멤버를 사용 전에 초기화할 필요가 없으므로 다른 .NET 언어와 같은 난해한 사용 요구 사항을 초보 프로그래머가 걱정할 필요가 없습니다.

  • 암시적 입력 및 런타임 바인딩. Visual Basic .NET 코드에서는 사용하기 전에 변수 유형을 지정할 필요가 없으므로 프로그래머는 최소한의 교육만으로 유용한 코드를 작성할 수 있습니다.

  • 열거 동작. Basic .NET은 열거 형식을 사용할 때 더 직관적인 동작을 제공합니다.

  • 기본 공용 액세스. 기본적으로 Visual Basic .NET 클래스 멤버는 공용으로 선언되므로 프로그래머에게 더 직관적인 구문을 제공합니다.

  • 공유 멤버 사용. Visual Basic .NET에서는 클래스 이름과 공유 변수가 속할 형식의 인스턴스 변수를 통해 공유 멤버를 액세스할 수 있으므로 프로그래머가 직관적인 코드를 작성하는 데 도움이 됩니다. 예를 들면 다음과 같습니다.
Dim x as new MyClass

x.SharedMethod() ' 사용 시에도 동일하게 작동합니다.

MyClass.SharedMethod()
  • 선택적 매개 변수. Visual Basic .NET은 클래스 디자이너가 더 유연하게 라이브러리를 디자인하고 프로그래머가 개체 지향 프로그래밍의 모든 의미를 알 필요 없이 유용한 코드를 작성할 수 있게 해주는 선택적 매개 변수를 지원합니다.

  • 필터링된 catch 블록. Visual Basic .NET은 유연한 구조적 예외 처리 오류를 제공합니다. 필터링된 catch 블록을 통해 개발자는 예외 클래스, 조건식 또는 명시적 오류 번호에 기초하여 오류를 필터링할 수 있습니다.

  • 매개 변수화된 속성. Visual Basic .NET의 속성은 매개 변수를 포함할 수 있으므로 C# 속성보다 유연합니다.

  • 선언적 이벤트 처리기. Visual Basic .NET 이벤트 처리기는 Handles 키워드를 사용하여 자신이 등록될 이벤트를 선언할 수 있습니다.

  • 인터페이스 멤버 재선언. Visual Basic .NET을 사용하여 프로그래머는 클래스에서 구현할 때 인터페이스 멤버의 이름을 바꿀 수 있습니다.

고유한 환경 기능

Visual Basic .NET에는 또한 프로그래머가 매력적인 응용 프로그램과 서비스를 더 생산적으로 디자인 및 작성할 수 있도록 향상된 여러 환경 기능이 포함되어 있습니다. 이러한 향상된 기능은 모든 .NET 언어에서 공유되는 Visual Studio® .NET 기능을 더욱 강화시켜 줍니다.

  • 백그라운드 컴파일. 백그라운드 컴파일은 배후에서 작동하면서 개발자가 작업 중인 동안에 자동으로 코드를 컴파일합니다. Visual Basic .NET 개발자는 코드에 오류가 있을 경우 해당 사실을 즉시 알 수 있어야 합니다.

  • 자동 서식 지정(Pretty listing). Visual Basic .NET 코드 편집기는 개발자가 코드를 입력할 때 선택적으로 코드의 서식을 자동으로 지정하여 시간을 절약할 수 있습니다. 이 기능은 자동으로 올바른 탭 위치에 코드를 정렬하고 키워드와 변수의 대/소문자를 다시 지정하며 누락된 thenif 문에 추가하는 등의 작업을 수행합니다.

성능

최종적으로 가장 중요한 영역은 바로 성능입니다. Visual Basic .NET 컴파일러는 C# 컴파일러가 생성한 코드와 성능면에서 동일한 IL(Intermediate Language) 코드를 생성합니다.

Top of Page Top of Page

Visual C++ .NET (US)

http://msdn.microsoft.com/visualc (US)

흔히 기능 지향 프로그래머는 기본 플랫폼의 전체 기능과 성능을 활용해야 합니다. CLR과 .NET Framework의 수많은 이점에도 불구하고 일부 프로그래머는 여전히 Windows 운영 체제에 전적으로 의존하는 응용 프로그램을 구축하고 있습니다. 이러한 프로그래머는 최적화된 코드와 메모리, 디스크 액세스 등을 비롯한 시스템 제공 서비스에 대한 효율적 액세스를 통해서 응용 프로그램을 더 강력하게 제어하기 위해 일반적으로 Visual C++를 선택했습니다. Visual C++ .NET은 기본 코드 생성과 Win32® API를 통해 Windows 플랫폼에 대한 직접적인 액세스를 계속 제공하고 있습니다. 또한 Visual C++에서 개발자는 관리되는 CLR 및 .NET Framework의 광범위한 기능에 액세스할 수 있습니다.

기능 지향 개발

많은 상황에서 프로그래머는 기본 운영 체제에 있는 모든 기능에 완전하게 액세스해야 합니다. 전통적으로 Microsoft는 광범위한 프로그래밍 도구를 제공했는데 그 중 일부는 Windows 플랫폼을 배제하지만 다른 일부는 모든 Windows 기능에 대한 완전한 액세스를 제공합니다. 오늘날 .NET Framework가 견고한 엔터프라이즈 소프트웨어를 작성하는 데 적합한 광범위한 API를 제공하고 있지만 Microsoft Windows에 있는 모든 기능에 대한 액세스는 여전히 제공하지 않고 있습니다. 이러한 요구 사항을 인식하는 기능 지향 개발 도구는 비즈니스에 요구되는 광범위한 솔루션을 간단하게 작성할 수 있도록 언어 구문, 클래스 라이브러리 및 환경 기능을 프로그래머에게 제공합니다.

대상 프로그래머

Visual C++ .NET은 다음을 비롯한 여러 프로그래머와 상황에 이상적입니다.

  • Win32 기반 응용 프로그램과 구성 요소를 작성하려는 프로그래머. 많은 프로그래머들은 여전히 기본 Windows 기반 응용 프로그램을 작성해야 하는 요구를 가지고 있습니다. 이러한 프로그래머는 뛰어난 성능과 기능을 위해서 Win32 API 및 기본 C++ 클래스 라이브러리를 사용합니다. Visual C++ .NET 2003에는 프로그래머가 이러한 유형의 응용 프로그램에서 더 뛰어난 성능 효율성을 달성할 수 있게 해주는 새로운 여러 컴파일러 최적화가 포함되어 있습니다.

  • 기본 Windows 기반 응용 프로그램과 .NET-connected 응용 프로그램 간의 차이를 극복하려는 프로그래머. 기존 응용 프로그램은 일반적으로 시간, 비용, 능력 등의 다양한 요인으로 인해 복잡한 코드를 사용하기 때문에 .NET Framework를 사용하도록 즉시 재작성될 수 없습니다. Visual C++를 사용할 경우 프로그래머는 심지어 가장 복잡한 Windows API와 계속해서 상호 작용하면서 기존 응용 프로그램을 확장하거나 .NET Framework를 사용하는 새로운 코드를 작성할 수 있습니다. C#와 Visual Basic이 Windows API에 대한 액세스를 제공하지만 기존 Windows 코드와 상호 운용되는 C++의 기능에는 따라오지 못합니다.

  • 주로 응용 프로그램의 성능에 관심이 있는 프로그래머. C++는 프로그램 디자인 및 실행을 위한 최고 수준의 제어 기능을 개발자에게 제공합니다. 고급 개발자는 기본 Windows 기반 및 .NET-connected 응용 프로그램을 비롯하여 다른 언어로 작성되었을 때보다 신속하고 효율적으로 실행하는 응용 프로그램을 C++를 사용하여 디자인 및 구현할 수 있습니다.

  • 진정한 교차 플랫폼 솔루션을 작성하려는 프로그래머. 거의 모든 운영 체제 플랫폼에서 사용할 수 있는 ISO 표준 기반의 이식 가능한 구문은 C++ 언어에만 포함되어 있습니다. Visual C++ .NET 2003에서는 표준 준수가 향상되었기 때문에 프로그래머는 고급 언어 기능을 사용할 수 있을 뿐만 아니라 다른 운영 체제에서 사용 가능한 널리 알려진 클래스 라이브러리를 활용할 수 있습니다.

고유한 언어 기능

고급 프로그래머 사이에서 요구되는 여러 고유한 언어 기능이 Visual C++ .NET에 포함되어 있습니다. Microsoft 제공 Visual Studio 언어 중에서 C++가 가장 강력한 이유는 바로 이러한 언어 기능에 있습니다.

  • 템플릿. 템플릿은 C++의 고유한 여러 컴파일 시 언어 기능을 포함하며, 다양한 코드 재사용 및 성능 향상 기능을 가능하게 만들어 줍니다.

  • 포인터. 포인터는 C++ 개발자가 시스템 수준 메모리 위치에 직접 액세스할 수 있게 함으로써 응용 프로그램이 최고의 성능을 발휘하도록 만들어 줍니다.

  • 다중 상속. C++는 다양한 OOP 프로그래밍 패턴을 구현하기 위한 광범위한 개체 지향 프로그래밍(OOP) 기능을 개발자에게 제공합니다.

  • 내장 함수. 내장 함수는 MMX 및 AMD 3DNow! 레지스트리와 명령 등의 전통적인 프로그래밍 방식을 통해 사용할 수 없는 주요 플랫폼 기능을 개발자가 액세스할 수 있게 해줍니다.

  • 컴파일 시 특성. C++ 특성은 간단하고 견고한 구문을 사용하여 세부적으로 조정된 반복 사용 코드를 작성하기 위한 신속한 방법을 제공합니다.

고유한 환경 기능

Visual C++ .NET 2003에는 또한 프로그래머가 유연하고 강력한 응용 프로그램을 작성하는 데 도움이 되는 다음과 같은 다양한 환경 기능이 포함되어 있습니다.

  • 컴파일러 최적화. Visual C++ 최적화 컴파일러는 대상 컴퓨터 환경, 부동 소수점 계산 및 MSIL 생성을 비롯한 다양한 시나리오에 맞도록 응용 프로그램을 세부 조정합니다.

  • 런타임 코드 보안 검사. Programmers can write more-secure nativeWindows-based applications using advanced compiler features that help protect applications from malicious attack.

  • 32 및 64비트 지원. Visual C++ 컴파일러는 32 및 64비트 Intel 및 AMD 마이크로프로세서와 다양한 임베디드 장치 마이크로프로세서를 비롯한 여러 하드웨어 플랫폼에서 사용할 수 있기 때문에 응용 프로그램이 진정한 확장성을 갖도록 만들어 줍니다.

  • 고급 오류 보고. 응용 프로그램은 항상 프로그래머 오류에 노출되어 있습니다. Visual C++에서 개발자는 미니덤프 기술을 사용하여 심지어 배포된 코드에서도 보다 쉽게 버그를 식별하고 수정할 수 있습니다.

  • 고급 디버깅. Visual Studio Debugger 및 Visual C++는 기본 코드와 관리되는 코드를 동시에 디버깅하기 위한 완벽한 지원을 제공합니다.

프로그래머가 구성 요소와 응용 프로그램을 더 강력하게 제어할 수 있는 다음과 같은 여러 가지 고급 기능이 앞으로 Visual C++ .NET에 포함될 것입니다.

  • Generics. 매개 변수화된 코드 알고리즘을 재사용하기 위한 런타임 기술입니다.

  • 관리되는 형식에 대한 템플릿. 컴파일 시 C++ 템플릿 구문과 기술을 관리되는 형식과 함께 사용할 수 있는 기능입니다.

  • CLS(Common Language Specification) 준수 및 확인 가능 어셈블리 작성을 위한 더 풍부한 지원 C++ 컴파일러는 비-CLS 준수 형식과 확인 불가능한 코드에 플래그를 지정하는 방법으로 개발자를 지원할 것입니다.
Top of Page Top of Page

Visual C# .NET

http://www.microsoft.com/Korea/MSDN/vcsharp

전통적으로 개발자는 Visual Basic과 Visual C++를 상이한 도구로 사용해왔습니다. 생산성을 강조하는 Visual Basic은 프로세스의 모든 기본 시스템 리소스를 포기하는 대신에 가장 쉽고 직관적인 개발 경험을 프로그래머에게 제공하는 데 초점을 맞추어 왔습니다. 반면 Visual C++는 생산성 향상을 고려하는 경우에도 항상 Windows 플랫폼에 대한 완벽한 액세스를 제공하는 데 치우쳐 있었습니다.

두 도구의 간격을 메우기 위해서 Microsoft는 현대적이고 혁신적인 C# 프로그래밍 언어를 코드 중심 개발자에게 제공합니다. C#는 Visual Basic 프로그래머가 누리고 있는 다양한 생산성 혜택과 함께 C++ 개발자에게 익숙한 분명하고 세련된 프로그래밍 언어를 제공합니다.

코드 중심 개발

모든 프로그래머는 프로젝트의 특정 부분에서 코드를 작성합니다. 그러나 대부분의 프로그래머는 또한 마법사, 컨트롤 및 디자이너를 사용하여 자신의 응용 프로그램 디자인 및 개발에서 어느 정도의 생산성을 실현하기 위해 상당한 시간을 투자하고 있습니다. 코드 중심 프로그래머의 경우 이러한 생산성에 초점을 맞추게 되면 프로그램 내에서 사용되는 코드에 대한 이해와 제어 가능성이 부족해지는 부작용이 있습니다. 더 높은 생산성과 더 분명한 코드 이해 중에서 선택한다고 했을 때 코드 중심 프로그래머는 흔히 개발 환경에서 제공하는 코드가 아니라 자신이 작성한 코드를 "신뢰"하는 경향이 있습니다. 실제로 이러한 프로그래머는 종종 디자이너나 마법사에 의존할 수 있지만 최소한 서식 일관성과 기능 보호를 위해서 결국에는 생성된 코드를 수정하게 됩니다.

게다가 코드 중심 프로그래머는 다른 사람이 재사용할 수 있는 코드를 작성하는 경향이 있습니다(다른 사람이 개발 방법에 대한 지식이나 이해가 다소 부족할 수도 있음). 이러한 프로그래머가 만드는 비즈니스 프레임워크와 클래스 라이브러리는 흔히 코드 편집기만 필요하며 어떠한 종류의 디자인 측면도 포함하지 않는 것이 일반적입니다.

대상 프로그래머

C# 프로그래밍 언어는 .NET Framework를 사용하여 차세대 응용 프로그램과 서비스를 작성하려는 다음 유형의 프로그래머에게 이상적입니다.

  • C/C++ 계열의 생산적 언어를 원하는 프로그래머. C# 언어는 연산자 오버로드, 열거 형식, 대/소문자 구분 등에 대한 지원과 속성, 특성, 대리자, 이벤트 등을 비롯한 추가 구성 요소 지향 기능을 통해서 C++와 유사한 구문을 보완합니다. 이러한 익숙하고 새로운 기능은 .NET Framework와 합쳐져서 기본 코드의 뛰어난 보안 이점, 생산성 및 관리 효율성과 함께 사용이 편리한 구문을 C++ 프로그래머에게 제공합니다.

  • 프레임워크 디자이너 및 소프트웨어 설계자. 연산자 오버로드나 이전 소프트웨어 액세스를 위한 안전하지 않은 코드를 비롯하여 비즈니스 프레임워크를 작성하기 위한 견고한 지원을 통해, C#은 풍부하고 유연한 비즈니스 프레임워크와 라이브러리를 작성하는 데 필요한 기능을 소프트웨어 설계자에게 제공합니다. 또한 generic 및 iterator를 비롯한 최신 기능을 통해 C#은 .NET Framework 기반 비즈니스 시스템을 작성하기 위한 더 뛰어난 대안을 설계자에게 지속적으로 제공할 것입니다.

  • Java 기반 소프트웨어에 막대하게 투자한 프로그래머. Java 기반 소프트웨어에 막대하게 투자한 프로그래머는 JLCA(Java Language Conversion Assistant)를 사용하여 기존 코드를 C# 및 .NET Framework로 신속하게 마이그레이션할 수 있습니다. JLCA는 코드의 소스 코드 수준 분석을 수행하며 Java 기반 레거시 소프트웨어를 바탕으로 하는 새로운 C# 코드를 생성합니다. 분석과 변환이 완료되면 개발자의 주의가 필요한 코드 영역이 분명하게 표시되므로 프로그래머는 필요한 경우 마이그레이션 프로세스를 완료할 수 있습니다.

C++ 유사 언어 기능

또한 C# 프로그래밍 언어에는 .NET Framework를 사용하여 응응 프로그램을 구축하는 프로그래머에게 전통적인 C++ 스타일 개발을 제공하는 여러 기능이 포함되어 있습니다. 흔히 이러한 기능은 생산성이 더 뛰어나기는 하지만 Visual C++의 기능과 비슷합니다.

  • 모든 CLR 형식 지원. C# 언어는 CLR에 정의된 모든 데이터 형식을 지원하기 때문에 프로그래머는 .NET 관리 실행 환경을 최대한 활용하는 솔루션을 만들 수 있습니다.

  • 참조 전달 및 out 매개 변수. 프로그래머는 C#를 사용하여 참조에 의해 변수를 함수에 전달할 수 있으며 out 매개 변수를 만들어 해당 매개 변수가 정의된 함수가 종료하기 전에 초기화를 요구할 수 있습니다.

  • 연산자 오버로드. C#를 사용하는 프레임워크 디자이너는 연산자를 오버로드하여 더 견고한 클래스 라이브러리를 만들 수 있습니다.

  • "using" 문 . 프로그래머는 using 문을 사용하여 응용 프로그램이 리소스를 관리하는 방법을 더 많이 제어할 수 있습니다

  • 안전하지 않은 코드. 프로그래머는 C#에서 선택적으로 포인터를 사용하고 메모리를 조작할 수 있습니다. "안전하지 않은 코드"는 여전히 CLR에 의해 관리되지만 응용 프로그램이 메모리를 사용하는 방법을 고급 프로그래머가 더 많이 제어할 수 있는 여지가 있습니다. 그러나 응용 프로그램 메모리를 최대한 제어하려면 Visual C++를 사용하는 것이 좋습니다.

  • XML 문서. XML을 사용하여 코드와 함께 솔루션에 주석을 달고 문서화할 수 있습니다.

또한 C#는 언어 디자인의 경계를 확장하는 매우 신속하게 발전하는 기술입니다. 프로그래머가 원하는 대로 사용할 수 있는 옵션을 더 많이 제공하고 현대적이면서 혁신적인 프로그래밍 언어로 응용 프로그램을 작성할 수 있도록, C# 언어 디자이너는 여러 다른 기능을 언어에 추가하는 것을 계획합니다. 이러한 기능은 다음과 같습니다.

  • Generics, 기존 코드를 더 쉽게 재사용할 수 있게 해주는 C++ 템플릿의 한 형태입니다.

  • Iterators, 데이터 컬렉션을 훨씬 더 빠르고 쉽게 이동해주는 구문입니다.

  • 익명 메서드, 대리자를 사용하여 간단한 작업을 수행하는 더 쉬운 방법입니다.

  • 부분 형식, 프로그래머가 여러 파일에서 코드를 분할하기 위한 방법입니다.
Top of Page Top of Page

Visual J# .NET

http://www.microsoft.com/Korea/MSDN/vjsharp

Microsoft는 Visual J# .NET과 함께 .NET에서 Java 언어를 소개함으로써 자체의 프로그래밍 언어를 완성합니다. Visual J# .NET은 프로그래머, 학생 및 교수가 Java 언어를 통해 .NET Framework의 전체 기능을 사용하는 솔루션을 작성할 수 있게 함으로써 이러한 사용자들이 기존의 기술과 교과 과정을 유지할 수 있도록 도와줍니다. 또한 Visual J# .NET은 기존의 기술과 솔루션을 Windows 기반의 차세대 플랫폼으로 이전하기 위한 방법을 제공하므로 Visual J++ 6.0 고객은 Microsoft .NET으로 쉽게 이전할 수 있습니다.

Java 언어 개발

Java 언어는 더 간단한 구문과 익숙한 개체 지향 기능을 통해 전통적으로 C++ 개발자가 직면한 많은 문제를 해결해 왔습니다. Java 언어를 사용하는 개발자를 위해 Visual J# .NET은 .NET Framework를 사용하여 응용 프로그램 작성을 시작하는 가장 익숙하고 생산적인 방법을 제공합니다. Java 개발자는 Java 언어를 지속적으로 사용할 수 있으며 .NET Framework의 풍부한 모든 기능을 즉시 통합할 수 있습니다.

대상 프로그래머

Visual J# .NET은 다음을 비롯한 여러 상황에 처한 프로그래머에게 이상적입니다.

  • 기존 Java 언어 개발자. 이미 Java 언어에 익숙한 개발자는 새 언어를 터득하는 것을 원하지 않을 수 있습니다. Visual J# .NET에서는 이러한 Java 언어 개발자가 기존의 기술과 투자를 그대로 사용할 수 있으므로 .NET Framework를 배우는 데 방해가 되는 장벽을 줄일 수 있습니다.

  • Visual J++에 투자한 프로그래머. Visual J# .NET은 Visual J++ 기반 프로젝트를 Visual J# .NET으로 마이그레이션 및 변환합니다. 변환된 프로젝트는 .NET Framework에 있는 기능을 활용하도록 즉시 향상시킬 수 있습니다.

  • 학생, 교사 및 교수. 학생, 교사 및 교수는 Visual J# .NET을 통해 간단한 Java 언어를 사용하여 컴퓨터 공학의 기본 사항을 배우고 가르칠 수 있습니다. Visual J# .NET은 AP(Advanced Placement) 컴퓨터 공학 시험의 모든 요구 사항을 충족합니다.

고유한 언어 기능

.NET Framework를 사용하여 응용 프로그램을 개발하려는 Java 언어 개발자에게 있어 J#는, 다양한 언어 기능을 포함하고 있기 때문에 가장 편리하고 익숙한 경험을 제공합니다.

  • Java 언어 구문. Java 언어 개발자는 이미 익숙해져 있는 구문을 사용할 수 있으며 .NET Framework의 모든 기능에 액세스할 수 있습니다.

  • 클래스 라이브러리 지원. 대부분의 JDK(Java Development Kit) 레벨 1.1.4 클래스 라이브러리의 기능을 제공하고 미국 대학 위원회의 컴퓨터 공학 AP(Advanced Placement) 교과 과정에서 지정하는 JDK 1.2 java.util 패키지에 포함된 대부분의 클래스의 기능을 제공하도록 설계된 클래스 라이브러리가 독립적으로 개발되었습니다.

  • 속성, 대리자 및 이벤트. J#에서는 일반 Java 언어 구문과의 일관성을 유지하면서 .NET 스타일의 속성, 대리자 및 이벤트를 사용 및 표시할 수 있습니다.

  • Javadoc 주석. J#는 Javadoc 스타일의 코드 주석을 지원합니다. Visual J# .NET에는 Javadoc 주석에 기초한 HTML API 문서를 생성하기 위해 호출할 수 있는 도구가 포함되어 있습니다.

고유한 환경 기능

Visual J# .NET은 Visual Studio .NET 개발 환경에 직접 연결되기 때문에 J# 개발자는 디자이너, 디버거 및 고급 편집기와 같은 기능에 완벽하게 액세스할 수 있습니다. 또한 기존 Java 언어 개발자가 Microsoft .NET으로 전환할 수 있게 도와주는 몇 가지 도구가 있습니다.

  • Visual J++ 업그레이드 마법사.Visual J++ 개발자는 자신의 프로젝트를 Visual J# .NET으로 업그레이드할 수 있습니다. 업그레이드 마법사는 프로젝트 파일을 변환하며 잠재적 문제와 관련된 상황에 맞는 도움말을 제공합니다.

  • 이진 변환기. 이 도구는 .NET-connected 응용 프로그램에서 사용할 수 있도록 Java 바이트코드 파일을 Microsoft .NET 어셈블리로 변환합니다.

요약

프로그래밍 언어는 다양한 솔루션을 작성하는 데 사용될 수 있으며, 각 언어에는 특정 응용 프로그램에 가장 적합한 고유한 기능과 이점이 포함되어 있습니다. Microsoft가 제공하는 네 개의 풍부한 프로그래밍 언어는 서로 통합되어 견고한 .NET 연관된 소프트웨어를 작성하는 데 필요한 모든 기능을 개발자에게 제공합니다.

 

출처 : http://www.microsoft.com/Korea/MSDN/vstudio/productinfo/whitepapers/default.aspx#top