rust로 데스크탑 쪽 부분 작성은 어떻게 연결해서 사용하시나요?
웹 어셈블리로 사용하거나, dart 쪽에서 연결해주는 도구가 있을것 같네요.
elm 쓰시는 분 많지 않은 걸로 알고 있는데, 반갑습니다. :)
조금 업데이트가 필요한 부분은 있지만 전체적인 그림은 아래 두 글이 도움이 될 것 같습니다.
Dart Meets Rust: a match made in heaven - https://dev.to/sunshine-chain/…
Dart and Rust: the async story - https://dev.to/sunshine-chain/rust-and-dart-the-async-story-3adk
Unity3d로 개발이 주업무라서 거의 c#, 가끔 네이티브 코드 작성을 위해서 java, kotlin, objc, swift, c++, c로 작성하는 경우가 생기구요.
내부 개발도구 개발을 위해서는 go (서버나 cli 도구), elm (웹 프론트)을 사용하고 있습니다.
최근 업무는 flutter로 데스크탑 프로그램을 만들고 있는데요. 일부 성능이 나오지 않는 부분은 rust로 개선해서 처리하고 있습니다.
c#은 좀 애증의 관계인 것 같은데. Unity3d를 위해서 사용하다보니 닷넷 버전을 아직 못 따라가고 있는 부분이 아쉬운 상태입니다. 최근 알파 릴리즈에서 .netstandard 2.1까지 적용될 예정인데 빠르게 정식 릴리즈가 되었으면 하는 바람입니다.
go는 개발 기간을 단축하는 부분에 있어서 장점이 있는 것 같구요.
elm은 에러 메세지가 굉장히 친절해서 다른 언어들에 비해 적응하는 시간이 짧았던 것 같아요. 물론 함수형 적응은 다른 함수형 언어를 몇 번 시도했던 것이 도움이 되었던 것 같구요.
rust는 최적화가 필요한 부분에 적절하게 사용하면 좋은 것 같다는 생각이 들더라구요. 함수형 언어들에서 부러웠던 기능들을 잘 포함하고 있는 것도 매력적이었습니다. 물론 오너십과 스코프가 조금 덜 익숙한 상태에서 오는 허들이 있긴한데, 더 익숙해지면 해결되지 않을까 싶습니다. 러스트도 오류 메세지는 친절한 편인데. 스코프 지정이나 이런 부분에서 문법이 복잡하게 느껴지는 있어서 더 공부가 필요하다고 느끼고 있습니다.
나머지 네이티브 작업을 위해서 사용하는 코드들은 다른 언어들에 비해서 굉장히 제한적으로 사용하고 있는 상태라 따로 코멘트를 적지 않았습니다.