Go 언어는?
안정적고 강력한 소프트웨어를 쉽게 만들 수 있는 오픈소스 프로그래밍 언어
“Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.”
- 2007년에 Google은 Go의 디자인을 시작했고, 2009년에 공식적으로 공개함
- 초기 디자인부터 멀티코어, 네트워킹, 그리고 대형시스템에서 효율적으로 실행되도록 설계됨
- 정적 타이핑, 정적 런타임, 컴파일 언어임
- 가독성이 높고 사용하기 편함
- 고성능 네트워킹 및 멀티 프로세싱 처리에 적합함
- C언어와 Syntax가 유사함
- Garbage collection 기능이 있음,
Go의 아버지들
로버트 그리즈머 (Robert Griesemer)
- Java hotspot compiler(JVM) 개발함
- Chrome Javascript v8 엔진을 개발함
롭 파이크 (Rob Pike)
- Plan 9 OS 개발함
- UTF-8 을 아래 켄 톰슨과 같이 개발함
- “Do not communicate by sharing memory; share memory by communicating.”
켄 톰슨 (Ken Thompson)
- Unix 개발함
- C언어 를 개발함
UTF-8 을
Go 언어란?
Google이 개발한 프로그래밍 언어
- Go 또는 Golang 이라고 불림
- 2007년에 세 사람이 최초 설계 시작
- 2009년 12
20060102 15:04:05
Go was publicly announced in November 2009,[29] and version 1.0 was released in March 2012
- 왜 디자인 했나
멀티코어/네트워크/대량코드 환경에서 프로그래밍 생산성을 높이기 위해
- 정적 타이핑 (Static typing and run-time efficiency)
- 높은 가독성 / 가용성 (Readability and usability)
고성능 네트워킹 / 멀티 프로세싱 (High-performance networking and multiprocessing)
배경
2009년 11월에 구글에서 처음 발표된 후 2012년 3월에 정식 발표된 프로그래밍 언어.
The Go programming language is an open source project to make programmers more productive.
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write
programs that get the most out of multicore and networked machines, while its novel type system
enables flexible and modular program construction. Go compiles quickly to machine code yet has
the convenience of garbage collection and the power of run-time reflection. It's a fast,
statically typed, compiled language that feels like a dynamically typed, interpreted language.
philosophy
- Do not communicate by sharing memory; instead, share memory by communicating.
- errors are values
- Multiple results
- Embedded HTTP client and server
- defer defers Goroutine & Chan
benchmark & test
“static” binaries
“http” package
개발 언어, 그리고 선택
선택은 개발자의 몫? 선택은 상사의 몫? 생산성 = 경쟁력
Rob Pike and Ken Thompson:
- UNIX, Plan9, UTF-8, Golang.