대규모 프로젝트를 하면서 실행 속도가 매우 중시될 때는 어쩔 수 없이 중간언어를 안 거치는 바이너리로 컴파일 되는 언어가 유리함
근데 그런 언어가 C, C++, D같은 언어가 있음.
C,C++은 대규포 프로젝트 할 때 초보자가 깍딱 실수 잘못하면 메모리가 줄줄 샘 shared_ptr이 있긴 하지만 레퍼런트 카운팅이라서 각 객체에서 서로를 shared_ptr로 가지고 있으면(그럴 경우가 있겠냐만... 혹시 또 모르기에)자동 회수가 안됨
D는 개듣보잡에 가비지컬렉션임, 쓰레기 수집하면 필연적으로 프로그램이 중간에 정지해야 하는 경우가 생김
하지만 Rust는 가비지컬렉션을 쓰지 않고 메모리에 소유권 개념을 집어 넣고 엄격한 규칙을 만들고, 컴파일 시간때 규칙이 어긋나는 코드가 있으면 컴파일 에러를 냄. 엄격한 규칙덕분에 메모리를 해제해야 할 스코프 끝부분을 정확하게 판단할 수 있고, 컴파일 타임에 해제코드를 집어 넣음.
규칙이 엄격하니까 대규모 프로젝트를 할 때 초보자가 중간에 들어와서 unsafe구문을 사용하지 않는다는 전제하에 코드를 수정한다 해서 실행 때 갑자기 어디서 메모리 릭이 생길 리가 없음.
인터페이스 개념으로 있는 trait이란 것으로 연산자 오버라이딩도 가능함.
단점은 C/C++로 프로그래밍을 좀 한 사람이 아니면 규칙이 가진 장점을 못 느낌
단점이 저거 하나야?
갓언어 ㅇㅈ.. 한 3달전인가부터 러스트빨던 사람 있었는디