-
C#의 정체성
- Microsoft가 만든 현대적 다중 패러다임 언어 (OOP, 함수형 프로그래밍 등 지원)
- 강력한 타입 시스템, 간결하고 읽기 쉬운 문법, 꾸준한 진화 및 오픈소스화
- 다양한 플랫폼(Windows, Linux, Mac 등)에서 실행 가능, .NET 기반
-
언어 특성
- 객체지향, 제네릭, 람다, LINQ, async/await, 메모리 자동관리(가비지 컬렉션)
- 깔끔한 프로퍼티, immutable 객체를 위한 record, 메서드 참조(델리게이트)
- null 안전성, 패턴 매칭, 컬렉션 표현식 등 최신 문법 다수 지원
-
.NET 생태계
-
강력한 개발 도구
- Visual Studio(대표 IDE), VS Code, JetBrains Rider 등 다양한 개발 환경
- .NET CLI로 프로젝트 관리/빌드/테스트 자동화 용이
- 뛰어난 디버깅, 리팩토링, 코드 분석 기능
-
문서와 학습 자료
- Microsoft 공식문서(learn.microsoft.com) 및 방대한 튜토리얼, C# 전용 서적 다수, 커뮤니티 제공 자료 풍부
- 점진적 학습 가능(초보자-숙련자 모두 대응)
-
커뮤니티와 성장성
- Microsoft 공식/비공식 커뮤니티, .NET Foundation, Reddit, Discord, 전 세계 밋업과 행사(Microsoft Build, .NET Conf)
- 오픈소스 참여, 활발한 기술 피드백 문화
-
인기와 시장 상황
- TIOBE, Stack Overflow, PyPL 지수에서 상위권 유지
- 엔터프라이즈, 웹, 게임(Unity), iOS/Android, 빅데이터, AI 등 취업시장 강세
- 연봉도 상위권(유럽/미국 기준 10만~30만 달러대)
-
타 언어와의 비교
- Java: 유사하지만 C#이 더 진화한 기능과 생산성, 더 현대적임
- Python: C#이 속도/정적 타입/대규모 앱에 강점, Python은 스크립팅/과학계산
- F#: 함수형 프로그래밍 특화, C#은 범용/생태계 큼
- JS/TS: 웹 프론트는 JS, C#은 Blazor로 대체 가능, 백엔드는 C#이 성능/디버깅/툴링에서 우위
-
미래와 전망
- 지속적으로 혁신 중(매년 업그레이드, 신기능 출시)
- 커뮤니티와 협업하며, backwards compatibility(기존 코드 호환성)도 보장
- 블레이저(Blazor) 등 웹/클라우드로 영역 확장
-
결론
- 성능, 가독성, 생산성, 다재다능함, 생태계, 커뮤니티, 고연봉 등의 이유로 “만능 언어”에 가까움
- 초보자-전문가 모두에게 추천할 만한 균형 잡힌 언어
-
보너스: 주요 역사
- 2000년대 초 등장 → C# 1.0 ~ 13.0까지 진화
- 제네릭, LINQ, async/await 등 혁신 기능 주도, .NET Core/5/6/7/8/9로 생태계 확장
정치가 안정되면, 공공 분야에서 독점화 되어 있는 Hwp, Java 강제를 해지하라고 국민 청원 넣읍시다.
C#은 정말 안정적이고 만능인 언어 같습니다. 데스크탑, 앱, 웹 한가지 언어로 다되는 언어는 흔치 않을 것 같네요.
중국은 C#이 자바보다 인기가 높던데
한국은 전자정부프레임워크 때문에 힘들듯
C# 편하긴 한데 GC on/off 되면 완벽 할 것 같습니다.
xml도 좀 버리고… 쓸데 없이 많은 파일 찌끄레기도 좀 버리고… 배포 좀 심플해지면 더 완벽할텐데…
설마 wpf xaml을 얘기하는 건 아니시죠?
저는 xaml, 여러가지 장점/단점이 있지만,
이 xaml(UI)를 복사해서 재사용할 수 있다는 점에서도 너무 좋아합니다.
yaml, toml 좋은 포맷 있잖아요
구닥다리 xml 포맷 정말 보기 싫어요 ㅠ
xaml이 ui를 구성하는데 그걸 yaml로 가면 스크롤의 압박이…
xaml에 attribute 방식으로 설정이 추가되므로 xml 방식이 좋을것 같습니다.
아마 뭐 문법 바꾸는게 어려운건 아니겠지만(converter만 있으면)
근데 그게 아니면 yaml, toml은 ui를 구성하기 위한 화면에 맞을지는 생각을 좀더 해봐야 하지 않을까요
xml 싫어하는 건 개인 취향일 수도 있지만
xaml 코딩하면서 ui 만드는 게 너무 현타 옵니다. 과연 이게 시대에 맞는 방법인지…
c# 언어 발전에 비해 개발툴은 개떡 같다고 생각합니다.
저는 개인적으로 XAML을 통한 선언형 UI 방식의 유연성과 확장성, 그리고 개발 툴이 제공하는 생산성에 매우 만족하고 있는데요. 물론 기본 프레임워크의 불편함을 해소하기 위해 인하우스 라이브러리를 구축하거나, 입맛에 맞는 빌드나 배포 구성을 마련하는 데 시간이 걸리기는 했던 것 같습니다.
저도 xaml 이 많이 불편하다고 생각은 하는데, 프로젝트 파일이면 몰라도, UI 도구로 yaml, toml 은 너무 빈약할 것 같다는 생각이 듭니다.
구글도 yaml 기반 UI 프레임워크 시도하다가 실패한 듯 보입니다.
사실 C# 유저에게는 블레이저라는 걸출한 도구가 이미 있고, WPF, 윈폼, Maui 모두 지원합니다.
저는 사실 왜 아직도 블레이저 안 쓰고 XAML 만 쓰는 지 이해가 안 가기는 합니다.
그것도 특정 회사의 유료 프레임워크에 종속되는 경우도 적지 않은 것 같은데 말이죠.
ㅎㅎㅎㅎ 이미 세상은 자바 천국… 아오 짱나
엔터프라이즈 시장에서 밀려 난지 오래…
공짜 좋아 하는 대한민국에서는 방법이 없음…
천상 프론트엔드 나 깨작 거려야할 팔자 ㅠㅠ
빌드하려면 dll이랑 기타 파일들 엄청 나오는건 좀 공감갑니다. 제가 부족할 수도 있지만 합치려면 엄청 빡세더라구요 ㅠㅠ
PublishAot 까지 도달하시면 그런것마저도 해결됩니다!
공부해봐야겠네요!