더북(TheBook)

 

들어가며

 

 

"세상은 C++(그리고 C 부분 집합)를 기반으로 한다."

- 허브 서터(Herb Sutter)

구글, 아마존, 페이스북은 광범위한 인프라를 C++로 구축한다. 또한, 기반이 되는 기술의 상당 부분을 C++로 구현한다. 통신 분야에서는 C++ 소프트웨어가 거의 모든 유선 전화와 휴대 전화 연결을 주도한다. 가장 중요한 점은 독일의 모든 주요 전송 노드가 C++로 처리된다는 점이다. 즉, 필자의 가족이 누리는 평화가 무조건적으로 C++ 소프트웨어에 의존한다는 것을 의미한다.

Visual Studio, Clang, GNU와 Intel 컴파일러의 새로운 부분 등 가장 널리 사용되는 컴파일러들을 C++로 구현했기 때문에 다른 프로그래밍 언어로 작성된 소프트웨어조차도 C++에 의존한다. (Office 패키지는 물론) 윈도에서 실행되는, C++로 구현된 소프트웨어의 경우에는 더욱 그렇다. C++ 언어는 어디에나 있다. 심지어 휴대 전화와 자동차에도 C++로 구동되는 구성 요소가 포함되어 있다. C++ 언어를 만든 비야네 스트롭스트룹은 C++ 애플리케이션 목록을 웹 페이지로 만들었다.

과학과 공학 분야에서도 많은 고품질 소프트웨어 패키지가 C++로 만들어진다. 특히 C++ 언어의 강점은 프로젝트의 규모가 커지고 자료 구조가 다소 복잡할 때 나타난다. Abaqus, deal. II, FEniCS, OpenFOAM, 선도적인 CAD 소프트웨어 CATIA 등 과학과 공학 분야의 많은 시뮬레이션 소프트웨어 프로그램이 오늘날 C++로 만들어지는 것은 너무나도 당연하다. (물론 모든 최신 언어 기능과 라이브러리를 항상 사용할 수 있는 건 아니지만) 보다 강력한 프로세서와 향상된 컴파일러 덕분에 C++를 사용해 임베디드 시스템을 점점 더 많이 만들고 있다. 결정적으로 C 대신 C++로 구현될 프로젝트가 얼마나 많은지 알지 못한다. 예를 들어 잘 알려진 과학 라이브러리인 PETSc의 공동 제작자이면서 저자의 좋은 친구 Matt Knepley는 재작성이 가능하다면 라이브러리를 오늘 당장 C++로 프로그래밍할 것이라고 인정했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.