본문 바로가기

사용기 및 분석/소프트웨어

세상에 가장 거지같은 platform: M$ .NET framework.

 대부분의 M$ Windows 사용자들이 PC 를 켠 다음 뭔가 업데이트 되는 미칠듯한 환경이나, Windows 를 다시 설치 하고 나서 뜨는 100개가 넘는 대체 무슨정신으로 이렇게 만든지 모르겠는 Update 후에 다시 닥쳐오는 mscorsvw.exe 의 CPU 혼자 100% 사용하고 있는 광경을 보고 있자면 인내심이 참으로 좋은 사람이 아니고서는 화가 많이 날수 밖에 없는 모습이 바로 현실이다.


 게다가 STEAM 에서 특정 게임들만 한번 실행 하면 뜨는 이 미칠듯한 환경은 대체 누굴위한 것인가? 를 외치게 된다.

 그래서 모르는 분들을 위해 되짚어 보자면 이건 다 M$ .NET Framework 때문이다.

 이게 뭐냐고? 바로 개발자 편하자고자 나온 Java VM 처럼 해 보려다 결국 M$ 만 죽어라 되도록 만들어 놓은 M$ 독점 platform 나으리 되시겠다. 이거 이전의 독점은 바로 Windows2000 이전 OS 에서 신나게 보는 MFC 관련 DLL 없음 오류 같은것들.

 개인적인 입장에서를 떠나서 개발자적인 마인드로만 봐도 이 .NET Framework 는 오직 개발자 편하자고나 나온 거 외엔 그 이유와 편리성을 알수가 없는것이다. 정말 개발자 하나 편하자 사용자 욕먹이는 그 존재 자체란 말. 특히 이 .NET framework 는 C# 이라는 JAVA의 편의성 따윈 엿먹여 버리는 대단한 똥덩어리 인데, C/C++ 의 완벽한 객체 지향성 까진 좋은데 이게 IL 이라는 정체가 애매한 코드로 만들어 져서 .NET framework 없이는 돌지도 못하는 존재란 말이다.

 목적 자체는 좋다. 그냥 목적은 CPU 와 OS 등의 제한 없이 IL 이라는 코드로 .NET framework 위에서 도는 그 무엇인가 인데, 사실 M$ 제품에 타OS 지원 제대로 하는 제품 본적이 있는가? 단연코 없다. 심지어 지들이 만든 OS 버젼도 호환성 따윈 안드로메다 보내는 수준인데 타 OS 지원은 어디 폐차장 가서 흉기 포니 헤드라이트 램프 새거 찾는 말이다.

 잘만 만들었다면 Java VM 을 견재할 만한 또다른 대세이었을지 모르겠지만 어디 M$ 가 그런거 만든적이나 있는가? 자신들이 만들었던 MFC 자체도 버그 덩어리라 어떻게 유지보수가 힘들어 지자 버리고 새로 만들어 보겠다 나온게 .NET FrameWork 인데, 이것조차 4.0 이전까진 자신들까지 호환성이 개판이면 고마울 정도. (대체 왜 만든건지 ?)

 웃긴게 하위호환성 다 지원 한다는 .NET 4.0 깔아 봤자, 실제 1.0이니, 2.0 사용한 프로그램을 구동 하려면 결국 해당 .NET framework 깔아야 한다. 호환성 따윈 M$ 의 꿈속에나 있는 말 이다. M$ Windows 에서 상황이 이러하니 어디 타 OS 에서는 어떠하겠는가? 꿈속에서나 찾을수 있는 그 호환성은 현실에서 볼수 없는것이 진실이란듯 그런거 따윈 존재하지도 않는다.


 남들이 다 표준 platform 으로 OpenGL 이니, Open AL, Open CL, Open CA 를 만들어 각 OS 마다 해당 표준을 지켜가며 돌릴수 있는걸 만들고 있을때, 아직도 M$ 는 이런 모습따위 우리는 알바 아니란듯 DirectX 와 .NET Framework 를 매번 Update 에 끼워다가 제공하거나 따로 배포하고 있다. 그러니 Steam 같은 Client 에서는 호환성을 위해 매번 이를 검사해서 사용자 PC 에 설치 해 줘야 하는 것이고.

 .NET Framework 쓰레기도 실제 Performance 부족, 호환성 부족 등에 의해 C# 이나 VB 로 만든 것에 WPF 따윌 붙였다간 사용자들 불만에 휩싸이게 되는 걸 많이 봐 왔다. 어이없게 만든 GDI 를 어떻게 이쁘게 만든 포장지로 싸 봤자 결국 GDI 이고. Windows Message 기반 처리 방법 아무리 이쁘게 싸 봐야 그게 그거란 말이다. 근본이 이미 개판인 제품에 그 아무리 애써 봤자 달라지는건 이를 우회하고 방어하기 위한 무거운 참조 라이브러리들과 사용자 PC의 사용가능한 기록 장치의 용량이나 갉아 먹는 바퀴벌레 같은 모습 뿐이다.


 가끔 업데이트 한번 하고 나면 미친듯이 CPU 자원을 빨아 먹는 mscorsvw.exe 의 존재가 .NET Framework 의 pre-parser 라는 걸 아직도 모르는 사람이라면 이것이 바로 .NET 의 모습중 하나이며, 이 행위 역시 사용자의 동의 없이 자동으로 수행되는 것임을 인지 한다면 "일단 이것은 문제"라 인지 하는 것이 바른 자세라 본다.


 세상에 PC 엔 아직도 Windows 가 많은 지분을 차지하고 있겠지만, Steam platform 이나, Google Android 의 x86 에 대한 공세가 지속되는 이상 아마 그들의 설 자리는 지속적으로 줄어들 것이다. 그리고 결국 우리는 Windows 가 아닌 Steam PC 에서 Linux kernel 위에서 완벽히 구동되고 오직 Game 에 최적화된 놀라운 Performance 의 PC 에서 게임을 즐기게 되는 것이 미래일 것이다. 그리고 그 자리에 Windows 와 .NET framework 따위의 쓰레기는 설 자리가 없을 것이고.


 지금 개발에 임하는 개발자여, 이제 그만 .NET framework 남용을 줄여 주시면 참으로 당신과 우리 모두 고마운 일이 아닐까 한다. 타 OS 에서도 그걸 직접 옮겨서 쓸 자신이 없다면.