내가 사용하고 있는 컴퓨터 언어에는 C/C++, Java, Python이 예전에 사용하던 Perl등도 포함할 수 있겠지만 너무 사용하지 않고 있다. 최근에 관심이 가는 언어는 Go Lang이다. Google의 개발자인 로버트 그리즈머, 롭 파이크, 켄 톰슨 세사람이 개발한 언어이다. [1]에서 설명하는 특징은 다음과 같다.

 

  • 정적 타입, 강 타입 ...
  • 컴파일 언어 ...
  • 가비지 컬렉션 ...
  • 병행성(Concurrency) ...
  • 멀티코어 환경 지원 ...
  • 모듈화 및 패키지 시스템npm, pip, gem 이나 Maven과 같은 모듈 의존성에 따른 패키지 관리를 언어 차원에서 지원. ...
  • 빠른 컴파일 속도

이 언어를 개발한 이유가 C/C++이 사용하기 어려워서 개발하기 시작했다고 한다. 그래서, 서버, 브라우져, 데이터베이스등 큰 응용을 개발하는데 유용하다고 한다. 하지만, 시스템 레벨 프로그래밍에는 적절하지 않다고 한다. 

 

대략적인 문법이나, 특징은 책에서도 볼 수 있지만 인터넷에 자료가 많고 특히 [2]에서 보게 되었다. 

 

내가 이 언어를 보게 된 가장 큰 이유는 Android의 Build Systemdp Ninja[3]로 바뀌고 Blueprint(.bp)[4]로 변경되기 시작하고 이다. 이 bp파일들이 Go lang으로 쓰여 지고 있다.

 

참고 문헌

[1] GO 언어란? - 주요 특징,  https://goodjoon.tistory.com/241

[2] A Tour of Go, https://tour.golang.org/welcome/1

[3] Ninja, a small build system, https://ninja-build.org/

[4] Soong 빌드 시스템, https://source.android.com/setup/build

+ Recent posts