영혼이 혼미해질 정도로 날 흥분시킨 언어들

누구나 살면서 ‘완전 미쳤다’ 싶을 정도로 심각히 빠져드는 무언가가 있을 거에요. 프로그래밍의 재미에도 사람이 매우 깊게 빠질 수 있어요. 성취감이 강렬하거든요. 그런데 단순히 코드를 짜는 재미를 넘어, 그 언어가 너무 흥미로와 일상생활이 망가지고 영혼이 혼미해질 정도로 몹시 흥분하고 몰입했던 세월들이 있었죠. 오늘은 저를 그토록 사로잡았던 언어들, 자바, 루비, C, 그리고 현재진행형인 Ada/SPARK에 대한 이야기를 풀어볼까 합니다.

1990년대 말부터 2000년대 초: 자바와 함께한 설렘

프로그래밍 언어에 대한 저의 첫 열정은 1990년대와 2000년대의 자바였습니다. 지금은 아련한 추억이지만, 웹 브라우저에서 작은 프로그램이 돌아가던 애플릿은 당시 제게 정말 신세계였죠. 펜티엄 90MHz 컴퓨터에서 실행하면 너무 버벅대서 답답하기도 했지만, 그 자체가 너무 신기했습니다. (물론, 지금도 건재한 서블릿도 있었고요!)

당시 제가 GUI IDE를 개인적으로 개발 중이었죠. 리플렉션 기능이 너무 필요했어요. 게다가 리플렉션이라는 기능이 너무 신기했습니다. 오죽하면, 군 복무 중에도 책을 사서 공부했을까요. 그때 봤던 책이 바로 ‘코어 자바 2’였습니다. 돌이켜보면 참 대단한 열정이었죠. 제대 후에는 디자인 패턴 위주로 나온 책(Head First Design Patterns)을 보며 객체지향 설계의 매력에 또 한 번 푹 빠졌던 기억이 납니다.

2000년대 말 ~ 2010년대 초: 루비, 아름다움에 미치다

시간이 흘러 2000년대 말, 2010년대 초에는 루비(Ruby)라는 언어에 완전히 미쳐 있었습니다. 정말 ‘미친다’는 표현이 딱 맞을 정도로 짜릿했죠. 100% 순수한 객체지향, 유연하고 강력한 믹스인(Mixin), 심지어 존재하지 않는 메소드를 호출했을 때 동적으로 메소드를 만들어내는 마법 같은 기능까지!

루비의 언어 개념 자체가 너무나 참신하고 아름다웠습니다. ‘어떻게 이런 생각을 했지?’ 감탄하며 밤새 코드를 들여다보곤 했죠. 클래스 안에 클래스를 정의하고, 클래스 자체에 메소드를 붙이는 등 당시 저에게는 모든 것이 충격적이었습니다. 루비의 메타프로그래밍은 완전 마법입니다. 마법. 지금 다시 봐도 루비의 우아함과 철학은 정말 놀랍습니다. 당시를 떠올려보면 언어가 그냥 재미있었던 것 같네요.

2010년대 중반: C언어의 재발견, 깊은 재미에 빠지다

오랜 시간이 지나 2010년대 중반, 다국어 입력기 Nimf를 개발하다보니 C언어를 다시 깊게 공부해야 했습니다. 그런데 이게 웬걸, 예전에 어렴풋이 알던 C가 아니더군요. 정말 ‘겁나’ 재미있어서 거의 반쯤 미쳐 있었습니다.

포인터와 메모리를 직접 다루면서 통신 패킷 관련 코드를 작성하는 건 너무 재미있어요. 많은 사람들은 포인터 다루는 걸 혐오하던데 저는 그게 왜 그렇게 재미있는 줄 모르겠네요. 마치 정교한 퍼즐 게임이나 고도로 정밀한 기계 조작하는 느낌이 들어서 굉장히 재미있는 것 같아요. 그리고 ‘C언어로 쉽게 풀어 쓴 자료구조’ 책 빌려보면서 느꼈던 희열은 또 다른 종류의 것이었습니다. 기본으로 돌아가 근본을 탐구하는 즐거움이 얼마나 큰지 새삼 깨닫게 되었죠.

2025년 4월 (현재): Ada/SPARK, 이거 완전 괴물입니다

그리고 2025년 4월 현재… 저는 Ada/SPARK라는 언어에 푹 빠져 있습니다. ‘완전 개미쳤다’는 말 외에는 설명이 안 될 정도입니다. 밤을 새워 공부하는 것은 기본이고, 오는 문자 메시지도 바로 확인하지 않을 정도로 정신없이 몰입하고 있습니다. 어찌하면 좋을까요. 일상 생활에 지장이 갈 정도로 너무 깊이 빠져 나름 걱정입니다.

Ada/SPARK가 추구하는 검증(verification)과 보증(assurance)이라는 개념은 제게 엄청난 충격으로 다가왔습니다. ‘와… 이런 괴물 같은 언어가 다 있었네!’, ‘왜 이걸 이제야 알았을까!’ 하는 생각이 머릿속을 떠나지 않습니다. 소프트웨어의 신뢰성을 극단까지 끌어올리려는 철학과 그것을 뒷받침하는 도구들에 경이로움을 느낍니다.

실행 중 버그 없음을 수학적으로 증명…. 이게 된다고??? 물론 모든 경우에 되는 건 아니에요.

요즘은 대중교통으로 이동하는 자투리 시간에 핸드폰에 넣어둔 Ada/SPARK 관련 .epub 파일을 조금씩 읽는 것이 낙입니다. 정말 단단히 미친 거죠. 이 강렬한 몰입감과 흥분은 과거 루비에 한창 빠져있을 때의 느낌을 다시 떠올리게 합니다.

마치며

돌이켜보면, 저를 흥분시켰던 언어들은 저마다의 강력한 매력과 철학을 가지고 있었습니다. 자바의 객체지향과 플랫폼 독립성, 루비의 100% 객체지향과 동적 아름다움, C 언어의 단순함과 깔끔함. 그리고 Ada/SPARK의 안전성, 신뢰성.

여러분에게도 이렇게 ‘영혼이 혼미해질 정도로’ 빠져들었던 언어나 기술이 있으신가요? 여러분의 이야기도 궁금합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다