제목: 러스트 비판을 지능 문제로 바꾸는 순간 토론은 끝난다

“정상적인 지능을 가진 프로그래머라면 러스트의 우월함을 알고, 어려움도 극복할 가치가 있다고 인정한다.”

이 주장은 러스트의 우월성을 증명하지 않는다.

그저 러스트에 동의하는 사람을 정상으로 정의하고, 반대하는 사람을 열등하다고 분류할 뿐이다.

논리 구조는 이렇다.


  • 러스트에 동의하면 정상
  • 러스트를 비판하면 열등
  • 불쾌해하면 열등감
  • 열등하다는 해석을 부정하면 방어적 반응


이렇게 만들면 어떤 반응도 원래 주장을 반박할 수 없다.

동의는 증거가 되고, 반대도 증거가 되고, 침묵도 증거가 된다. 이것은 기술적 논증이 아니라 자기봉쇄적 논증이다.

러스트는 분명 장점이 있다.

소유권과 타입 시스템을 통해 많은 메모리 오류를 컴파일 시점에 차단하고, 가비지 컬렉터 없이 높은 성능을 낼 수 있다. 메모리 안전성과 예측 가능한 지연 시간이 중요한 영역에서는 매우 강력한 선택지다.

하지만 “장점이 있다”와 “모든 상황에서 우월하다”는 다른 주장이다.

기술을 평가하려면 최소한 다음을 비교해야 한다.


  • 어떤 문제를 해결하는가
  • 어떤 결함을 줄이는가
  • 성능과 개발 비용은 어떠한가
  • 생태계와 인력 수급은 충분한가
  • 기존 시스템과 통합 비용은 얼마인가
  • 운영과 장애 대응은 쉬운가
  • 어떤 조건에서는 다른 언어가 더 적합한가


이 질문에 답하지 않고 비판자의 지능과 감정을 분석하는 것은 논점 회피다.

“러스트가 어렵다”는 말도 여러 의미가 있을 수 있다.

학습 비용이 높다는 뜻일 수 있고, 특정 업무에서 생산성이 낮다는 뜻일 수 있으며, 기존 생태계와 통합 비용이 크다는 뜻일 수도 있다. 이를 모두 “지능이 낮아서 어렵다”로 바꾸면 기술적 원인을 분석할 수 없다.

그리고 어려운 기술을 배울 가치가 있다는 주장도 조건부다.

항공 제어, 커널, 임베디드, 고성능 네트워크 코드에서는 러스트 학습 비용을 감수할 가치가 클 수 있다. 반면 짧은 수명의 내부 업무 도구나 기존 Java 시스템의 단순한 기능 추가에서는 다른 선택이 더 경제적일 수 있다.

좋은 개발자는 특정 언어에 무조건 찬성하는 사람이 아니다.

문제와 제약을 보고, 장점과 비용을 비교하고, 자신의 선택이 틀릴 수 있는 조건까지 설명하는 사람이다.

어떤 증거가 나와도 생각을 바꾸지 않으면서 반대자를 열등하다고 부르는 태도는 지능의 증명이 아니다.

검증을 포기했다는 증거에 가깝다.