Go 언어에 클래스(Classes), 예외 처리(Exception Handling), 제네릭(Generics) 등 현대적인 프로그래밍 기능을 더한 새로운 언어 Go++가 깃허브(GitHub)에 공개되었습니다. Go++는 기존 Go 언어의 철학인 간결함과 효율성을 유지하면서도, 개발자들이 더 표현력 있고 구조화된 코드를 작성할 수 있도록 돕는 다양한 문법적 개선 사항을 제공합니다. 이는 Go 언어의 강력한 성능과 생태계를 활용하면서도, 다른 객체 지향 언어에서 익숙한 기능들을 사용할 수 있게 해준다는 점에서 의미가 큽니다.
Go++는 암시적 `this`를 기반으로 필드와 메서드를 묶는 클래스, 여러 기본 클래스의 동작을 조합하는 다중 상속(Multiple Inheritance), 인자 수나 타입에 따라 함수를 재사용하는 오버로딩(Overloading) 등의 객체 지향 기능을 지원합니다. 또한, `throw`, `try`, `catch`, `finally` 구문을 통한 예외 처리와 `?.`를 이용한 안전한 널(null) 접근, `??`를 활용한 지연 오류 대체(Lazy Error Fallback) 등 코드 안정성과 가독성을 높이는 기능들도 포함합니다. 이 외에도 제네릭 클래스 및 함수, 람다(Lambdas), 확장 메서드(Extension Methods), 문자열 보간(String Interpolation) 등 개발 편의성을 높이는 다채로운 기능들이 추가되었습니다. Go++는 Go 1.26 이상을 지원하며, `gpp` CLI 도구를 통해 프로젝트 초기화, 빌드, 실행, 테스트 등 모든 과정을 관리할 수 있습니다.
Go++의 등장은 Go 언어 개발자들에게 더 넓은 선택지를 제공하며, 특히 대규모 애플리케이션 개발 시 코드 구조화와 재사용성 측면에서 큰 이점을 가져다줄 것으로 보입니다. 기존 Go 패키지 및 빌드 툴체인과의 완벽한 호환성을 유지하면서 Go와 Go++ 코드를 한 프로젝트 내에서 혼합하여 사용할 수 있다는 점은 기존 Go 생태계에 대한 진입 장벽을 낮추고 점진적인 도입을 가능하게 합니다. 이는 Go 언어의 강점인 동시성(Concurrency)과 성능을 유지하면서도, 개발자들이 선호하는 현대적 프로그래밍 패러다임을 접목하여 생산성을 극대화할 수 있는 새로운 가능성을 열어줄 것입니다. 장기적으로는 Go 언어의 활용 범위를 더욱 확장하고, 더 많은 개발자를 유입시키는 계기가 될 수도 있습니다.