파이썬이 너무 싫어서 대체재를 찾다가 Pyo3에 대해 알게 되어 러스트에도 관심을 갖게 되었습니다.
어제 잠깐 짬을 내서 문서를 한 번 훑어 보고 진행하던 파이썬 프로젝트를 대체하려 보니 러스트의 Rx 구현에 빠진 기능이 많아서 어렵겠더군요.
그래서 언어 공부도 할 겸 간단해 보이는 오퍼레이터 구현을 작성해서 PR을 넣었는데 방금 병합이 되었습니다.
사실 비슷한 기존 코드 짜깁기 한 것이지만 그래도 언어 배운지 몇 시간 만에 오픈소스에 기여해보긴 또 처음이네요 ㅎㅎ;
실제로 파이썬을 대체할 수 있을지는 잘 모르겠습니다. Pyo3 통해서 무언가를 해봐야 얼마나 생산성이 나올지, 다른 문제는 없을지 감이 올 것 같네요.
아직 러스트를 제대로 이해한다고 이야기는 못 하겠지만 지금까지 공부한 내용으로는 꽤 흥미로운 언어인 것 같긴 합니다.
파이썬을 억지로 쓰다가 패턴 매칭이라던가 옵션 유형이나 표현식을 값으로 사용하는 등의 기능을 보니 너무 반갑더군요.
반면에 소유권이라던가 생명주기, 박스 같은 기능들은 왜 필요한지는 알겠는데 당장 C/C++이 아닌 파이썬 대체 용도로 쓰기엔 불필요한 부분이라 번잡하게 느껴지기도 했습니다.
한편 러스트 문서의 객체지향에 대한 부분은 요즘 언어 패러다임에 대한 인식의 변화를 반영하는 것 같아 흥미로웠습니다.
러스트는 언어 자체적으로도 함수형 접근을 어느정도 지원하는 반면 상속을 과감히 포기하고 트레잇과 파라메트릭 폴리모피즘을 제시하는 것은 확실히 전통적 객체지향적 접근이 더 이상 주류 언어에서 당연한 특성이 아닐 수 있다는 생각을 들게 하더군요.
소소한 자랑 글이긴 한데 그래도 오픈소스 관련이니 너그럽게 봐주셨으면 좋겠습니다.