이 세상에 프로그래밍 도구만큼 프로그래머의 마음을 감동시키는 것은 없습니다. VC, DELPHI, JAVA... 이 눈부신 이름들은 프로그래머들의 삶을 점령할 뿐만 아니라, 일종의 신념이 된 것 같습니다. 그러나 새로운 세기가 도래하면서 이러한 믿음은 다시 한번 큰 도전에 직면하게 되었습니다. 심사위원과 해커들에게 지치고 짜증을 낸 사자 마이크로소프트는 왕좌를 지키겠다고 다짐하고 최선을 다해 특기 .NET 전략을 내놓았다. .NET의 핵심 개발 언어로 C#이 자연스럽게 등장했습니다. 프로그래머들은 고통스러운 선택을 해야 하는데, 누구를 따라야 할까요? 답을 찾으려면 몇 가지 비교와 예측을 해야 합니다.
기술적이지 않은 모든 요소를 제외한다면 C#은 의심할 여지 없이 지구상에서 만들어진 최고의 프로그래밍 언어입니다. 여기에는 소프트웨어 개발 및 소프트웨어 엔지니어링 연구의 거의 모든 최신 결과가 포함되어 있습니다. 객체지향, 타입, 컴포넌트 기술, 자동 메모리 관리, 크로스 플랫폼 예외 처리, 버전 제어, 코드 보안 관리... 이 모든 기능을 다른 언어에서는 찾을 수 없습니다. 많은 사람들이 알고 있듯이 위의 기능을 나열하면 사람들은 항상 JAVA를 떠올리지만 C#은 그 이상입니다. 그러나 현실은 비기술적인 요소가 제품의 미래를 결정하는 경우가 많습니다. 특히 컴퓨터 소프트웨어의 역사에서 OS/2, Mac OS, UNIX 등과 같은 기술적으로 뛰어난 제품은 모두 아름다움에 패배했습니다. Windows의 뺨 아래. 그런데 이번에는 마이크로소프트의 역할이 맨손의 혁명가에서 괴롭히는 늙은 집주인으로 바뀐 것 같다. 정말 상황이 바뀌면 이 C# 꼬마가 엉뚱한 아이로 태어나지 않을까? 어쩌면 상황은 그다지 나쁘지 않을 수도 있습니다. 결국 마른 낙타는 말보다 크고 C#은 국제 표준이 되면 어떤 가려운 영웅(어쩌면 Microsoft 자체)이 있는지 알 수 없습니다. 다른 플랫폼으로 이식할 예정입니다. 이 경우 JAVA는 문제가 발생합니다. JAVA 사용자는 주로 네트워크 서비스 개발자이자 임베디드 장치 소프트웨어 개발자이기 때문에 임베디드 장치 소프트웨어는 C#이 사용되는 위치가 아닙니다. 네트워크 서비스 측면에서 C#의 JIT(Just-In-Time) 컴파일 및 로컬 코드 캐시 솔루션은 적합하지 않습니다. JAVA 가상 머신보다 더 강력한 성능을 제공합니다. 게다가 C#이 C++와 같은 공개 표준이 되면 소프트웨어 개발자는 JAVA 라이센스 비용을 절약할 수 있으며 Microsoft에 반대하는 사람들과 제조업체 독립을 옹호하는 사람들은 JAVA 라이선스 비용을 절약할 수 있습니다. 같은 문제. 어떤 의견. 이것이 바로 Microsoft가 찾고 있는 것일 수도 있습니다.
네트워크 서비스 분야에서 C#과 JAVA의 경쟁을 미래의 공중 패권 경쟁으로 비유한다면, C#과 전통적인 범용 신속 개발 도구인 VB, DELPHI 등의 경쟁은 단연 으뜸이 될 것입니다. 그리고 손을 맞대고 전투를 벌입니다. 아마도 가장 비참한 프로그래머는 VB 프로그래머일 것이다. 마이크로소프트에서 VB는 퇴임한 클린턴과 같을 뿐만 아니라, 모든 영광을 잃었을 뿐만 아니라 고민도 많이 하고 있다. 생각해 보세요. VB6으로 작성된 프로젝트는 거의 인식할 수 없는 VB7로 전송되기 전에 변환 도구를 사용하여 .NET 기반 코드로 변환되어야 합니다. VB7은 .NET을 수용하기 위해 제정된 CLS(공용 언어 사양)를 따르기 때문에 원래 C++, JAVA 및 기타 언어에서만 사용할 수 있었던 거의 모든 기능이 추가되었지만 구문은 원본과 호환됩니다. 이전 VB6 프로젝트의 변환된 코드를 VB7에서 처음 보는 경우라면 조심하세요! 그러니 계속 노력하고 은퇴하겠다고 말하지 마세요. DELPHI의 상황은 그다지 나아지지 않았습니다. 원래의 특별한 기술은 응용 프로그램을 빠르고 잘 만드는 것이지만 이제 최신 VS.NET Beta 1을 보면 수많은 속성 목록, 구성 요소... 가난해요? 수석 디자이너도 당신을 지지할 수 없어요.
실제로 프로그래밍 언어 중 진정한 지배자는 수년 동안 C++였습니다. 모든 운영 체제와 대부분의 상용 소프트웨어는 C++를 주요 개발 언어로 사용합니다. JAVA 프로그래머의 대다수도 C++ 매니아이며, PHP의 성공 역시 C++와 유사한 구문에 기인합니다. 운영 체제, 장치 드라이버, 비디오 게임 등의 분야에서는 C++가 오랫동안 지배적인 위치를 차지할 것이며, 가장 많은 수의 응용 소프트웨어 개발에서 C#이 C++를 대체할 가능성이 높습니다. 우선, C#은 JAVA와 마찬가지로 C++ 구문의 일부를 복사할 뿐이므로 많은 C++ 프로그래머가 쉽게 배우고 시작할 수 있습니다. 둘째, Windows는 현재 독점 플랫폼이며 Windows 응용 프로그램을 개발할 때 물론 Microsoft의 목소리를 무시할 수 없습니다. 가장 중요한 점은 C++에 비해 C#을 사용하여 응용 소프트웨어를 개발하면 개발 주기를 크게 단축할 수 있으며 동시에 사용자 인터페이스 코드를 제외한 원본 C++ 코드를 사용할 수 있다는 것입니다.
그러나 C#에도 약점이 있습니다. 우선, C# 프로그램은 기본으로 .NET 런타임 라이브러리가 필요하고 .NET 런타임 라이브러리는 차세대 Windows(Whistler)의 일부로 출시될 것이기 때문에 C# 프로그램은 아직 다수의 기존 Windows 플랫폼에서 실행될 수 없습니다. ) 또는 서비스 팩이 Windows Me 및 Windows 2000 사용자에게 제공됩니다. 따라서 가까운 미래에는 C#이 주로 서버에서 사용될 것입니다. 둘째, C#에서 사용할 수 있는 구성 요소나 라이브러리는 .NET 런타임 라이브러리와 같이 소수에 불과하며, 사용 가능한 풍부한 타사 소프트웨어 라이브러리가 없습니다. 이를 위해서는 프로세스가 필요하며 다양한 소프트웨어 개발자의 지원이 필요합니다. 또한 매우 중요합니다. 셋째, 반마이크로소프트 진영에서는 JAVA의 성공 요인 중 일부를 선전하고 있습니다. "한 번 작성하면 어디에서나 실행 가능"은 단순한 슬로건일 뿐이지만 결국 이미 성숙한 기술입니다. 현재 C#의 유일한 옹호자는 Microsoft인데, 평판이 좋지 않고 Windows에서만 실행될 수 있습니다. 사실 이 두 언어는 합리적으로 말하면 소프트웨어 개발자에게는 가장 익숙한 것이 무엇이든 최고의 도구입니다. 특히 C++ 사용자의 경우 C#은 새로운 기능을 제공하지 않습니다. .NET 런타임 라이브러리를 C++에서도 사용할 수 있고 변경할 절대적인 이유가 없기 때문입니다.
요약하자면, 저는 개인적으로 최근 몇 년 동안 C#이 Windows 플랫폼에서 필연적으로 부상하여 주인공이 될 것이며, JAVA는 UNIX, Linux 및 기타 플랫폼에서 지배적인 플레이어가 될 것이며 C++는 계속해서 힘을 발휘할 것이라고 믿습니다. 시스템 소프트웨어 분야. 매우 흥미로운 점은 JAVA와 C# 모두 C++에서 개발되었기 때문에 이들 언어의 구문이 매우 유사하다는 것입니다. 물론 다른 개발 도구도 오랜 기간 동안 계속해서 발전하겠지만 필연적으로 시장 점유율 측면에서 타격을 입을 것입니다.