Borgo 프로그래밍 언어 소개
- Go보다는 표현력이 좋지만 Rust보다는 복잡하지 않은 애플리케이션 작성 언어를 원함
- Go는 단순하고 직관적이지만, 종종 더 많은 타입 안전성을 제공했으면 함
- Rust는 작업하기 좋지만(적어도 단일 스레드 코드의 경우) 너무 광범위하고 복잡하며, 때로는 고통스러움
- Borgo는 Go로 트랜스파일되는 새로운 언어로, 기존 Go 패키지와 완벽하게 호환됨
- Borgo 구문은 세미콜론이 선택사항인 Rust와 유사함
주요 기능
- 대수적 데이터 유형 및 패턴 매칭
- nil 대신 Option 사용
- 여러 반환 값 대신 Result 사용
- ? 연산자를 사용한 오류 처리
로컬에서 실행하기
- Borgo는 Rust로 작성되었으므로 cargo가 필요함
- 현재 폴더의 모든 .brg 파일을 컴파일하려면:
- $ cargo run -- build
- 컴파일러는 .go 파일을 생성하고, 이를 정상적으로 실행할 수 있음
GN⁺의 의견
- Rust는 강력한 언어지만 러닝커브가 가파르고 도입 장벽이 높은 편인데, Borgo는 Rust의 장점을 Go의 생태계에서 활용할 수 있게 해주는 흥미로운 시도로 보임. 다만 아직 초기 단계라 생태계가 부족할 것으로 예상됨
- Option과 Result로 nil과 에러 처리를 개선한 것, ? 연산자로 에러 핸들링을 간편하게 한 부분 등은 Go 개발자들이 종종 불편해하던 부분을 해소해줄 것 같음
- 기존 Go 라이브러리를 그대로 사용할 수 있다는 것은 큰 장점. 하지만 Rust 문법을 차용한만큼 Go 개발자들이 적응하는데 시간이 걸릴 수 있음
- Transpile 방식이다보니 디버깅이나 런타임 퍼포먼스 등에서 네이티브 Go 코드 대비 불리할 가능성이 있음. 큰 규모의 프로덕션 코드에 적용하기에는 아직 이른 감이 있음
- Kotlin이 JVM 생태계에서 점유율을 높여가는 것처럼, Borgo도 Go의 솔루션이 되기 위해서는 코드 품질, 개발 생산성, 러닝커브 등 여러면에서 지속적인 개선이 필요해보임. 계속 발전해나간다면 Go 진영의 매력적인 대안이 될 수 있을 것으로 기대됨