Carbon, C++의 계승자를 목표로 구글이 새로 만든 프로그래밍 언어를 소개합니다.
Github 에서는 아래와 같이 설명하고 있네요..
Carbon Language: An experimental successor to C++
즉, Carbon Language는 C++의 실험적 후계자라고요...
Carbon 은 비트 및 주소에 대한 저수준 액세스와 함께 LLVM을 사용하여 C++와 일치하는 성능을 가지고 있다고 합니다.
그리고, 상속에서 템플릿에 이르기까지 기존 C++ 코드와 상호 운용가능하다고 하고요..
또한, 기존 C++ 빌드 시스템에서 작동하는 빠르고 확장 가능한 빌드를 지원한다고 하네요.
특히 C++를 사용한 적이 있는 경우 배우기 쉬운 견고한 언어 라고 하고요..
Carbon 버전 간의 간편한 도구 기반 업그레이드가 특징이라고 하네요..
그럼, 카본을 만든 이유가 몰까요?
C++는 대규모의 코드베이스와 투자가 증가하면서 성능이 중요한 소프트웨어를 위한 지배적인 프로그래밍 언어로 남아 있습니다.
그러나 수십 년 동안 축적된 기술 부채로 인해 위에서 설명한 것처럼 개발자의 요구 사항을 개선하고 충족시키는 데 적지 않은 어려움을 겪고 있습니다.
C++를 점진적으로 개선하는 것은 기술적 부채 자체와 진화 과정의 어려움으로 인해 매우 어렵습니다.
이러한 문제를 해결하는 가장 좋은 방법은 C 또는 C++의 유산을 직접 상속하는 것을 피하고 대신 현대적인 제네릭 시스템, 모듈식 코드 구성 및 일관되고 간단한 구문과 같은 견고한 언어 기반으로 시작하는것이라고 말하고 있고요..
그리고, Carbon은 C++를 점진적으로 발전시키려는 시도라기보다는 근본적으로 후속 언어 접근 방식을 가지고 있고요..
기존 C++ 코드베이스 및 개발자를 위한 대규모 채택 및 마이그레이션은 물론 C++와의 상호 운용성을 중심으로 설계되었다고 하네요..
그리고, Carbon 의 특징을 간단하게 정리하자면 아래와 같습니다.
- Java → Kotlin, JavaScript → TypeScript 처럼 기존 에코시스템 호환이 가능한 언어를 목표
→ Rust가 C++을 계승한다고 얘기되지만, C++ 에코시스템을 Rust로 옮기는 것은 어려움 - C++ → Carbon 으로 아주 손쉽게 이관 가능하며, 양방향 호환
- LLVM 을 이용하여 C++ 정도의 성능 제공
- 상속에서 템플릿까지 기존 C++ 코드와 상호 운용
- 기존 C++ 빌드 시스템 그대로 활용 가능
- C++ 개발자들이 쉽게 배울 수 있음
마지막으로, Carbon 언어 목표를 공부해 봤는데요..
깃허브에서는 다음과 같이 말하고 있었습니다.
아래내용을 지원하기 위해 Carbon을 설계하고 있다고요..
1. 성능이 중요한 소프트웨어
2. 소프트웨어와 언어의 진화
3. 읽고, 이해하고, 쓰기 쉬운 코드
4. 실용적인 안전 및 테스트 메커니즘
5. 빠르고 확장 가능한 개발
6. 최신 OS 플랫폼, 하드웨어 아키텍처 및 환경
6. 기존 C++ 코드와의 상호 운용성 및 마이그레이션
즉, 많은 언어가 이러한 목표의 하위 집합을 공유하지만 Carbon을 구별하는 것은 이들의 조합이라고요..
참고로, 아래는 C++ 코드이고요..
아래는 Carbon 소스입니다.
개인적으로 참고해 보시면 좋을 것 같고요....
오늘의 블로그는 여기서 마칠가 합니다.
항상 믿고 봐주셔서 감사합니다.
'좋아하는 것_매직IT > 96.IT 핫이슈' 카테고리의 다른 글
Git-Story : 커밋 히스토리를 애니메이션으로 만들어 설명하기 (0) | 2022.07.25 |
---|---|
Humbleicons - UI용 무료 SVG 아이콘 (humbleicons.com) (0) | 2022.07.25 |
Microsoft, 소셜 네트워킹 앱 Viva Engage 발표 (techcommunity.microsoft.com) (0) | 2022.07.24 |
Relativity Space 와 Impulse Space, 2개의 회사가 화성으로 가는 계획을 발표 (arstechnica.com) (0) | 2022.07.24 |
Flowful - 무료 앰비언트 뮤직 생성기 (flowful.app) (0) | 2022.07.22 |