Graphics Programming

나와 하스켈의 애매한 연결고리 본문

Season 2

나와 하스켈의 애매한 연결고리

minseoklee 2020. 11. 22. 23:21

옛날, 아마 대학생일 함수형 언어를 배워보겠다고 하스켈을 찍먹한 적이 있다. 논리 언어, 명령형 언어, 함수형 언어 등의 분류가 있다는 알고 함수형 언어를 배워볼까 했던 발단이었던 같다. 그리고 '순수 함수형'이라는 키워드에 낚여 Closure, F#, OCaml 많고 많은 함수형 언어 중에 하스켈을 선택하고 말았다.

 

다음은 하스켈을 배우는 일환으로 내가 했던 것들이다. 이외에도 몇 개 더 있는데 기억이 난다.

하스켈을 비롯해 가지 언어를 건드려보고 나는 오히려 C++으로 돌아왔다. C 형태가 많이 다른 언어들이 마치 본질은 똑같은데 스킨놀이하는 것처럼 느껴졌기 때문이다. (많은 언어가 LLVM 백엔드로 써서 결국 C 코드로 번역된다는 점에서 이건 어느 정도 사실이다.) 내가 평소에 하는 일이 실시간 성능이 중요한 게임 엔진 프로그래밍이다 보니 로우레벨 만능주의가 탓도 있다.

 

그래서 내가 하스켈을 완전히 놓았는가 하면 아직도 애매하게 바짓가랑이를 붙잡고 있다. 하스켈의 실용적인 가치는 여전히 모르겠지만 C++ 쓰면 질리기도 하고, 회사에서 협업할 생각 없이 혼자 취미로 하기에 재밌는 언어다. 코딩하며 일은 없지만 미분기하학을 배워본 것과 비슷한 이유다. (사실 미분기하학은 그래픽스에 조금은 쓸모가 있지 않을까 싶어서 배워봤는데 정말 쓸모가 없다.)

 

위키 번역은 반절 정도만 하고 멈춰 있었는데 아직도 피드백 메일이 가끔 날아온다. 대학교에서 PL 수업 때문에 하스켈을 찾아보는 학생들이 가끔 있는 같다. 피드백이 때만 조금씩 수정해왔는데 최근에 검색을 해보니 여러 군데에서 하스켈 참고자료로 번역본을 제시하고 있었다. 심지어 출판된 책에도 링크가 있던데 이건 나무위키를 출처로 적는 거나 다를 없지 않나?(...) 왠지 완성해야할 같은 압박을 느껴서 번역을 다시 하고 있긴 한데 후반부로 갈수록 denotational semantics, typed lambda calculus, Curry-Howard isomorphism 뭐라고 씨부렁거리는지 모르겠는 이론들이 가득하고 이미 번역했던 것도 원본 위키를 다시 열어보면 내용이 바뀌어있어서 난항을 겪고 있다. 사실 내가 번역했지만 나는 번역본보다 원문이 읽기 쉬운데, 본인이 이렇다는 점에서 이미 실패한 번역이 아닌가...

 

하스켈로 토이 프로젝트를 하거나 알고리즘 문제를 풀어보는 것도 우선순위에서 뒤로 밀려있다. 그래픽스 공부가 1순위인데 그래픽스만 배워도 배울 정말 너무 많다. 우선순위가 높은 https://github.com/codeonwort/pathosengine 이런 프로젝트들을 어느 정도 마무리하면 하스켈로 눈을 돌릴 시간이 나겠지만 칸반 보드를 보면 마무리는 요원하다. 그리고 게임도 해야 해서...

 

Comments