난 프로그래밍에 자신감이 없다
내가 러스트를 쓰는 이유는
내가 프로그래밍을 존나
잘할 거라 생각해서가 아니다
하지만 러스트 컴파일러는
내게 길잡이가 되어준다
다른 프로그래밍 언어에서는
에러가 나면은
컴파일러 메세지가 이런 식으로 알려준다
"몰?루? 아무튼 안 됨 ㅅㄱ"
특히 핵심적인 부분을 놓치고
그 부분과 연동된
수십 수백개의 에러를 띄울 때
가장 혼란스럽다
그래서 나는 코딩할 자신이 없었다
이 난관을 도대체 어떻게 헤쳐나가지?
이렇게 해서 커다란 프로젝트를
도대체 이끌어나갈 수나 있을까?
그래서 당시 숙련자에게
프로그래밍을 배우는 것은
당연한 일처럼 느껴졌고
인맥이 없는 사람들은
비효율적인 자습이나 계속할 수밖에 없었다
강의라 해도 전부 돈만 처먹는 쓰레기들뿐
제대로 된 피드백을 받기도 어렵고
회사에 들어가기엔 취업이 안 된다
그렇게 완벽한 프로그래밍 언어란
당연히 없는 것처럼 느껴졌다
하지만 성공한 사람은 어디에나 있으니
마치 모든 것이 내 잘못처럼 느껴졌다
그러다 러스트를 알게 된 것이다
오너십? 버로우 체커?
그딴 건 뭔 소린지 알지도 못했다
내가 반했던 것은
컴파일러의 친절함이다
이건 이래서 틀렸다
이렇게 고치면 될 것이다
그 단순한 말 한마디가
왜 그렇게 내 가슴을 울렸을까?
굳이 에러 메시지가 아니더라도
언어의 구조가
내가 잘못된 길로 가는 것을 막아준다
"아니 이건 이렇게 쓰면 안 돼"
잠깐 편하고자 포인터를 남발했다가
나중에 수습 불가하게 되는
C++와는 대조되는 모습이었다
내가 잠깐 안일한 마인드를 가질 때마다
러스트의 구조는
내가 원하는 그것을 딱 정확히 막아주었다
그래서 나는 그때마다 다른 길을 찾아봤고
그때마다 매번
더 나은 방법이 있음을 깨달았다
러스트는 또한 중대한 결정에 있어서
그만한 대가를 치뤄야 하는 것을 알게 해준다
C++에서 서로가
같은 자원을 공유하는 포인터를 만드는 것은
무척이나 쉽다
그래서 한때 그런 부분을 조심하는 것이
프로그래머의 재량처럼 느껴지기도 했다
그런데 러스트는
애초에 초짜의 실수를 하지 않게 도와준다
탈출 방법은 언제나 있다
"unsafe"
그러나 그럴 때마다 러스트는 내 코드에
"unsafe"라는 낙인을 찍는다
"그래 함 써봐
근데 unsafe 하단 건 알아두라고"
그게 거슬려 결국
러스트가 말하는 safe한 방법을 찾다보면
매번 감탄할 만한 돌파구를 찾기도 했다
"내가... 이런 구조를 짜게 되다니..."
러스트에선 신기한 구조라고
할 만한 것도 거의 없다
러스트를 하면서
목표하게 되는 것은 단 하나다
"제발 컴파일되게 해주세요"
그리고 그 단순한 목표 하나가
갑자기 안정적인 프로그램을 딱 하나
만들어내는 것으로 이루어지게 된다
컴파일이 되도 안심할 수 없었던
다른 프로그래밍 언어들과는 다르다
런타임 에러는 개인적으로 정말 내게
정신병을 안겨주게 했던 개념이다
"안심할 수 없다"
봤던 코드를 또 본다
테스트를 위해 별 이상한 짓거리도 해 본다
물론 러스트에서 그런 일이
'절대' 안 일어나는 것은 아니다
하지만 빈도가 다르다
러스트에선 그런 일이 매우 드물게 일어나고
또 그것을 고치는 것 또한 매우 쉽다
이쯤에서 내 말을 정리해 보겠다
cargo는 천사고
rustc는 신이다.
물론 러스트를 쉽게 활용하기 힘든
레거시 코드 베이스는
it 산업에 산더미처럼 쌓여 있다
하지만 그럼에도 불구하고
내 선택지는 rust가 될 수밖에 없다
왜냐하면 난 잘나지 않았기 때문에
나는 길잡이가 필요하기 때문에.
그리고 러스트는
나를 비난하지 않고
어둠 속에 빠뜨리지 않고
언제나 광명을 이용해서
날 올바른 길로 이끌어주기 때문에.
다른 사람이 러스트를 하지 않는다고 해도
상관 없다.
신과 인간이 대립할 때
신이 옳지
인간이 옳겠는가?
나는 오늘도
신의 말씀을 성전처럼
내 미천한 손가락으로 옮겨적는다.
마치 한 편의 시 같구나
이거 보고 바로 rustup 실행시켰다
이거 보고 인텔리제이 삭제했다
'신이 옳지 인간이 옳겠는가' 찢었다 ㅅㅂ
이새낀 비유가 아니라 진짜로 러슬람이네
걍 씹덕드립용 템플릿에 이름만 러스트로 바꾼거잖아
컴파일러에게 가스라이팅 당하셨네ㅋㅋ 러스트 에러 정보 품질이 좋긴함
이거보고 스팀에서 러스트 다운받았다
동서남북으로 울부짖었다...
울면서 개추 눌렀다
이쯤되면 좀 무서운데?
틀린 말은 없으니 ㅋㅋ 타입 시스템을 약하게 해서 언어가 발전하지는 않지. 그게 발전의 방향이었으면 어셈블리어로 종결났어야 했겠지. 깐깐한 쪽인지 추론 쪽인지 가중의 차이가 있을 뿐 타입 시스템 서포트 면에선 러스트는 매우 친절한 언어지.
배포해서 유저 환경에서만 가끔씩 런타임 에러 나는거 겪어봐야 러스트 좋구나 하지
문과임?
진짜 '러슬람'
신옳인옳 ㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋ - dc App
러슬람 참으로 가슴이 따뜻해지는 신조어이다