전에 러스트는 매니지드 언어라고 주장하는 분이 깃헙갤에 계시길래 바로 뒤로가기 눌렀엇는데

오늘 떡밥을 또 보고 생각해보니 헷갈리기 시작함


기존에는 데이터를 힙할당 할지 스택할당 할지 프로그래머 맘대로 할 수 있다

정도로 생각하고 있었는데 이것도 잘 생각해보니까 엄밀한 정의가 아닌 것 같음


조금 더 생각해보니 컴파일 했을때 결과가 기계어로 나오냐 중간 다른 코드로 나오냐 차이?

이것도 llvm 이후로는 안통하는 정의 같다


golang이 gc는 있으면서 vm은 없이 기계어로 바이너리를 뱉어내니 gc vm 기준으로도 안될 것 같음


그래서 검색해보니 애초에 managed code 라는 개념 자체가 마소가 닷넷 밀면서 나온 말

닷넷 CLR 위에서 돌아가는걸 마소가 매니지드 코드라고 표현했고 한국에서는 왠지 managed langauge가 쓰이고 있다

마소 왈

Code that executes under the control of the runtime is called managed code. Conversely, code that runs outside the runtime is called unmanaged code.


결론

기술적 의미가 있지만 애초에 엄밀한 정의라고 하긴 애매하고 마소가 만든 마켓팅 용어에 더 가까운 것 같으니 깊게 생각할 필요 없는 주제다