ITnews

구글이 Carbon이라는 또 다른 프로그래밍 언어를 내놓았다.(feat.C++)

DigIT_JHB 2022. 7. 25. 10:38

Carbon Language

Google Carbon Language: An experimental successor to C++

 

 Go와 Dart 등의 언어를 만든 구글이 20일 Carbon 언어를 새롭게 발표했다. 구글의 오픈소스 엔지니어 Chandler Carruth가 CppNorth2022 개발자 컨퍼런스에서  'C++: What Comes Next?'라는 주제로 Carbon을 소개했다.

 

C++를 왜 바꾸려하나

 C++는 오랜 시간동안 넓은 기반과 커뮤니티를 갖고 있다. 따라서 소프트웨어의 성능과 관련해 중요한 프로그래밍 언어이다. 그런데 문제가 있다. 수십 년에 걸친 기술 발전을 감당하지 못해 개발자의 요구 사항을 충족시키지 못하는 상태이다. 따라서 Chandler는 현대 제네릭 시스템, 모듈러 코드 조직, 일관되고 단순한 구문과 같은 견고한 언어 기반에서 새롭게 언어를 만들었다고 한다.

 

Carbon은 그래서 뭐가 다른데?

Chandler는 Carbon을 C++에서 좀 더 발전시킨 언어가 아니라 C++의 장점만 가진 후속작으로서 개발하려고 한다. 기본적으로 기존 C++ 개발자가 큰 무리 없이 넘어올 수 있어야 할 것이고 C++와 동일한 수준의 성능을 지원하며, 상속에서 템플릿에 이르기까지 기존 C++ 코드와 상호 운용할 수 있어야 한다. 읽고 쓰고 이해하기 쉬운 코드를 표방하며, 빠르고 확장 가능한 개발환경과 최신 OS 플랫폼, 하드웨어 아키텍처를 지원한다. 또한 C/C++의 메모리 접근 방식으로 인한 고질적인 보안 취약점인 메모리 버그 등을 해결하고, 오픈소스 개발방식에 적합한 구조를 제공한다고 한다.

 

떠오르는 샛별 Rust도 있는데 왜?

C++의 대체제라고 최근에 불리는 Rust는 문법 등을 새롭게 배워서 적용해야하므로 쉽게 넘어오기 불편하다. 또한 기존에 쓰여진 C++ 코드를 한번에 바꿀 수 없기 때문에 대규모 프로젝트의 경우에는 시간의 한계가 있다. 특히 구글의 경우 거의 대부분의 서버는 C++ 로 개발이 된다고 알려져있으며, 수 십만개의 C++ 파일들이 있을 것이다. (30년동안 C++로 개발할 때마다 메모리 관리랑 보안관리 문제들때문에 화가 났나보다. 그래서 이 참에 자기들이 바꿔보자한건가?) 따라서 기존 C++ 생태계를 기반으로 새로운 언어를 만들면서 빠르고 쉽게 점유율을 높이려고 한 것 같다. 게다가 JS를 Typescript로 이주시키려는 마이크소프트의 사를 보고 구글도 '이거다!' 싶었나보다.

 

그래서 얼마나 다른데?

1번이 C++일 때고 2번이 Carbon, 3번이 C++와 Carbon일 때이다.

 

아직 코딩에 관해 식견이 넓은 편이 아닌 왕초보지만, 딱 보자마자 드는 생각은 읽고 쓰고 이해하기 쉽게하기 위해 뭔가 파이썬 한 스푼, 코틀린도 반 스푼 등등 C++에 넣은 느낌이다. 게다가 아직 버전이 0.1버전이다 보니 완전히 개발이 안되서 다 보여주지는 못하는 상황이다. 그렇다보니 아직 완전히 판단은 안 되지만 인터넷에서 개발자들 사이에 생각보다 나쁘지 않은 반응을 보여주고 있는 것 같다.

 

뒤에서 서포트하는 구글

 앞에서도 말했다시피 이 프로젝트는 구글이 발표한 것이다. 개발자 입장에서 거대 기업이 전폭적으로 지지하고 밀어주는 언어(Dart나 Go 처럼)는 당연히 쓸 수 밖에 없지 않을까 싶다. 이 프로젝트 또한 확실히 그렇게 된다는 보장은 없지만 C++를 생각해 본다면 아무리 Rust라는 신흥강자가 나타났어도 C++의 기반이 워낙 넓기 때문에 고려하지 않을 수가 없을 것이다. 따라서 추후에 1.0버전이 공개되고 개발자들의 관심도가 올라가면서 커뮤니티가 확실하게 형성되면 당연히 더 유명해지지 않겠는가. 앞으로 어떻게 될지 궁금하다.

 

그런데 이런걸 배우기 전에 당연히 알아야할게 있다. 일단 C++부터 마스터하고 오자!


참고:
https://youtu.be/omrY53kbVoA 
https://github.com/carbon-language/carbon-lang 

 

GitHub - carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (

Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README) - GitHub - carbon-language/carbon-lang: Carbon Langu...

github.com

 

반응형