컴퓨터가 가장 잘하는 일은 뭘까? 네, 셈이야. 그런데 컴퓨터는 지금까지 두 갈래로만 세 왔어 — "예" 또는 "아니오", 0 또는 1처럼.
잠깐, 생각해 보자. 엄마가 물었어. "아이스크림 먹고 싶니?" 넌 대답할 수 있지:
그런데 한 가지 더 있잖아:
두 갈래가 아닌 세 갈래야. 컴퓨터가 이 세 번째 갈래를 몰랐어. 한선씨는 여기서 시작해.
비트(bit)는 0과 1 두 개의 동전이라고 생각해 봐. 그럼 트릿(trit)은? 양팔저울 위에 추를 놓는 거야.
한 개의 트릿이 음수, 0, 양수를 모두 품고 있어. 신기하지? 부호를 따로 그릴 필요가 없어.
이 세 가지는 눈에 보이는 세계에 각각 속해 있어. 티와 타는 "저울의 한쪽이 내려간 상태" — 눈에 띄지? 그런데 옴은 다르다. 저울이 딱 수평인 "명령하는 상태", 마치 우주의 중심처럼 어디로도 기울지 않은 상태야. 이걸 가시선(눈에 보이는 선)이라고 생각해 봐.
그런데 사실 눈에 보이는 세계 바깥에 또 다른 영역이 있어. 그걸 음(U, -0)이라고 하는데, 블랙홀처럼 "어디로 갈지, 얼마나 될지 아무도 모르는" 상태야. 티나 타처럼 명확하지 않은 영역. 비가시선(눈에 안 띄는 선) 너머의 세계지. 한선씨 코드에서는 종종 음을 띄어쓰기(구분자)로 쓰는데, 그건 컴퓨터 칩에 맞게 디자인한 도구일 뿐이야. 음의 진짜 의미는 "알 수 없는, 미지의 영역"이야.
레고 블록을 3×3×3으로 쌓으면 큐브가 되지? 27개 조각이 필요해. 한선씨에서도 마찬가지야.
트릿 27개가 모이면 큐브가 된다. 27 = 3 × 3 × 3. 이 큐브 하나가 한선씨의 기본 단위야. 한 개의 큐브는 한 개의 낱말처럼 일 한다. 큐브가 모여 문장이 되고, 문장이 모여 프로그램이 된다.
한선씨는 종이 위의 꿈이 아니야. crownyc(크라우니씨)라는 엔진이 있어. 이 엔진은 867개의 명령어를 가지고 있고, 27트릿 큐브를 진짜로 읽고 실행한다.
지금 크라우니가 운영하는 서비스들 중에, 71개가 이 한선씨 엔진으로 돌아가고 있어. 학교, 금융, 게임, 설계... 모두.
두 갈래 생각에선 "모른다"가 없어. 0 아니면 1. 참 아니면 거짓.
한선씨는 다르다. 모름을 정직하게 다뤄. "네"(티), "아니오"(타), 그리고 "아직 몰라"(옴) 셋을 모두 셈에 넣는다. 코드에 이런 단어가 있어:
모르면 → 몰라? 그럼 이 길로 가.
신호등 같아. 빨강(타, 아니오), 파랑(티, 네), 노랑(옴, 명령·기다려). 세 개 다 필요하다.
한선씨도 한계가 있었어. 처음엔 약간 약한 곳들이 있었거든. 예를 들어:
그런데 한 가지 알아 둬. 한계는 멈춤이 아니라 시작점이야.
테슬라의 자동차 엔지니어들이 부동소수점 없이 정수로만 계산하는 방법을 썼거든. 돈을 1000배로 키워서 셈한 다음(1.5는 1500으로), 나눗셈·제곱근·사인·코사인까지 정수로만 펼쳐서 계산하는 거야. 우리도 그 길을 따라 '고정소수점.한선'이라는 라이브러리를 만들었어. 지금 소수 3자리까지 정확하게(오차 0.001 이하) 계산할 수 있어.
한계는 정말 한계였던 게 아니라, 우리가 아직 모르던 길일 뿐이었어. 이제 넘어가고 있어.
컴퓨터는 0과 1로 충분하다고 생각했어. 그런데 세상은 그렇게 단순하지 않아. "예" 또는 "아니오"가 아닌 경우가 있다. 답을 모를 수도 있고, 생각할 시간이 필요할 때도 있지.
한선씨는 이 세 번째 갈래를 언어의 바닥부터 깔았어. 아니, 사실 네 갈래야:
트릿이 모여 큐브가 되고, 큐브가 867개 명령어를 실행하고, 그 안에 "모름"도 살고 있다. 부동소수점도 이제 품을 수 있게 되었고.
이게 네 갈래의 셈이야.
첫 번째 책은 선물이에요. 가입하면 100맘을 드리니까, 두 번째 책부터 자유롭게 읽을 수 있어요. 친구를 추천하면 50맘도 생겨요.