디스코드, Electron과 React Native 버리고 데스크톱 클라이언트 전체를 Rust로
- 디스코드가 데스크톱 클라이언트를 Electron과 React Native에서 Rust로 전면 전환한다고 CTO 스타니슬라프 비슈네프스키가 X에 밝힘. 2018년부터 Rust를 도입해 인프라와 음성 기술, 클라이언트 일부는 이미 Rust였고 클라이언트 전체를 Rust로 옮기는 게 마지막 목표였음
- 모바일 앱은 네이티브 UI를 유지하되 Rust로 데스크톱과 앱 코드를 공유하는 구조로 바뀜
- Electron은 시스템 자원을 많이 쓰는 프레임워크로 알려져 있고, 새 앱은 RAM 사용량이 줄었음. 기사에는 구체적인 메모리 수치가 없음
- 해커뉴스에는 리눅스 클라이언트가 콜드 스타트에 1326MB를 쓰고 서버 11개만 들어가 있다는 사용자 관측이 올라옴
- 앱 크기가 10GB에서 10MB, 시작이 10초에서 10ms로 줄었다는 주장에는 Flatpak 기준 다운로드 240MB, 설치 568MB라며 오정보라는 반박이 붙음
Hacker News 의견들
RAM 대란 덕분에 엔지니어들이 다시 메모리를 신경 쓰게 된 게 이번 일의 제일 반가운 부분임 ㅋㅋ
근데 진짜 목적은 디스코드 모딩을 막으려는 거 아닐까 싶음. 이렇게 되면 모드 만들기가 훨씬 어려워질 텐데
이제 그만 싸우고 싶다. RAM을 풀어달라고
리눅스 클라이언트가 콜드 스타트에 1326MB를 먹더라. 서버는 11개밖에 안 들어가 있는데
GPUI가 접근성이나 CJK 렌더링을 보장해주나? 중국어는 그럭저럭 나오고 검색창 같은 컨트롤에서 IME도 된다는 얘기는 있음
접근성은 여전히 없고 공개 프레임워크가 방치된 상태라 앞으로도 안 될 수 있음. gpui-kit 같은 걸로 직접 붙여야 함
앱 크기가 10GB에서 10MB로, 시작이 10초에서 10ms로 줄었다는 건 좀 과장 같음. Electron 뺀다고 그렇게 되나
그건 오정보임. 디스코드는 10GB였던 적이 없고 Rust 포팅을 써본 사람은 디스코드 밖에 없음. Flatpak 기준으로 다운로드 240MB, 설치 568MB임
AI로 전면 재작성하면 3년 뒤에 이 코드가 어떻게 돌아가는지 아는 사람이 아무도 없어짐. 사람이 쓴 코드베이스를 그냥 버리는 건 좀 아닌 듯
누가 전부 이해해야 쓸 수 있는 게 아님. 비행기든 자동차든 만든 사람도 전체를 다 이해하진 않음. 큰 그림만 알고 필요할 때 파면 됨
그 이해를 되찾는 데만 엄청난 시간이 걸리고, 그 사이 사실상 되돌릴 수 없는 선택이 돼버림
모델이 사람이 해줄 얘기를 다 해주면 차이가 뭐가 있나. 직원도 언제든 그만둘 수 있는데
성능 때문이라면 선택지는 명확했음. 직원들이 잘 아는 웹 프레임워크에 남거나, 잘 모르지만 빠른 네이티브로 가거나
Electron 없이 만든 네이티브 클라이언트가 예전에 있었는데 디스코드가 방해했음. 이제 AI한테 RIIR 시키는 건 어려운 일도 아니고, Electron이 게으르고 낭비라는 인식이 생긴 게 제일 반가움
Vencord가 계속 돌아갔으면 좋겠음. 폰트 바꾸는 것만으로도 쓰는데 RAM을 5배 덜 쓰는 앱이면 CSS 유연성 정도는 포기할 만함
성능 개선은 좋은데 IPO 준비하면서 광고를 계속 밀어넣고 있음. 상장하고 나면 더 심해질 테니 플랫폼을 떠날 준비를 하는 게 낫겠음
예전 스타트업에서 Electron 앱을 만들었는데 e2e 테스트용 dev 빌드가 안 지워져서 하나당 500MB씩 먹었음. 크로스 플랫폼 이점이 의미 없어지는 지점이 오고, 커서도 그래서 Rust로 옮긴 거임
Electron은 그냥 브라우저 전체라서 놀랄 일도 아님. 네이티브 앱을 만들어본 사람만 놀람