그리고 자바가 그렇게 병신이라지만 JVM 선점을 한 선점 언어이고, 이 선점에서 큰 방향성을 가지고 있는거고


결국 어떤 언어가 우월하다가 아님


가령 CPP vs 러스트하면 이론상 CPP가 더 빠르지만 병렬처리에서 어지간하면 러스트가 빠름. 데이터 레이스에서 러스트가 더 안전하게 짜기 쉽기때문.


그리고 메모리 안전하기때문에 CPP보다 러스트로 대체되는거지만


러스트는 CPP보다 더 악명 높은 컴파일 시간부터 시작해서, 여러 문제가 있음.


그리고 라이프타임을 사실상 강제하기때문에 코드 크기가 커질수록 유지보수 자체가 너무 힘들다는 단점도 있음


CPP또한 RAII 지키고, 모던하게 짜면 유지보수가 힘들지만 애초에 CPP도 여전히 C스타일과 안전하지 않은 RAW PTR이 대세고


하지만 그 RAW Ptr에서도 어느정도 안전 지향하게 짠 방식들이 있음. 레거시로 분류되지만 여전히 활발한 기법들도 있고


거기에 러스트가 성능 최적화에 좋다고 하기에는 애매한게 LLVM을 기반으로 이론상 최적화가 제일 좋지만 실제로 JIT 같은 걸 도입이 안되고


주로 쓰이는 비동기 모델인 async/await 기반도 안된다는 한계가 있음


그리고 내가 물고 빠는 C#도 CLI 위에 있고, 이게 다른 것보다 무거운 경향이 있으며, 결국 최적화에 한계가 있다는점도 있고


모든 언어는 저마다의 철학이 있고, 지향이 있음


그거가지고 싸워봤자 의미가 없음


모든 언어가 각기 내포하는 장단점이 다르기때문에


결국 트레이드 오프를 이해하고


내가 당면한 문제에 가장 적합한 언어를 고르는 것이지.


그 언어가 싫고 나쁘다가 아니라


그냥 내가 주로 쓰는 언어가 어떤 강점을 가지고 있냐를 생각하는게 맞음