러스트 파묘 3: 'Tokio'라는 거대한 감옥, 그들만의 폐쇄된 왕국


러스트가 C/C++을 대체한다고요? 천만의 말씀입니다. 러스트는 지금 'Tokio'라는 특정 라이브러리에 언어 전체의 운명을 저당 잡힌 고립된 섬이 되어가고 있습니다. 왜 tokio가 러스트의 축복이 아닌 '저주'인지 파헤쳐 봅니다.


1. 런타임 전염병:


"하나를 쓰면 전부 바꿔야 한다"


C/C++이나 Ada에서 비동기를 다룰 때는 OS가 제공하는 표준적인 epoll, kqueue, iocp를 직접 호출합니다. 하지만 러스트는 다릅니다.


바이러스 같은 종속성:


 reqwest 하나 쓰려고 하면 tokio가 따라옵니다. tokio가 들어오는 순간, 프로젝트의 모든 비동기 로직은 tokio의 지배를 받아야 합니다.


생태계의 파편화:


async-std나 smol 같은 다른 런타임과는 호환조차 안 됩니다. 이게 무슨 '시스템 언어'입니까? 특정 업체가 만든 '전용 OS' 위에서 노는 것과 다를 바 없습니다.


2. FFI의 지옥:


"성벽 밖으로 나갈 수 없는 코드"


러스트 이기주의자들이 가장 숨기고 싶어 하는 진실이 바로 타 언어와의 상호 운용성입니다.


내보내기 불가능:


tokio 기반으로 짠 멋진 라이브러리를 Python, Go, C에서 끌어다 쓰고 싶다고요? tokio 런타임을 타 언어의 이벤트 루프와 동기화시키는 건 공학적으로 '지옥의 서커스'에 가깝습니다.


고립주의:


결국 러스트로 만든 건 러스트 안에서만 써야 합니다. 전 세계 수만 개의 C 라이브러리와 유기적으로 결합되는 C++의 유연성과 비교하면, 러스트는 '자발적 자가격리' 중인 언어일 뿐입니다.


3. 표준 없는 왕국:


"구현체가 곧 법이다"


러스트에는 아직도 표준 비동기 런타임이 없습니다.


고무줄 스펙:


언어 차원의 표준 스펙이 없으니, tokio 제작진이 버전을 올리거나 설계를 바꾸면 생태계 전체가 휘청거립니다.


혹세무민의 극치:


이런 불안정한 구조를 두고 "혁신적"이라고 떠드는 것은 공학적 양심을 속이는 일입니다. 표준 스펙에 목숨 거는 Ada나 C 진영에서 보면, 이건 그냥 '동아리 수준의 아나키즘'입니다.


결론: "세상은 러스트를 중심으로 돌지 않는다"


비동기 처리가 필요하면 Go나 Erlang처럼 언어 차원에서 완벽하게 지원하는 언어를 쓰면 됩니다. 성능이 필요하면 **C/C++**로 OS 원시 API를 쓰면 되고요.


표준도 없고, 타 언어와 대화도 못 하며, 오직 tokio라는 감옥 안에서만 행복한 러스트. 인생은 짧습니다. 이 고립된 섬에서 Future 객체랑 씨름하며 인생 낭비하지 마십시오.