Home Future of Rust And Carbon
Post
Cancel

Future of Rust And Carbon

Rust 는 Client 를 작업하기엔 아직 환경이 갖춰질 시간이 필요하다.
현존하는 모든 3D API가 언어 수준의 안정성을 전혀 고려하지 않고 설계된 RAW API 이고, GUI 툴킷이 쓸만한게 없다.

그리고 특수한 케이스가 아닌 이상 C++ 로 GUI를 만드는 것은 현 시점에서는 무모하다고 생각 한다. 아마 소형 임베디드 기기 정도가 예외가 아닐까… 그런데 난 20년전 스펙이 그렇게도 낮았던 초기형 Mp3 Player 에서도 Flash 기반의 GUI를(FlashLight긴 했지만..) 몇번 본적이 있는걸 보면 그 시점에도 C++로 GUI를 하는것이 그다지 현실적이지 않다는 생각은 당시에도 마찬가지였나보다.

Rust는 새로운 Server(혹은 OS의 API를 거의 쓰지 않는 모든 SW) 를 만들 경우 반드시 사용해야만 한다고 생각하고, 앞으로 더 많이 쓰일 것이라 생각한다. 환경의 성숙도는 이미 C++을 압도하고 있다.
더 많은 기능을 제공하는 표준 라이브러리와 C++에선 제대로 돌아가지도 않는 패키지 관리자, C++보다 훨씬 나은 환경을 제공하는 개발툴등이 이미 존재한다.
훨씬 사용하기 편한 라이브러리들을 이용하여, 안정적인 코드를 만들어낼 수 있다.
기존에 C/C++ 로 되어 있는 코드가 있다면, 앞으로 추가되는 모듈을 Rust로 작성하고 서로 최소한의 연결만을 하는 방식으로 안전성을 확보할 수 있을 것이라 생각한다.

고로 Rust 는 Web이 아닌 서버, 미들웨어, 커널, 컴파일러 등에서 엄청 잘 나갈 것으로 생각된다.(이미 ruby 의 jit컴파일러가 rust로 전환 완료. typescript 트랜스파일러가 rust로 개발되어 도입중)

Carbon 은 이제 막 나온 언어라서 개발 툴 들의 지원이 전혀 없다 그리고 앞으로도 안그래도 복잡해서 엉망진창으로 돌아가는 C++이 섞여있는(지금도 C++용 intellisense 등은 다른 언어용에 비교하면 처참…) 이상 개발툴의 완성도를 기대하기 어렵다고 생각한다.

C++로 작성된 3D/Client는 위에서 말한것과 마찬가지로 Rust 에서 사용하기가 전혀 좋지 않다. 그래서 Carbon 으로 전환하여 얻을 메리트가 없을 것으로 생각된다.

C++로 작성된 Server 에 Carbon 을 붙일 경우, Rust 에서 아무리 안전하게 만들었더라도, 그 데이터가 C++ 로 넘어가버리면 그 안전성에 대한 보장이 전혀 안된다. 따라서 기존 코드를 Carbon 으로 전환해서 얻을 메리트가 상당히 줄어든다고 본다. Rust를 프로젝트에 도입 할 경우, DLL(so) 단위로 도입하여 서로의 영역을 침범하지 않는 형태로 최소한의 연결을 하는 쪽이 바람직하다고 생각한다.

Carbon은 google에서 만들었는데 https://killedbygoogle.com/ 에서 볼 수 있는 것 처럼 구글은 지들이 만들어 놓고 지들은 안쓰기 / 금방 버리기 의 달인이다. 오랫동안 유지되어야 하는 코드를 구글의 기술을 빌리기는 무섭고, 이는 나만이 아니라 많은 사람들이 비슷하게 생각할것이라 본다. 그러니까 저런 사이트가 나왔겠지…

뭐 결론적으로 Rust는 한정된 영역에서라면 지금 당장 도입해서 아주 잘 쓸수 있고, 앞으로도 잘 쓰일것 같고, Carbon 은 제대로 된 개발툴 하나 못나오고 망할거라 예상하고있다. 애초에 만든 당사자 부터가 그냥 웬만하면 Rust쓰라는 판인데 뭘 …

This post is licensed under CC BY 4.0 by the author.

Programming Font Preview Service Site

-