이 책은 구글 Go 개발팀의 일원인 앨런 도노반과 C언어의 대가인 브라이언 커니건이 직접 쓴 책으로, Go의 언어적 특징과 표준 라이브러리를 활용해 깔끔하고 범용적이며 효율적인 프로그램을 개발하는 데 도움을 주고자 한다. 이 책을 통해 언어의 탄생 배경부터 문법, 동시성, 패키지, 테스팅 기법까지 Go의 진면모를 알 수 있을 것이다.
책은 전체 언어와 가장 중요한 패키지들, 넓은 범위의 애플리케이션을 다루는 수백 개의 흥미롭고 실용적인 예제를 Go 코드로 작성해 제공한다. 각 장에는 이해도를 테스트하고 예제의 확장과 대안을 알아보기 위한 연습문제들도 수록되어 있다. 소스코드는 http://gopl.io/에서 자유롭게 다운로드할 수 있으며, go get 명령으로 손쉽게 반입, 빌드, 설치할 수 있다.
뉴욕에 위치한 구글 Go 팀의 일원이다. 캠브리지와 MIT에서 컴퓨터 과학 학위를 취득했으며, 1996년부터 업계에서 개발을 하고 있다. 2005년부터 구글의 인프라 프로젝트에서 근무했으며, 독자적인 빌드 시스템인 Blaze의 공동 설계자다. Go 프로그램의 수많은 정적 분석 라이브러리와 도구를 만들었으며, 그중에는 Oracle, GoDoc -analysis, GoRename 등이 있다.
최근 각광받고 있는 Go 언어는 단순성을 가장 큰 특징으로 하며, 이는 표현성을 중시하는 루비(ruby)나 스칼라(scala) 등의 언어와는 정면으로 배치된다. 이 책은 그러한 단순성에 대한 설계 사상을 보여주며, 상세한 샘플 소스와 설명을 통해 이해와 활용을 돕는다.
Go의 설계 사상은 유닉스의 설계 사상과 매우 유사하며, 작고 간단한 기능을 조합해 복잡한 기능을 구현하도록 되어 있다. 처음 Go를 접하는 개발자는 지나친 단순성과 익숙하지 않은 오류 처리 방식에 불편함을 느낄 수 있지만, 이러한 초기의 불편함은 향후 유지 보수 시에 더 큰 이익으로 되돌아올 것이다.