Why Turborepo is migrating from Go to Rust – Vercel
(vercel.com)- Turborepo 는 JavaScript / TypeScript 를 위한 고성능 빌드 시스템
- 증분빌드, 병렬실행, 리모트 캐쉬(Vercel 인프라 사용)등을 이용해서 성능 향상 시도
- 처음에는 좋은 성능을 보여준 esbuild 을 쫒아 만들어짐
- Turbo 패키지로 Rust 로 작성 된 Turbopack 과 코드 베이스가 합쳐짐
- Go 언어가 서버 개발에서 보여주는 장점과 빌드 도구를 만들 때 요구 되는 점이 다름을 느낌
- Go: goroutine 모델, Context API 및 서버 인프라의 표준 라이브러리에 집중
- Rust: Process management, Filesystem, Low-level OS concepts, 사용자 컴퓨터에 배포하기
- 강력한 에코 시스템, 다양하고 좋은 crate (패키지) 가 이미 많음
- C/C++ 라이브러리를 가져다 쓰기에 Go 에 비해서 간단하고 빠름
- Turbopack 과 같은 코드 베이스로 간다면 유지 보수, 코드 공유등에서 장점
- Rust 가 개발자들을 행복하게 만들 주고 따라서 여러가지 긍정정 효과를 가져다 줌
- 현재는 “Rust-Go-Rust” 구조로 사용 되지만 계속 마이그레이션 될 것
저도 이상하게 Go는 안 땡기고 Rust가 좋게 느껴지더라고요.. (Node.js가 현재 주 플랫폼입니다)
브라우저를 만드는 모질라 팀이 내놓아서 그런가..
확실히 SRE팀은 Go를 선호하시더라고요
생태계부터 애초에 그렇게 잡혀버렸으니까요. 그리고 의외지만 브랜드 이미지도 한 몫 햇어요.
대놓고 node.js 모듈 만드는 Rust 라이브러리까지 있는데 말 다했죠.
그래서 JS 하는 개발자들 Rust에 관심 가지라는 얘기를 많이들 합니다.