핵심 요약
- 한 개발자가 6개월간 프로그래밍 언어 'V'를 사용해본 뒤, 4년째 방치된 공식 문서와 미흡한 지원 현황을 폭로했습니다.
- 수동 메모리 관리 시 표준 라이브러리와 웹 프레임워크 전반에서 메모리 누수가 발생해 실제 개발에 쓰기 어려운 수준이었습니다.
- 메모리의 90~100%를 자동 해제해 준다던 'autofree' 기능 역시 아주 단순한 코드에서조차 누수를 일으키며 과대광고임이 확인되었습니다.
요약 새로운 프로그래밍 언어로 기대를 모았던 'V 언어(Vlang)'를 한 개발자가 6개월간 직접 사용해본 뒤 남긴 솔직한 기술 리뷰가 개발자 커뮤니티에서 화제가 되고 있습니다. 화려한 약속과 미려한 문법을 내세웠지만, 실제 작동 방식은 공식 문서의 주장과 상당한 괴리가 있다는 지적입니다.
우선 공식 문서부터 부실함이 드러났습니다. V 언어의 공식 문서는 하나의 거대한 마크다운 파일로 이뤄져 있는데, i128, u128 같은 기본 타입 옆에 붙은 '곧 지원(soon)'이라는 설명은 무려 4년 넘게 방치되어 있었습니다. int 타입 크기 역시 64비트 시스템에서 변경되었음에도 문서가 제때 갱신되지 않았고, 제네릭(Generic) 같은 핵심 기능도 제대로 된 설명 없이 코드 예제 몇 개만 덩그러니 놓여 있는 등 문서 유지보수 인력이 턱없이 부족한 실정입니다.
더 심각한 문제는 V 언어가 자랑하던 메모리 관리 기능입니다. 수동 메모리 관리 모드를 활성화할 경우, 표준 라이브러리 내부 함수들이 할당한 메모리를 해제해주지 않아 곳곳에서 메모리 누수가 발생합니다. 심지어 공식 내장 웹 프레임워크인 vweb 예제나 간단한 CLI 문자열 보간 기능조차 내부 배열 메모리를 해제하지 않아, 실제 상용 애플리케이션에서는 수동 관리를 사실상 쓸 수 없는 수준이었습니다.
컴파일러가 메모리를 알아서 90~100% 해제해 준다고 홍보했던 'autofree' 모드 역시 과대광고에 가까웠습니다. 문서에서는 파이썬, Go처럼 편하면서도 무거운 GC나 비용이 큰 RC 없이 작동한다고 주장했으나, 커뮤니티에서는 실제 프로그램에서 autofree로 해제된 비율이 0.1%에 불과하고 99.9%는 가비지 컬렉터가 처리했다는 증언이 나왔습니다. 작성자가 직접 극도로 단순한 불리언 배열 코드를 autofree 옵션으로 컴파일해 Valgrind로 검증한 결과에서도 단 2바이트조차 제대로 해제되지 않고 메모리 누수가 발생하는 등, 공식 문서의 설명과는 완전히 다른 현실이 확인되었습니다.
Sponsored · 광고