Go와 함께한 14년 - 잘한 것, 못한 것✍️ (1)

Rob Pike님의 GopherConAU 2023 세션 트랜스크립트를 의역/요약한 글입니다.


---

오늘 (2023년 11월 10일)은 Go를 오픈 소스 프로젝트로 공개한 뒤 정확히 14년이 지난 날입니다. 이번 기회에 14년 동안 얻은 교훈을 몇 가지 공유하려고 합니다. 우선 들어가기에 앞서 오늘 발표 할 내용은 지극히 저의 주관적인 생각이고 Go를 개발하는 팀과 커뮤니티랑은 연관이 없습니다.


또한, 많은 분들의 기대와는 달리 Go의 기술적인 이야기가 주가 되진 않을겁니다. 물론, 몇 가지 예시를 들 수는 있겠지만 이 발표는 좀 다른 관점으로 지난 14년을 돌아볼 계획입니다.

우린 애초에 새로운 개발 언어를 만들어낼 생각은 없었습니다. 단지 좀 더 나은 개발 환경, 개발 방식을 구축하고 싶은 욕구가 있었습니다. Go는 단순히 그 이상을 실현 시켜줄 하나의 도구였을 뿐입니다.


Gopher

시작부터 Gopher라는 마스코트를 생성한 것은 잘한 일이었습니다. Go의 이미지를 구축하고 커뮤니티를 대표하는 아이콘이 되었으며 전체적인 분위기와 톤을 잡아주는 역할을 아주 잘 수행해냈습니다. 잘 못한 점은, 이 마스코트의 라이센스를 풀어버린 것입니다. 물론, 라이센스를 풀어버린 건 다양한 버전의 Gopher가 탄생했고 환상적이었지만 몇몇 사람들은 표절에 시달려야 했습니다.


좀 더 기술적인 걸 논해볼까요?


객관적으로 잘한 것


1) Specification (표준)

표준을 정함으로써 컴파일러의 행위를 고정 시켰고, 여러 컴파일러들이 공존할 수 있도록 함

2) Multiple Implementations (다양한 구현 방법)

잘 정의된 표준으로 복수의 컴파일러 지원. 복수의 컴파일러 지원은 다양한 환경에서 Go가 좀 더 쉽게 구동되도록 해줌. 또한, 복수의 컴파일러가 표준을 좀 더 발전시키는데 도움이 됨

3) Portability (이식성)

cross-compilation을 쉽게 만들었음. 개발자들은 아무 플랫폼에서 개발할 수 있었고 배포도 아무 플랫폼으로 가능함

4) Compatibility (호환성)

Go는 버전 1이 출시되었을 때 호환성을 고려했음. 새로운 버전의 Go가 발표되어도 Go 버전 1의 코드가 망가지는 일은 없음

5) Library

비록 그럴 의도는 없었지만, 서버를 구축하는데 필요했던 라이브러리가 표준으로 자리 잡은 것. 표준 라이브러리가 있으니 커뮤니티 전체가 불필요한 라이브러리를 만들어내지 않았고 다 같은 맥락을 공유하는데 도움이 되었음

6) Tools

처음부터 Go 언어가 쉽게 파싱되도록 고려했음. testing, coverage, code writing 등 여러 툴을 제공한 것

7) Gofmt

Gofmt도 툴의 일부지만 따로 명시하는 이유는, Go 뿐만 아니라 프로그래밍 전체에 큰 영향을 주었기 때문임. Robert가 Gofmt를 만들기 전까지는 자동화된 코드 포매터는 사치에 가까웠음. 하지만, 이제는 대부분의 언어에 표준 코드 포매터가 지원됨. 더 이상 스페이스와 들여쓰기로 싸우지 않아도 됨


잘한 것 이정도인 것 같고, 이제 좀 논란의 여지가 있는 항목들을 살펴볼까요?

(TBC)


---


구글에서 개발한 Go 언어가 세상에 공개된 지 벌써 14년이나 지났군요. 개인적으로 Go 언어를 아주 잠깐 써봤는데 그 경험이 나쁘지 않았던 기억이 있습니다.


(발표 분량이 길어서 2개로 나눠서 올릴 계획입니다)


원글: https://commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html

What We Got Right, What We Got Wrong

Commandcenter

What We Got Right, What We Got Wrong

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 1월 7일 오후 4:13

댓글 0

    함께 읽은 게시물

    한때 천만원에 거래되었던 Manus, Bedrock 무료 오픈소스로 공개

    ... 더 보기

    LinkedIn

    lnkd.in

    LinkedIn

    간밤에 또 빅 AI 업데이트가 있었군요. Claude 4 Opus, Sonnet 패밀리가 발표되었습니다.


    성능이나 다양한 능력이 향상되었고, 트렌드에 맞게(?) 소프트웨어 개발 성능이 또 크게 올랐습니다.


    ... 더 보기

    조회 1,857


    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    www.youtube.com

    달레의 코딩 테스트