Ping 07/02/2023 .01 : C++, D, Zig의 이름에 대한 추측

Posted on Feb 7, 2023

문득 떠오른 생각이라서, 그냥 추측.

  1. C : 로마숫자(roman numeral) 으로 100.

    1. 처음부터 의도한 숫자가 100이 아니었을거란건 나도 알거 같아. BCPL이나 그런 역사에 대해 나도 조금은 아니까.
    2. 그런데 그 이후에 따르는 언어들이 그런 패턴을 만든거 같아서 재미로 쓰는 글.
  2. C++ : 위의 로마숫자이란 생각과 C언어의 x++ 연산 으로 생각해보면,

    1. 즉시 평가할 때에는 C == 100, 그냥 C와 같아 보임.
    2. 그런데 저장된 값은 +1, == 101.
    3. …어쨌든 그냥 볼 때엔, 씨언어와 거의 같아 보이지만, 그래도 좀 더 성장했다고. 그리고 겸손하게 오직 +1.
    4. (그냥 겸손하다고 될 문제인가 싶다… C++ 좋아하지만 ㅎㅎ)
  3. D : C에서 다음 단계으로 발전했으니, 이번엔 다섯배, 역시 로마숫자, 500.

    1. 음, 막 가비지컬렉터 붙어 있고, 처음 나올 당시 (내 기억엔 2002년 전후?) 기준으로나 지금이나 정말 많은 기능을 지원했으니까.
    2. 요즘에도 Go, Rust 등과 비교되기도 하는 언어이긴 하니까.
  4. Zig : 갑자기 분위기 German

    1. (붙여서 쓰면) "x10" 의 의미/.
    2. (Zig은) C언어나 C++와 얼마든지 혼용해서 사용하는걸 고려해서 만들었으니까,
    3. 1,000 이거나 1,010. (각각 C언어, C++일 때)
    4. 아님, 혼자서 쓰면, (아마도) 20+ 이상의 큰 수, 그것도 아니면 정말 정말 많은 큰 수.
    5. 거기에, 지금까진 로마숫자였는데, 게르만족의 침략처럼…
    6. 갑자기 독일어… 침략하듯이 C/C++언어 생태계에 뛰어든거 같…

그냥 재미로 추측해봄.

실제로 Zig은 그 자체가 C/C++ 컴파일러이면서, opt-in 방식으로 조금씩 부분부분씩 Zig언어으로 변경해 나가면서 프로젝트에 적용도 할 수 있고, 아예 새로운 애플리케이션이나 라이브러리를 만들면서 기존 C/C++ 코드/라이브러리와 문제 없이 연동되기 정말 좋게 고려되어 있어서.

그리고 그러면서 표현력의 density이 엄청나게 좋도록 설계된 언어와 라이브러리임에도, 그렇게 설계할 경우에 코드의 명확함이 많이 떨어지고 복잡해지는걸 방지하려고 엄청나게 명확하게 만들려고 노력한 좋은 언어.

…뭐 그냥 그렇다고, 끝으로:

이건 March…