
고 1.18 베타 버전은 고 언어의 첫 번째 테스트 버전으로, 타입 매개변수를 사용하는 제네릭 코드를 지원한다. 제네릭 프로그래밍은 함수 및 데이터 구조를 제네릭 형태로 표현할 수 있는 향상된 기능이다. 코드를 공유하고 프로그램을 더 쉽게 만들 수 있는 빌딩 블록을 제공한다.
고 개발팀은 중요한 기능이 추가됐을 때 새로운 버그가 발견되는 것은 흔한 일이라고 경고했다. 제네릭 기능도 예외는 아니다. 따라서 개발자는 고 베타 버전에서 제네릭 기능을 사용할 때 적절한 주의를 기울여야 한다. 특정 종류의 재귀적 제네릭 타입은 추후 지원할 예정이다.
개발팀은 일부 사용자들이 베타 버전에 매우 만족했다고 밝혔다. 지난 2019년 7월 개발팀의 블로그 포스팅에 따르면, 고는 제네릭 프로그래밍의 한 형태인 인터페이스 타입을 사용하고 있었지만 당시에는 고 개발자들이 원하는 기능을 완전히 제공하지 못했다. 제네릭 기능을 선호하는 개발자들은 예컨대 슬라이스 요소의 유형을 신경 쓰지 않고 리버스 같은 기능을 사용하고자 했다.
고 1.18 베타 버전은 홈페이지에서 다운로드할 수 있으며, 아직은 ‘불안정’ 단계다. 고 1.18 정식 버전은 오는 2022년 2월 출시될 예정이다. 제네릭 사용 지침서도 공개됐다. 릴리즈 노트에 따르면, 고 1.18에는 다음과 같은 기능도 추가된다.
- 무작위로 데이터를 입력해 프로그램 충돌이나 에러를 검사하는 퍼즈 테스팅(Fuzz Testing) 기능
- 개발자가 여러 가지 고 모듈을 동시에 사용할 수 있는 고 워크스페이스 모드. 대규모 프로젝트 개발 시 중요한 기능
- 컴파일러 플래그 같은 빌드 세부사항 기록하도록 go version -m 명령 기능 확장
- GOAMD64 환경 변수에서 4가지 AMD64 아키텍처 버전 가운데 하나를 선택할 수 있는 기능
- 윈도우/ARM 및 윈도우/ARM64 포트 4가지에 비동기식 선취 지원 기능 추가. 장시간 차단되는 윈32 함수 호출 시 발생하는 버그 해결될 것으로 예상
- GC(Garbage Collector) 실행 빈도 결정 시 논힙(non-heap) 작업 소스를 포함하여 보다 정확한 GC 오버헤드 예측 가능
한편 고 언어는 강력한 동시성을 지원하는 단순하고 배우기 쉬운 프로그래밍 언어로 설계됐으며, 도커 컨테이너 시스템 개발에 사용된 것으로 잘 알려져 있다. 고 1.17 버전은 지난 8월 출시됐다. editor@itworld.co.kr