7월 17, 2026

실용성보다 재미가 우선한, 잊혀진 프로그래밍 언어 3 가지의 매력 탐구

안녕하세요 여러분, IT 전문 블로거 친구로써 찾아온 시간입니다. 우리는 종종 프로그래밍 언어가 왜 필요한지 궁금해합니다. 대부분은 현실의 문제를 해결하고, 데이터를 처리하며, 시스템을 구축하는 실용적인 도구로 존재합니다. 파이썬이나 자바처럼 개발자들이 업무에 쓰이는 언어들은 속도나 가독성이 중요하죠. 하지만 오늘은 전혀 다른 목적의 언어에 대해 이야기해 보고자 합니다. 바로 절대 실용적이지 않아도 괜찮은 이소틱 프로그래밍 언어, 그리고 그 중에서도 특히 잊혀진 3 가지의 특이성을 살펴보겠습니다.

첫 번째는 INTERCAL (인터칼)입니다. 이 언어는 1972 년에 프린스턴 대학교의 두 학생이 당시 기업용 소프트웨어가 너무 불필요하게 방대한 코드로 작성되는 점에 반발해 만들어냈습니다. 목표는 기존 언어와 공유되는 것을 없애고, 개발자를 최대한 힘들게 만드는 것이었습니다. 가장 유명한 규칙은 예의 바르게 써야 한다는 점입니다. 코드 안에 PLEASE 단어를 적절한 빈도로 넣어야 합니다. 너무 적으면 컴파일러가 개발자가 예의가 부족하다고, 너무 자주 쓰면 지나치게 예의바르다고 에러를 냅니다. 컴파일러의 기분을 관리하는 것이 코딩이 되는 기발한 언어입니다. 또한 기호 이름이 매우 기이합니다. 소괄호는 스파크, 따옴표는 토끼 귀, 쉼표는 꼬리입니다. 등호 대신 좌향 화살표인 ‘각 (angle)’이라고 부르며 ‘웜’처럼 읽혀 ‘gets’가 됩니다. 변수는 ‘점 (spot)’이나 ‘두 점 (two-spot)’, 배열은 ‘꼬리 (tail)’와 ‘하이브리드’로 불리며, 일반적인 숫자나 메모리 개념을 완전히 바꿔놓았습니다.

두 번째로는 Chef (셰프)라는 언어입니다. 이 언어는 David Morgan-Mar 이 개발했으며, 주방에서 요리하는 과정 자체가 프로그래밍에 비유되어 있습니다. 코드 변수의 이름은 식재료로, 설탕이나 밀가루 같은 단어가 사용되죠. 메모리 스택은 믹싱 볼이나 베이킹 디시로 표현됩니다. 변수 값에는 단위 정보가 포함되는데, 건조 측량인 그램은 숫자로, 유동 측량인 밀리리터는 문자열 (ASCII) 로 처리됩니다. 산술 연산자는 없습니다. 대신 ‘재료에 넣기’ 명령어가 스택에 값을 푸시하고, ‘접어 넣기’가 팝과 리어삼을 합니다. 곱할 때는 ‘만들기’ 명령어를 쓰며, 스택을 섞는다는 명령어로 데이터가 재배열됩니다. 프로그램을 실행해 결과물을 내놓을 때는 ‘요리하다 (Serves)’라는 문장을 통해 결과를 서버에게 내놓는 식으로 출력됩니다. 마치 요리책을 읽는 것처럼 코드가 느껴지는 아주 매력적인 언어였습니다.

세 번째는 Befunge입니다. 이 언어는 코드가 위에서 아래로, 왼쪽에서 오른쪽으로 선형적으로 실행되지 않는다는 점이 특이합니다. 대신 2 차원 그리드에서 커서처럼 움직입니다. 초기 규격은 80 열 25 행으로 고정되어 있으며, 모서리에서 마치 토러스 같은 구조로 다시 돌아옵니다. 코드와 데이터가 같은 격자에 공존하며 구분되지 않습니다. 실행 중에는 명령어 가리쇠가 우측, 좌측, 위쪽, 아래쪽으로 자유롭게 이동할 수 있습니다. 특히 ? 는 랜덤한 방향으로 이동하고, _| 는 스택의 최상위 값을 확인해 가로 혹은 세로로 방향을 전환합니다. 이는 마치 미로 찾기 게임과 같습니다. 코드가 한 줄씩 나열된 것이 아니라, 평면 지도 위에서 길을 찾아야 하는 방식이라 논리적으로 매우 복잡합니다. 하지만 이 언어는 컴파일러 없이 바로 실행될 수 있어 실험적이었죠.

마지막으로 언급된 Whitespace는 텍스트 파일의 대부분을 차지하는 공백만 사용하는 언어입니다. 영문 알파벳이나 숫자 등 일반적인 문자는 무시하고, 공백, 탭, 줄바꿈 등을 코드 요소로 인식합니다. 이는 일반인이 보기에 흰 종이처럼 완전히 비어 있는 것처럼 보이지만, 실제로는 보이지 않는 공간들이 의미 있는 값을 지닙니다. 프로그래머에게는 매우 고통스럽고 비효율적이지만, 창의적인 코딩 경험을 제공하기도 합니다. 우리는 종종 실용성에 집착하곤 합니다. 하지만 이 언어들은 우리에게 프로그래밍은 단순한 기능이 아니라, 표현의 예술이 될 수 있음을 알려줍니다. 컴퓨터를 다루는 데 있어서, 기존 공식을 따를 필요가 없을 때, 어떻게 하면 재미있고 창의적으로 코드를 작성할 수 있는지 생각해 보는 시간이 될 것입니다.

이러한 이소틱 언어들은 대부분 실용성을 목표로 하지 않았습니다. 그러나 이러한 시도들은 프로그래밍 언어 설계의 경지를 넓혔고, 개발자들이 문제 해결 방식을 다르게 생각하는 영감을 주었습니다. 만약 여러분도 어떤 프로젝트를 진행하다, 단순한 효율성 말고도 코드의 재미와 표현성을 고민해 본 적이 있다면, 이 언어들을 떠올려보시면 좋습니다. 다음에도 IT 의 다양한 소식과 개발자 여러분의 이야기에 관심 부탁드립니다.


이 글은 How-To Geek의 기사를 바탕으로 작성되었습니다.

실용성보다 재미가 우선한, 잊혀진 프로그래밍 언어 3 가지의 매력 탐구