2013.09.02

칼럼 | 마이크로소프트 닷넷은 왜 실패했나

Andrew C. Oliver | ARN
자바(Jave)는 분명 어려움에 처해 있다. 그렇다면 이것이 곧 '자바는 과연 기술적으로 닷넷(.Net)의 뒤를 쫓고 있다는 것'을 의미하는 것일까? 그렇지 않다. 다양한 측면에서 봤을 때 닷넷은 실패했다.

10년 전을 생각해보라. 닷넷은 COM+나 COM 혹은 윈도우 DNA(Windows DNA)의 차기 버전에 그칠 존재가 아니었다. 닷넷은 자바를 완전히 무너뜨리고 윈도우 플랫폼을 확대하고 마이크로소프트의 독점을 10여 년 이상 이어갈 역할을 부여받았다. 실제로 마이크로소프트는 가장 똑똑한 전문가들에게 언어 설계, 컴파일러, 가상 머신을 맡기는 등 여러가지 일을 제대로 했다. 그러나 몇 가지 일은 크게 망쳐버렸다.

마케팅부터 이야기해보자. 마이크로소프트는 닷넷 브랜드를 과도하게 확장시켰고, 여러 부문에서 남발했다. 어느 시점에 윈도우 서버(Windows Server)에 닷넷을 통합해, 많은 사람에게 도대체 닷넷의 의미가 무엇인지 혼란스럽게 만들었다. 처음에 마이크로소프트는 닷넷을 선택적 다운로드로 해두었다. 사람들은 거대한 자바 가상 머신을 다운받는 것보다 기능이 풍부한 (동시에 충돌 가능성도 있는) DLL인 닷넷 VM을 다운로드 하는 것을 좋아했다.

수용, 연장 그리고 실패
다른 누군가의 기술을 베끼고(수용) 개선(연장)해서 나온 많은 마이크로소프트의 '혁신'들처럼, 닷넷 역시 자바를 복사하고 향상한 혁신이다. 마이크로소프트는 자바보다 더 개선해 자바를 대체하려 했는데, 다양한 측면에서 이 시도는 성공했다. C#은 검사된 예외, 접근자 생성 필요성, 변경자 방식 같은 몇몇 자바의 실수들을 고쳤다. 닷넷 가상 머신은 깔끔한 바이트코드 셋업도 가지고 있었다.

게다가 닷넷은 마이크로소프트의 문제도 해결했다. 당시 마이크로소프트 개발자들은 여러 윈도우 버전들을 담당해야 했는데, 닷넷은 이들에게 코딩의 보편적 방법을 통해 걱정을 줄여주었다.

그러나 불행히도, 닷넷은 마이크로소프트의 가장 성공적인 기업 IT 개발 환경인 비주얼 베이식(Visual Basic)의 영역을 잡아먹었다. 인디드의 잡 트렌드(Indeed’s Job Trend), 티오베(Tiobe) 등을 보면 닷넷의 부상이 비주얼 베이식의 추락과 연관되어 있음을 알 수 있다. 반면 닷넷의 트렌드와 자바와는 별다른 상관관계를 찾을 수 없다.

비주얼 베이식 닷넷은 별다른 장점이 없었다. 문서화도 충분치 않아서, 어찌 되었건 C#을 배워야 했다. 이들 사이 API가 같았기에 C#에 그냥 정착하지 않을 이유가 없었다. C#을 알게 되면 자바까지 알게 되는 게 필연이었다.

물론 닷넷이 윈도우에서 인터넷 애플리케이션을 개발하고자 하던 이들이 마이크로소프트가 제어하던 툴들로부터 이탈하는 현상은 멈추게 했지만, 이는 원래 의도하던 바와는 달랐다.

닷넷이 윈도우를 뒷받침하는 대신, 더 큰 윈도우 생태계가 닷넷을 뒷받침했다. 사람들은 셰어포인트(SharePoint)나 비즈토크(BizTalk) 때문에 닷넷을 사용했다. 닷넷 관련 작업을 깊숙이 파보면, 이들이 레거시 시스템이나 셰어포인트 관련 인프라와 연계돼 있음을 알 수 있을 것이다.

레거시 영역으로 떠나기
지금 닷넷은 너무 늦었다. 우리가 IaaS에서 PaaS와 SaaS로 이동해감에 따라, 운영체제에 신경 쓰는 일이 없어졌다. 만약 운영체제에 신경 쓰지 않는다면 마찬가지로 클라우드처럼 코딩하지 않을 이유가 없지 않은가? 우리는 최근 애져(Azure)가 큰 변화를 만들어내지 못하는 것을 보았다. 왜 우리가 그 상황의 변화를 기대하는가?

만약 대부분 회사들이 클라우드를 무시하는 한편 계속해서 자체 데이터센터 구축을 선호한다고 해도, 데스크톱 독점 역시 무너져가고 있다. 소비자들은 전체적인 정보 소비자들이다. 기술업계, 출판업계, 연예업계에서 일하지 않는다면, 아마도 미디어 생산보다 소비량이 많을 것이다. 아이패드(iPad), 안드로이드(Android)에서 닷넷 없이도 충분히 비즈니스를 할 수 있다.

모노(Mono, 닷넷을 맥과 리눅스에 적용하려는 시도) 프로젝트의 설립자이자 유명 자유소프트웨어 프로그래머인 미겔 데 이카자는 그가 좋아하는 'x'로 시작하는 회사들을 계속 만들 수 있지만, 사람들이 모노에 관심을 두거나 닷넷 그 자체의 불확실성 때문에 불안해하는 일은 계속해서 줄어들 것이다.

이제 데스크톱을 벗어나 태블릿에서 성인물과 고양이 사진, 넷플릭스(Netflix) 영화를 볼 수 있게 되면서 윈도우를 중심으로 사람들을 모이게 했던 생태계가 점점 약해지고 있다. 이는 닷넷의 부흥을 바라는 이들의 '침체의 악순환'을 가져왔다.

필자는 마이크로소프트가 닷넷을 연장하는 방법도 몇 가지 제시할 수 있다. 그러나 그럴 필요가 있을까?

사실 닷넷은 윈도우의 수명을 연장하는데 본질적인 목적이 있었다. 그러나 클라우드식 BYOD, 태블릿-지향적, 인터넷-표준-주도적인 세계로 이행하면서, 닷넷은 둘째치고 마이크로소프트의 공간도 위태위태하다. 닷넷의 이니셔티브는 실패했다. 만약 지금도 닷넷 영역에서만 일하고 있는 개발자가 있다면 다른 기술들을 배워 잠재적인 위험을 줄여야 할 때다. editor@idg.co.r



2013.09.02

칼럼 | 마이크로소프트 닷넷은 왜 실패했나

Andrew C. Oliver | ARN
자바(Jave)는 분명 어려움에 처해 있다. 그렇다면 이것이 곧 '자바는 과연 기술적으로 닷넷(.Net)의 뒤를 쫓고 있다는 것'을 의미하는 것일까? 그렇지 않다. 다양한 측면에서 봤을 때 닷넷은 실패했다.

10년 전을 생각해보라. 닷넷은 COM+나 COM 혹은 윈도우 DNA(Windows DNA)의 차기 버전에 그칠 존재가 아니었다. 닷넷은 자바를 완전히 무너뜨리고 윈도우 플랫폼을 확대하고 마이크로소프트의 독점을 10여 년 이상 이어갈 역할을 부여받았다. 실제로 마이크로소프트는 가장 똑똑한 전문가들에게 언어 설계, 컴파일러, 가상 머신을 맡기는 등 여러가지 일을 제대로 했다. 그러나 몇 가지 일은 크게 망쳐버렸다.

마케팅부터 이야기해보자. 마이크로소프트는 닷넷 브랜드를 과도하게 확장시켰고, 여러 부문에서 남발했다. 어느 시점에 윈도우 서버(Windows Server)에 닷넷을 통합해, 많은 사람에게 도대체 닷넷의 의미가 무엇인지 혼란스럽게 만들었다. 처음에 마이크로소프트는 닷넷을 선택적 다운로드로 해두었다. 사람들은 거대한 자바 가상 머신을 다운받는 것보다 기능이 풍부한 (동시에 충돌 가능성도 있는) DLL인 닷넷 VM을 다운로드 하는 것을 좋아했다.

수용, 연장 그리고 실패
다른 누군가의 기술을 베끼고(수용) 개선(연장)해서 나온 많은 마이크로소프트의 '혁신'들처럼, 닷넷 역시 자바를 복사하고 향상한 혁신이다. 마이크로소프트는 자바보다 더 개선해 자바를 대체하려 했는데, 다양한 측면에서 이 시도는 성공했다. C#은 검사된 예외, 접근자 생성 필요성, 변경자 방식 같은 몇몇 자바의 실수들을 고쳤다. 닷넷 가상 머신은 깔끔한 바이트코드 셋업도 가지고 있었다.

게다가 닷넷은 마이크로소프트의 문제도 해결했다. 당시 마이크로소프트 개발자들은 여러 윈도우 버전들을 담당해야 했는데, 닷넷은 이들에게 코딩의 보편적 방법을 통해 걱정을 줄여주었다.

그러나 불행히도, 닷넷은 마이크로소프트의 가장 성공적인 기업 IT 개발 환경인 비주얼 베이식(Visual Basic)의 영역을 잡아먹었다. 인디드의 잡 트렌드(Indeed’s Job Trend), 티오베(Tiobe) 등을 보면 닷넷의 부상이 비주얼 베이식의 추락과 연관되어 있음을 알 수 있다. 반면 닷넷의 트렌드와 자바와는 별다른 상관관계를 찾을 수 없다.

비주얼 베이식 닷넷은 별다른 장점이 없었다. 문서화도 충분치 않아서, 어찌 되었건 C#을 배워야 했다. 이들 사이 API가 같았기에 C#에 그냥 정착하지 않을 이유가 없었다. C#을 알게 되면 자바까지 알게 되는 게 필연이었다.

물론 닷넷이 윈도우에서 인터넷 애플리케이션을 개발하고자 하던 이들이 마이크로소프트가 제어하던 툴들로부터 이탈하는 현상은 멈추게 했지만, 이는 원래 의도하던 바와는 달랐다.

닷넷이 윈도우를 뒷받침하는 대신, 더 큰 윈도우 생태계가 닷넷을 뒷받침했다. 사람들은 셰어포인트(SharePoint)나 비즈토크(BizTalk) 때문에 닷넷을 사용했다. 닷넷 관련 작업을 깊숙이 파보면, 이들이 레거시 시스템이나 셰어포인트 관련 인프라와 연계돼 있음을 알 수 있을 것이다.

레거시 영역으로 떠나기
지금 닷넷은 너무 늦었다. 우리가 IaaS에서 PaaS와 SaaS로 이동해감에 따라, 운영체제에 신경 쓰는 일이 없어졌다. 만약 운영체제에 신경 쓰지 않는다면 마찬가지로 클라우드처럼 코딩하지 않을 이유가 없지 않은가? 우리는 최근 애져(Azure)가 큰 변화를 만들어내지 못하는 것을 보았다. 왜 우리가 그 상황의 변화를 기대하는가?

만약 대부분 회사들이 클라우드를 무시하는 한편 계속해서 자체 데이터센터 구축을 선호한다고 해도, 데스크톱 독점 역시 무너져가고 있다. 소비자들은 전체적인 정보 소비자들이다. 기술업계, 출판업계, 연예업계에서 일하지 않는다면, 아마도 미디어 생산보다 소비량이 많을 것이다. 아이패드(iPad), 안드로이드(Android)에서 닷넷 없이도 충분히 비즈니스를 할 수 있다.

모노(Mono, 닷넷을 맥과 리눅스에 적용하려는 시도) 프로젝트의 설립자이자 유명 자유소프트웨어 프로그래머인 미겔 데 이카자는 그가 좋아하는 'x'로 시작하는 회사들을 계속 만들 수 있지만, 사람들이 모노에 관심을 두거나 닷넷 그 자체의 불확실성 때문에 불안해하는 일은 계속해서 줄어들 것이다.

이제 데스크톱을 벗어나 태블릿에서 성인물과 고양이 사진, 넷플릭스(Netflix) 영화를 볼 수 있게 되면서 윈도우를 중심으로 사람들을 모이게 했던 생태계가 점점 약해지고 있다. 이는 닷넷의 부흥을 바라는 이들의 '침체의 악순환'을 가져왔다.

필자는 마이크로소프트가 닷넷을 연장하는 방법도 몇 가지 제시할 수 있다. 그러나 그럴 필요가 있을까?

사실 닷넷은 윈도우의 수명을 연장하는데 본질적인 목적이 있었다. 그러나 클라우드식 BYOD, 태블릿-지향적, 인터넷-표준-주도적인 세계로 이행하면서, 닷넷은 둘째치고 마이크로소프트의 공간도 위태위태하다. 닷넷의 이니셔티브는 실패했다. 만약 지금도 닷넷 영역에서만 일하고 있는 개발자가 있다면 다른 기술들을 배워 잠재적인 위험을 줄여야 할 때다. editor@idg.co.r

X