.NET 11, 구형 CPU에서는 아예 실행되지 않는다
What's new in the .NET 11 runtime
.NET 11 런타임은 최소 하드웨어 요구사항을 x86-64-v2와 armv8.0-a+LSE로 끌어올려, 2013년 전후로 지원이 종료된 구형 칩에서는 실행 자체가 실패한다. 대신 ReadyToRun 타깃을 x86-64-v3, armv8.2-a+RCPC로 높여 최신 명령어 세트를 활용한다. 또 런타임이 직접 async 실행을 관리하는 Runtime Async V2 프리뷰가 추가돼, 컴파일러가 만든 상태 머신 없이 스택 트레이스가 13프레임에서 5프레임으로 줄고 디버깅과 성능이 개선된다. JIT에는 경계 검사 제거, 분기 없는 switch 접기, 문자열 상수 비교 폴딩 등 최적화도 대거 포함됐다.
Starting with .NET 11, .NET fails to run on older hardware and might print a message similar to the following: The current CPU is missing one or more of the baseline instruction sets.
HN 토론
143- CharlieDigital
제 경험상 C#과 .NET이 둘 다 "과소평가"되는 큰 이유는 레거시 때문입니다.
아직도 .NET이 Windows 전용이라고 생각하는 사람들이 있고, .NET Framework 시절 이후로 C#을 쳐다보지도 않은 사람들도 있습니다. 또 마이크로소프트의 오픈소스 관련 결정(디버거, 핫 리로드 소동 등)에 여전히 앙금이 남은 사람들도 있죠.
하지만 백엔드에서 C#과 .NET으로 일상적으로 작업해 보면? 정말 환상적입니다. AI도 이걸 꽤 좋아하는 것 같고, 에이전트가 마음껏 날뛸 수 있는 도구도 많아요. Roslyn 분석기, 소스 제너레이터, (컴파일 언어치고는) 쓸 만한 핫 리로드, 마이크로소프트의 정말 좋은 문서들, 코드베이스마다 편차가 적고 일관성이 높은 점(예: Node 진영에서 Drizzle이니 Prisma니 TypeORM이니 Kysely니... 마주치는 것과 비교해서) 등이요.
제 이전 팀은 TS에서 C#과 F#으로 전환했는데[0][1] 그건 축복이었습니다. 플랫폼 운영의 많은 부분이 단순해졌거든요. 그냥 아주 견고한 툴체인 하나이고 패키지도 대체로 안정적입니다(플랫폼 설정/툴링 유지보수에 드는 노력이 훨씬 적고 그냥 빌드하는 데 더 집중). 자사 패키지는 일관된 보안 업데이트를 받고, C#은 JS/TS 생태계에서 마주치는 것만큼 전이 패키지에 노출되는 정도가 훨씬 낮습니다.
C#은 AI 코딩 시대에 정말 견고한 선택처럼 느껴집니다. 전반적인 안정성, 강력한 정적 분석기, 타입에 대한 고집, 그리고 정말 좋은 툴링 덕분이죠. 모든 사용 사례에 맞는 건 아니지만(예: CLI, 서버리스 함수), 백엔드 API에는 환상적입니다.
만약 당신이 찾고 있다면 […]
- giancarlostoro
C#은 VB6 다음으로 제 두 번째 프로그래밍 언어였습니다. 2000년대 초, 제가 12살이었을 때 가장 친한 친구 컴퓨터를 빌려서 VB .NET을 다운로드하려고 했던 기억이 나요(친구 집 인터넷이 더 빨랐거든요). 그냥 무료라는 이유였는데, 거기서 내가 실행하고 싶던 VB6 프로젝트를 그냥 실행할 수 없다는 걸 알고 엄청 실망했죠... 몇 년 후, 2007~2009년쯤 C#을 시험해 봤는데 그건 인생을 바꿔 놓았습니다.
디즈니에서 소매점 일을 하다가 결국 대학에 갔고, 졸업 후 첫 직장은 C#이어야 했는데 프로젝트 승인이 안 나서 대신 Python을 처음 접하게 되었습니다. Python은 정말 좋아했고, 그다음 JavaScript는 싫어했지만 지금까지도 애증 관계를 이어가고 있죠. 마지막으로 C#이었는데, .NET 3.5가 아니라 .NET Core를 쓰기 시작했어요. 그건... 뭐랄까, 초기 .NET Core 시절에는 고생이 많았습니다.
.NET으로 만든 멋진 프로젝트가 정말 많은데, 유일한 불만은 마이크로소프트가 실제로 계속 밀고 나갈 크로스 플랫폼 GUI 스택을 만들어서 Linux에서도 돌아가게 해줬으면 하는 거예요. ;)
대안이 있다는 건 알지만, GUI 스택을 고를 때 동료들에게 "그냥 내장된 거 쓰자"라고 말하는 것만큼 좋은 건 없죠.
- wofo
.NET 릴리스에서 늘 그렇듯 멋진 내용이네요! 런타임 비동기 지원은 저에게 놀랍습니다... 코드에 상태 머신이 없으면 스택 트레이스가 더 친절하다는 건 알겠는데, 런타임 버전으로 전환하고도 동등한 성능을 낼 수 있을 줄은 예상 못 했어요. 멋지네요!
- 1a527dd5
https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
주의하세요
(decimal)0.1
// .NET 10: 0.1
// .NET 11: 0.1000000000000000055511151231
- mgdev
그동안 비Windows 개발자들이 .NET을 떠나게 만들었던 혼란스러운 버전 관리와 런타임 호환성 문제를 많이 해결한 것 같아요.
하지만 여전히 엄청난 브랜딩 문제를 겪고 있죠.
런타임 자체는 꽤 놀라운데 정말 안타까운 일입니다. 특히 F#은 다루기 재미있어요. 몇 년 전과 달리 크로스 플랫폼 지원과 툴링도 좋아졌고요.
거기에 AI 덕분에 이제 아무도 코드를 직접 쓰지 않는다는 점을 더하면, AI 네이티브 개발 환경을 위한 완벽한 런타임이 될 수도 있었을 텐데.
하지만 그런 일은 절대 일어나지 않겠죠.
- GaProgMan
> .NET 11은 .NET 지원 정책에 따라 2년 지원되는 표준 기간 지원(STS) 릴리스입니다. STS와 장기 지원(LTS) 릴리스는 품질 및 서비스 정책이 동일하며, 차이는 지원 기간입니다. .NET 10은 계속 지원되는 LTS 옵션입니다. 어떤 릴리스를 선택하든 서비스 업데이트로 최신 상태를 유지하세요.
이번 건은 핵심을 묻어버렸네요.
- .NET 10은 2028년 11월 14일에 수명 종료
- .NET 11은 2028년 11월 9일에 수명 종료
즉, 11로 업그레이드하는 사람은 지원 일수가 더 적어집니다. 하지만 12가 RTM되면 바로 업그레이드할 거라는 전제죠.
문제는 2.1에서 꿈쩍도 안 하려는 고객들이 있다는 겁니다(2.1 재릴리스인 2.3으로 업그레이드조차 거부하죠).
- jotato
요즘 사람들은 C#에 어떤 IDE를 쓰나요? 예전(2008년쯤)에는 Visual Studio가 사실상 유일한 선택지였는데.
저는 지금 Linux에 있어요. 다시 시작하려면 뭘 써야 할까요?
- SurajMishra
Golang과 .Net이 겹치는 기능들에 대해, 레거시 시스템이 아닌 경우 왜 사람들이 golang 대신 .Net을 선택하는지 알려주실 수 있나요? 제 제한된 지식으로는 go가 문법과 메모리 면에서 훨씬 효율적입니다.