Zig

JS 문법을 사용했다면 인터페이스 상으로 익숙하게 접할 수 있는 언어. 보기에는 JS같지만 Rust의 향기가 많이 난다.

Rust의 경우 새로 도입되는 개념들이나, 독자적인 기능들이 많아 접근이 쉽지 않았는데, 오히려 그런 부분에서는 C와 유사한 부분들이 많이 보여서 좋았다.

그 안에서도 메모리를 관리나 코드 관리 차원에서 명시성을 주요하게 가져간다는 점이 Go와 닮은 듯하다.

C와 거의 같다고 해도 될 정도로 호환이 잘 되며, 라이브러리도 내가 원하는 헤더파일을 가져와서 그 기능을 어렵지 않게 붙여 쓸 수 있도록 되어 있다. 내맘대로 만들어먹는 libc 느낌.

그게 아니더라도 Built-in std 라이브러리에 기본 posix 계열의 기능들이 내장되어있어서 직접 구현하는 것도 큰 무리는 없었다.

다만, 버전 별로 인터페이스가 계속 차이가 나는 듯 하다. 아직 업데이트가 활발한 형태여서 그런 것일지도. 당장 0.13.0 버전은 구글링한 레퍼런스와 맞지 않는 부분이 많았기에, 내가 직접 std 라이브러리 여기저기를 뒤져보면서 필요한 인터페이스나 메서드들을 찾아 쓰는게 필요했다.

조금 더 내장 기능들을 건드려 보고 나면, 간단한 형태의 미들웨어 등등을 만들어볼까 한다.

https://faultnote.github.io/posts/learning-zig/

위 블로그를 작성해주신 분께 감사 인사를 드립니다. 해당 블로그에서 기본 컨셉과 문법을 빠르게 훑고 지나갈 수 있다.

아직 신생의 느낌이 많이 나지만, 너무 무지막지하게 어렵지 않아서 다양한 곳에 써먹어보려고 한다.