Matthew Plant가 자신이 개발한 Scheme 구현체 scheme-rs가 첫 릴리스 0.1.0에 도달했음을 알리고, 지난 1년간의 변화와 남은 과제, 그리고 프로젝트가 자신의 삶에 가져온 변화를 돌아본다.
Home | Articles | Projects | RSS
by Matthew Plant
오늘로부터 딱 1년에서 1주일 모자란 날, 나는 내가 새로 작성하고 있던 Scheme 구현체 scheme-rs를 발표하는 글을 게시했다. 그리고 오늘, scheme-rs가 첫 버전인 0.1.0에 도달했음을 기쁜 마음으로 알린다. 웹사이트(scheme-rs.org—DNS 전파가 끝나면 언젠가 scheme.rs로 업데이트될 예정)나 github 페이지에서 확인할 수 있다.
아직 해야 할 일이 훨씬 더 많지만(이에 대해서는 아래에서 더 이야기하겠다), R6RS 테스트 스위트에서 2258개의 테스트를 완료하는 이정표에 도달한 뒤로는 scheme-rs가 첫 릴리스를 약속할 만큼 충분히 안정적이라고 판단했다.
정말 놀라운 여정이었다. 그리고 나는 이 여정을 계속 이어가게 되어 무척 기대된다.
작년에 scheme-rs를 처음 발표한 이후로 몇 가지 변화가 있었다. 가장 큰 변화는 더 이상 비동기(async) 전용이 아니라, 이제 동기(sync)도 지원한다는 점이다.
이 변화는 불가피했다. async만 지원하면 채택이 크게 저해될 것이기 때문이다(더 중요하게는, 내 개인적인 사용 사례에서도 제약이 컸다). 하지만 async 지원을 전혀 희생하지 않고 이 변경을 구현할 수 있었다는 점이 정말 만족스럽다. 실제로 scheme-rs는 async 컨텍스트와 sync 컨텍스트 양쪽에서 모두 사용하는 것도 가능하다.
아직 완전히 마무리되지 않은 것들이 꽤 많아서, 여기 나열해 보겠다:
하지만 더 중요한 것은, scheme-rs 위에 구축하고 있는 새 언어 작업을 시작하게 되어 매우 기대된다는 점이다. 강타입 언어가 될 것이라고 언급했는데, 이제는 구성의 미적분(calculus of construction)을 쓰고 싶어질지도 모르겠다. 가능성은 정말 무한하다!
작년 8월, 나는 막 실직한 상태였다. 무엇을 해야 할지 정확히 알 수 없었다. 소프트웨어 엔지니어링 일자리들의 지형을 바라보며, 그 안에서 내 자리가 어디인지 점점 더 확신이 없어졌다. 그때까지도 몇 년 동안 일에 만족하지 못하고 있었고, 애초에 나를 채용할 가치가 있게 만들었던 차별화 요소를 잃어버린 느낌이었다. 흥미롭고 나를 도전하게 만드는 일을 구한다는 생각은 완전히 손이 닿지 않는 곳에 있는 것처럼 느껴졌다.
그래서 나는 내면을 들여다보기로 했다. 컴퓨터 과학에 대한 처음의 사랑이 어디서 왔는지 다시 찾아보려 했다. 한동안 들쭉날쭉하게 붙잡고 있던, 비전도 분명치 않은 작고 허름한 프로젝트가 하나 있었다. 나는 여가 시간을 그 프로젝트에 집중하기로 했다. 연구를 하고, 학계의 탄탄한 뒷받침을 바탕으로 올바르게 일을 해내는 데 집중하기로 했다. 몇 군데에는 지원하되, 그것들이 잘 안되면 대신 대학원 진학을 준비하기로 했다.
프린터를 하나 사고 논문을 읽기 시작했다.
![이미지 1: 세 권의 책(Andrew W. Appel의 Compiling with Continuations, Peter Lee 편집의 Advanced Language Implementation, Michael Sperber·R. Kent Dybvig·Matthew Flatt·Anton van Straten 편집의 Revised [6] Report on the Algorithmic Language Scheme)과 네 편의 논문(Effective Nondestructive Equality Checking for Trees and Graphs, Concurrent Cycle collection in Reference Counted Systems, Extending the Scope fo Syntactic Abstractions, Implicit Phasing for R6RS Libraries) 모음](https://maplant.com/papers.jpeg)
그 작고 허름한 프로젝트가 바로 scheme-rs였고, 그것이 내 삶을 얼마나 바꿔놓았는지는 말로 다 하기 어렵다. 나는 소프트웨어 엔지니어로서의 능력에 훨씬 더 자신감을 갖게 되었다. 더 이상 박사 학위가 나보다 훨씬 더 똑똑한 사람들만을 위한 것이라고 생각하지 않는다. 그리고 더 놀랍게도, 그것은 내가 정말 사랑하는 직장을 찾는 데 직접적으로 이어졌다.
이 점에서 scheme-rs가 특별히 대단했던 것은 아니다. 단지 나에게 도전이 되는 일이었을 뿐이다. 그리고 만약 당신의 뇌가 내 것과 조금이라도 비슷하다면, scheme-rs가 나를 도전하게 만들었던 것처럼 당신을 도전하게 만드는 프로젝트를 꼭 찾아보길 강력히 추천한다.
도전하는 걸 좋아하고, 나만큼 함수형 프로그래밍과 Rust를 즐긴다면 OneChronos 채용 페이지도 확인해 보길 바란다.