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