온고냐 지신이냐..

닉 챕서스 채널에서 주제로 삼은 블로그입니다.

The convenience of .NET - .NET Blog (microsoft.com)

닷넷 프레임워크에서 닷넷 코어 계열로 갈아 타기를 거부하는 목소리가 적지 않군요.

가장 공격적으로 보이는 논쟁은

잘 되고 있던 것이나 더 잘되게 만들어라.

vs

세월에 따라 기술은 발전된다. 언제까지 동굴에서 횃불만 피울 것인가?

인 것 같습니다.

저는 사실 .net framework 를 사용한 적이 없어서, 이러한 논쟁에 뭐라 할 수 있는 입장이 아니라…

경험 많은 분들은 어떤 생각을 가지고 계신 지 궁금합니다.

7개의 좋아요

개인적인 생각은 납품이 끝난 제품이라면 그냥 두는 게 맞겠지만
라이브 서비스라던지 운영해야 하는 경우는 닷넷 8으로 업데이트 해야 겠지요.

닷넷 생태계가 프레임워크에서 코어로 빠르게 이동했고 지금은 7에서 8로 이동중인데 마소가 버린 자식에 의존하면 굉장히 힘들어 집니다. 예를들어 WCFMicrosoft Enterprise Library 같이 마소가 버리는 경우 예후가 매우 안좋아서…

6개의 좋아요

기술은 변하기 마련이고, 이미 구닥다리가 되어버린 레거시 기술을 평생 지원해 줄 수는 없죠.

개인적으로는 닷넷 프레임워크라서 이 정도 지원이라도 받은 거라고 생각합니다.

6개의 좋아요

저 글에 인상적인 댓글이 많이 보이네요.
그렇게 성능이 좋고, 자신있으면 Visual Sutdio은 왜 .NET 기반으로 업데이트를 하지 않는가?
왜 아직도 핵심 기능은 구닥다리 .NET Framework 4.6+ 기반에서 작동되는 것인가?
당신네들도 구닥다리 .NET Framework가 더 낫다는 것을 인정하는 것 아닌가?

여기서 MS의 충분한 대답을 못 듣는 것 같으니,
개발자들이 더 심하게 항의를 하는 것 같네요…

5개의 좋아요

Visual Studio 팀은 굉장히 보수적으로 일하는 거 같습니다. 64비트 지원도 2022부터 했지요. 아마도 굉장히 느린 속도로 일하는 조직 같네요.

6개의 좋아요

댓글을 읽다보니 정말 공감가는 내용이 너무 많네요…
문법 자체가 너무 휙휙 바뀌는 느낌이 들고,
표현 방식의 자유를 준다고는 하지만 이 또한 혼란을 유발하고
가독성도 떨어뜨리구요…
매 릴리즈마다 그런식으로 해버리니 사실 짜증이 좀 많이 나긴 합니다.
Blazor하면서도 마찬가지긴 하고요…

왜 그런게 있잖아요.
“적어도 이 타이밍에 이렇게 하도록 하진 않았을텐데…”
하는 추측?
그런게 요즘은 여지없이 무너지는 느낌…

우린 혁신을 위해 X대로 바꿀거니까 알아서 따라올 놈만 따라와~^^
늙다리는 저리가고 따라갈 놈만 따라오라구~

문제는 그 '혁신’이 정확히 뭘 목표로 하는 것인지,
MS 개발팀 스스로도 잘 몰라서 청사진을 제시해주지 못한다… 이런 느낌입니다…ㅎㅎ

6개의 좋아요

링크의 공격적인 댓글의 대부분은 사실을 좀 왜곡하는 경향이 있습니다. 사실은 어쩔 수 없이 회사는 비용 측면을 고려해야 한다는 점인데 Microsoft가 그 부분에 대해 솔직하지 못한 것은 어쩌면 자연스럽습니다.

Visual Studio에서 기존 레거시를 걷어내는 일이 만만치 않은 큰 비용이 발생할 것이라는 것인데요 그만큼 Visual Studio가 회사 매출에 기여하는 제품이냐 저는 아닌 것으로 알고 있습니다.

다른 관점으로 본다면 여전히 .NET 생태계는 과도기를 지나고 있다고 볼 수 있는데요, .NET Framework 으로 개발된 애플리케이션이 대부분 데스크탑 애플리케이션이라 출시된 제품을 .NET (Core)으로 마이그레이션 하기가 만만치 않고 .NET Framework에서는 지원하지만 .NET에서는 원활하게 지원하지 않는 요소가 꽤 있는 것도 사실이라… 불만이 있는 분들의 고충이 일면 이해되는 면도 있습니다. (그래서 생태계의 변화가 대세가 되어야 하는데 아직도 과도기라고 보는 이유이기도 합니다)

결론은,

.NET Framework 기반의 프로그래머, 개발사를 품기에는 Microsoft가 몇 년 동안 노력했음에도 불구하고 과도기이다.

.NET이 아직은 다수의 프로그래머에게 지지를 받는 생태계가 아니라는 것을 반증 하는 것이기도 하다.

웹, 모바일 앱, 데스크톱 앱 모두 에매한 위치의 과도기이다. 다만 .NET 및 C# 자체는 성능 및 안정성, 여러가지 면(NativeAOT 등)에서 이제 팔방미인이 되었다.

10개의 좋아요

확실한 건 닷넷을 2000년대 초반부터 하던 사람들의 질문과 의견에
적절한 대답은 없고, 오히려 공격적인 답변과 대응을 한다는 느낌…
인정할 법도 한 내용에 대해서도 조금도 인정하지 않고,
끝까지 아니라고 부정만 하는 자세가 너무 실망스럽네요…
차라리 @dimohy 님처럼 과도기에 있으니 조금만 양해해주세요… 혁신 과정에서는 언제든 이런 일이 발생할 수 있습니다.
이렇게 말해주면 좋겠는데… 그냥 변명하기 급급하니까…

ps.
다시 생각을 해보니, 오히려 제품의 과도기가 아닌, 사용자 적응에 있어서 과도기가 아닌가… 싶어요.
framework시절보다 바뀌는게 많아서 변화에 빠르게 적응하기 힘들다…고 하소연하는것으로 보이는…

6개의 좋아요

언어, 프레임워크로 부터 자유로워지면 선택의 폭이 넓죠
어차피 MS는 맘대로 할 것이고 불만 있으면 가두리 양식장을 벗어나야죠

2개의 좋아요

안타깝게도 MS가 역사적으로 잘못된 선택을 해서 날려버린 기회가 닷넷만이 아니고 다른 사례들도 꽤 많습니다. 제가 기억하는 것만해도 여럿 있는데, 일단 SQL 서버, 실버라이트 (+익스프레션 시리즈), 윈도 미디어 코덱, 윈도 CE와 윈도 모바일 장치들 전반 등등 꽤 많습니다. 마음 아픈 일이죠. ㅎㅎ

뭐, 그렇게 해서 MS가 만들어내는 기술이 아니라 다른 기술로 갈아타는 분들도 얼마든지 많고 (예: IIS, SQL Server, Docker), 반대로 MS가 전에 보여주지 않았던 모습이 다른 기술에서 찾을 수 없었던 매력적인 부분이라서 새롭게 입문하시는 분도 많습니다. (예: 타입스크립트, VSCode)

MS라는 회사는 다른 기업들과 마찬가지로 단순히 고용주와 직원들로만 구성된 회사가 아니라, 모두들 잘 아시다시피 MS라는 회사에 돈을 투자한 주주들에 의해서도 많은것이 좌지우지되는 회사입니다. 당연히 "잘 되고 있던 것이나 더 잘 되게 만들기만 하기"로는 모든 것을 충족시킬 수 없고, 회사가 지속될 수 없을거라고 생각합니다.

그리고 이런 와중에 “세월에 따라 기술은 발전하므로” 새로운 시도를 멈춘다면 MS라는 기업은 존재의의를 잃어버리겠죠. 결국 여러 가지 달성해야 할 목표는 많고, 아무리 큰 기업이라도 리소스는 한정되어있으며, 그 때 그 때 최선이라고 생각하는 선택지를 찾아 할 수 있는 최선을 다해야 하는 것입니다.

문제는, 이 최선이 안타깝게도 대체로 "많은 욕"을 먹을 수 밖에 없는 경우가 많다는 점인 것 같고요. 그런 맥락에서 MS가 "하고 싶은 대로 마음껏 사고 친다"는 것은 맞지 않는 표현이라고 생각합니다. 차라리 하고 싶은 걸 마음대로 해서 욕을 먹는거라면 좋겠습니다. (이게 어쩌면 모든 주식회사들의 숙명일지도요 ㅎㅎ)

그러다보니 MS는 사실 "애저 플랫폼"을 중심으로 모든 우선 순위를 놓고 결정하는 일이 빈번합니다. 자연히 이전에 많은 사람들이 관심을 보였던 윈도 플랫폼이나 닷넷은 항상 후순위가 될 수 밖에 없고요. 최근의 혼란이나 아쉬움, 불평은 그로 인한 결과물들이 아닐까 생각합니다.

앞으로 어떻게 될지는 모르겠습니다만, 개인적으로 저는 닷넷도 앞으로는 마이크로소프트 주도의 오픈 소스가 아니라, 좀 더 명시적이고 명확한 기조 아래에서 "닷넷 재단 산하 개발 팀의 주도"로 새로운 닷넷 릴리즈가 출시되기를 바라고 있습니다. 마이크로소프트가 회사이기 때문에, 결국은 제대로된 개발자들의 VOC를 청취하는 것은 앞서 이야기한 환경적인 문제 때문에 쉽지 않을 수 밖에 없다고 생각합니다.

VOC를 청취한 뒤 제한적인 부분만 반영하는 것이 아니라, 원하는 사람이나 회사 누구나 닷넷 런타임이나 컴파일러의 포크 버전을 만들어낼 수 있어야 하고, 그래야 도전적인 기술을 원하는 사람들에게도 만족스러우며, 안정성을 추구하는 사람들에게도 만족스러운 솔루션을 제시할 수 있을거라고 생각하기 때문입니다.

마침 이번 닷넷 8부터는 "Build Your Own Build (BYOB)"가 중요한 기능으로 소개되었고, 이전과는 다르게 더 이상 MS가 빌드해주는 닷넷 런타임에만 의존할 필요가 없어졌습니다.

MS가 맥 버전의 비주얼 스튜디오 개발을 포기한 것 (+ 여전히 비주얼 스튜디오가 닷넷 코어 런타임을 기반으로 만들지 않는 다는 것), 닷넷 재단을 형식적이지만 만들어서 운영하고 있다는 점, 그리고 빌드 과정을 본인들만이 아닌 누구나 빌드할 수 있게 바꾸어가고 있다는 점, 이 세 가지 변화를 봤을 때 얼마나 먼 미래일지는 모르겠습니다만 닷넷 기술도 진짜 오픈 소스 프로젝트로 머지 않은 시일 안에 다시 태어나지 않을까 생각합니다. (또 그래야만 할거라고 생각합니다. 그렇지 못하면 시장에서 정말로 도태되고 말겠죠.)

그런 맥락에서 저는 MSFT가 닷넷을 책임진다는 프레임에서 조금씩 벗어날 수 있기를 바라고 있습니다. MSFT가 선택과 집중을 하기 원하는 것 같으니 (마침 최근에 엄청난 레이오프를 단행하고 있죠.), 그렇게 해야 할 수 밖에 없을 거란 생각도 들고요. ㅎㅎ

12개의 좋아요

안드로이드가 모바일, iOS/macOS가 한정된 기종을 대상으로 하는 것과 달리 C#과 닷넷은 IoT부터 시작해서 모바일, PC, 서버에 이르기까지 정말 전 기종을 대상으로 굴릴 수 있도록 제공되기 시작해서 MS의 단점이 좀더 돋보이는게 아닐까 싶습니다.

원문에서는 빅 텐트 정책을 기본 철학으로 삼고 있다고 하는데, 사실 말이 좋아서 빅 텐트지 그 안에서 개발환경 하나 잘못 골랐다가 피 보는 경우가 있으니까요.
언어 API야 빅 텐트가 먹힐지 모르겠지만은 프레임워크, 라이브러리는 MS에서 좀 신중하게 다뤄주면 좋겠습니다.
저번 주에 나고야에서 만난 게임친구는 SI에서 일하고 있는데 이번에 맡은 고객사의 프로그램이 Silverlight로 만들어져있어서 그걸 유지보수하느라 애먹는다네요. (물론 아직까지도 실버라이트를 유지하고 있던 그 일본회사가 신기하긴 하지만)

참고로 오라클은 최근에 자바 11의 지원기간을 “” 8년 연장해서 2032년까지 자바 11을 쓸 수 있다고 합니다 (…)
https://zdnet.co.kr/view/?no=20230920051920
아무리 수익에 너무 신경쓴다고 욕먹는 오라클이지만 이런 걸 보면 또 그만큼 수익원 유지에 진심이구나 하는 생각이 들기도 하네요.

9개의 좋아요

와 해외 닷넷 개발자 시각도 국내랑 비슷하군요?? 이정도면 MS도 불만을 모를리는 없을것 같고 ??뭐 이런 상황에 적응을 해야겠죠 근데 모던 닷넷이랑 현재 닷넷은 Neo라고 붙일정도로 syntax 비슷하지 너무 다르잖아요
저도 같이일하는 모던 하시는 분들이랑 괴리감이나 지금 닷넷 버전에 대해서 오해에 대한 간극을
설명하기도 난감한데 그래서 요즘 고민이 많긴 합니다.
과연 이렇게 복잡하게 헉헉 대며 신기법 기술에 매진해야 할까?
그리고 온고나 지신이냐 고민은 애매하다고 봅니다 솔직히 새로운것을 해야 하긴 하는데
엄두가 안나지요 아마 국내 닷넷 생태계는 거의 제자리 걸음 하다가
copilot 거의 중급 개발자 될때쯤 OB 닷넷 개발자들이 이 것 활용해서 개발하지 않을까 싶어요

6개의 좋아요

주로 개발하는 타겟머신이 산업용 PC이고 윈10 IOT 버전 혹은 윈7 임베디드 버전을 설치해서 납품을 합니다.
인터넷이 전혀 안되는 폐쇄망이라 당연히 윈도우 업데이트는 없고요.
물론 .net 으로도 개발이 가능하고 하고싶지만 .net framework 로 개발을 합니다.
제일 큰 이유는 제가 .net 으로 개발을 못해본것이지만 기존 레거시 코드들이 전부 .net framework 기반인데 전부 migration 을 하기가 부담스럽습니다. 개발기간도 그렇고요.
최신 트랜드를 반영하는 웹이나 앤드유저 대상으로 하는 윈10 어플이었다면 .net 으로 개발했을거같은데 제한적 기능의 어플이라 .net framework 로도 충분히 개발이 가능한것도 이유 중의 하나입니다.
이러한 환경이다보니 세상이 점점 변해가는데 혼자 정체된 느낌을 받는것도 사실입니다.

6개의 좋아요

마이그레이션할 때, 레거시 닷넷 종속적인 라이브러리가 있다면, 아래와 같이

모던 닷넷 => .net standard => 레거시 닷넷

구조로, 중간에 아답터를 넣으면 마이그레이션 문제가 해결되지 않을까요?
물론, 닷넷 4.6 이상만 호환이 된다고는 합니다.

3개의 좋아요