Python과 같은 언어가 전 세계 여러 분야에서 곳곳에 활용되고, 표면적으로도 쉽게 접할 수 있는 것에 C#은 상대적으로 인지도가 낮아 보일 수 있을 것 같습니다. 하지만 대표적으로 거론되는 언어 중 하나임에는 틀림 없어 보입니다. 실제로도 수십년간 사라지지 않고 꾸준히 성장하고 있는 몇 안되는 언어이기도 하고요. 그리고 .NET Core 오픈소스화를 통해 더욱 발전 속도도 트렌디하고 빠르게 변화하고 있죠, 말씀해주신 것처럼 아름답고 매력 있는 언어이기 때문에 앞으로도 더 경쟁력 있게 성장하고 사랑 받는 언어로 거듭날 거라 생각합니다.
저도 러스트 한표 입니다.
메모리 관리라든가 여러부분에서 기존 언어들하고 근본적으로 다르더라고요.
검토를 좀 하다가 일단은 접었습니다.
C++이 발전하면서 메모리 관리 부분을 충분하고도 넘칠 정도로 안정적으로 쓸 수 있게 돼서요.
다만… C++의 발전에서 문제가 되는 건 대부분을 STL에서 커버를 하는 방식이다 보니
러닝 커브가 급격하게 치솟고 있죠.
거기다 어떠한 기능을 쓸때 타이핑양이 늘어나는 부수적인 부작용도 발생하고 있고요.
예를 들면 이건 이전부터 이긴 한데. 타입 캐스팅을 정규식으로 하면 복잡하고 길어집니다.
타입캐스팅이나 여러부분을 다른언어처럼 컴파일러에서 커버해주면 좋을탠데 말이죠.
개인적 상대적으로 난이도의 차이는 있겠지만 기본에서 막히는 건 기초 공부를 제대로 안 한 것이겠죠
일반적으로 난이도는 rust > c++로 통하고 있으며 C++ 깊이 들어가면 상당히 어려운 언어인데 대부분 c++로 c언어 처럼 코딩하고 하던 방식 대로만 해서 별 어려움은 못 느끼죠
C# 국내에선 입지가 좁지만 인지도가 낮지는 않을텐데요
저희 팀장이랑 제 옆자리 팀원이 그러고 있죠.
new [] 로 생성한 걸 delete로 삭제하는 소스가 있어서 실수했나보다 하면서
delete []로 바꿨더니 이게 뭐냐고 하더군요. 그래서 알려줬더니 팀장은 자기는 그래서 new delete보다
malloc/free를 좋아한다고 하고 옆자리 팀원은 delete [] 안해도 되는 이유를 검색을 해서 찾아오더군요.
사실 new [] 생성한 pointer 변수를 ++/–로 메모리 위치 이동하고 delete하면 삭제가 제대로 안됩니다.
만… 뭐 대부분은 저렇게 안쓰기는 하니 엔간해서 문제는 안생기겠지만
그렇다고 경력이 20년이 넘어가는 사람들이 할 소리는 아니죠.
c#을 처음 접한게 2007년 이었는데요. 그때는 (있었는데 몰랐었을수도 있지만)
linq, 람다 표현식, 제네릭, => 축약표현 등이 없었습니다.
처음 접했을땐 최적화된 자바 or vm에서 동작하는 최적화된 c++ 같다라는 느낌이었습니다.
델러게이트에 코드 넣을때도 일일이 함수코드 다 뚜드리던 시절이었네요.
그때는 문법적으로 어렵다는 느낌은 별로 없었는데 계속 발전해오면서 편리해진 부분도 있지만 복잡한 linq 식이나 제네릭 들어간 코드를 보면 초보자에게 좀 더 어려워진거 같기는합니다.
그만큼 표현이 간결하면서 내용은 풍부해져서 더 좋아진것도 맞는거같고요.