nll에 관한 주장은 흥미롭게 봤습니다만 이것은 빌림검사기를 통해 누가 빌려간 동안 변경할 수 없다는 메모리 안전 기능을 유지하면서도 빌림이 언제 끝났느냐를 더욱 엄밀하게 검사하여 프로그래머에게 더 많은 자유를 준 것입니다.
과거 (Lexical Lifetimes): 러스트의 초기 버전에서는 변수의 수명을 **'코드 블록(중괄호 {})의 시작과 끝'**이라는 단순하고 딱딱한 범위(Lexical)로만 계산했습니다. 위 코드에서 y가 선언되면 블록이 끝날 때까지 x는 계속 '빌려준 상태'로 간주되어, 중간에 x를 수정하려고 하면 컴파일러가 무조건 "안 돼, 빌려준 중이야!"라며 막았습니다.
현재 (Non-Lexical Lifetimes - NLL): 2018년경 도입된 이 기능은 컴파일러가 더 똑똑해진 것입니다. "중괄호가 끝날 때까지"가 아니라 **"실제로 y라는 변수가 마지막으로 사용된 지점"**까지만 빌림을 유지합니다.
이거 가지고 고무줄 스펙이라고 하면 c도 자바도 최신버전에서 스펙 추가되니 고무줄이겠죠.
어떻게든 러스트를 까내리기 위해 애쓰시는 모습 참 안타깝습니다.
- dc official App
해당 댓글은 삭제되었습니다.
흠 한마디로 c나 c++는 스펙 발표 이후 그 기능이 실제로 구현되기까지 세월아 네월아 기다려야하는군요. 게다가 캄파일러 자체 기능으로 호환이 안되니 다른 구현체가 먼저 구현해도 내가 쓰는 캄파일러가 구현 안해주면 계속 기다려야 하고요. 이걸 진심으로 장점으로 생각하신다는거죠? ㅋㅋ - dc App
@나르시 공익 목적이라고 자꾸 주장하시는데 하위호환성이 안되는것도 아니고 메모리 안전 보장 범위가 줄어든 것도 아니고 더 많은 자유를 준걸 가지고 스펙이 고무줄이라 신뢰할 수 없다 이런 주장을 하셨어요. 이게 무슨 공익적 목적이 있는지 전혀 이해할 수 없군요. 오히려 훌륭한 언어를 배워볼까 하는 자질이 뛰어난 프로그래머들을 유언비어를 통해 방해하고 계신게 아닌가 싶군요. - dc App
@나르시 스펙과 구현이 분리되는게 당연하다? 흠 그게 왜 당연한건지 전혀 모르겠네요. 파편화가 좋고 당연하다는 의견을 가지셨다니 대충 수준을 알겠습니다. - dc App
@나르시 러스트가 우월하고 많은 언어등이 러스트보다 열등하다고 생각하는건 그냥 제 개인의견입니다. 러스트 까는게 공익 목적이라 흠 ㅋㅋ 본인이 대단한 사람이라는 심리가 기저에 깔려 그런 생각이 드시는게 아닐까 그런 의심이 드는군요. - dc App
@나르시 파편화가 좋지 않다는건 동의할 정도의 지적 수준은 갖추셨나보군요 흠ㅋㅋ 님이 선호하는 방식인 스펙 확정과 구현을 따로하는 c c++은 왜 파편화가 됐을까요? 잘 생각해보시기 바랍니다. 자꾸 같은 말 반복하시니 컴파일러 파편화에 대해선 더 말씀 안드리겠습니다. - dc App
@나르시 공부하세요 ^^ - dc App