현재 저는 IT 학생이며 오늘날 C ++에서 여전히 중요한 것이 무엇인지 궁금합니다. 어떤 용도로 사용됩니까? 대학에서 기본 C ++ 과정을 수료했지만 지식을 어디에서 사용할 수 있고 C ++을 배우는 방향을 상상할 수 없습니다.
다시 말해 성공적인 C ++ 프로그래머가되기 위해 무엇을 배워야합니까?
현재 C ++이 어떤 영역에서 유용 할 수 있는지 명확하게 알지 못하기 때문에 Java를 배우고 있지만 Java 프로그래머로 어떤 종류의 작업을 수행 할 것인지 분명히 알고 있습니다. 그러나 여전히 C ++이 죽지 않기를 바랍니다.
답변
C ++의 킬러 기능은 범위 제한 리소스 관리 , SBRM (일반적으로 ” RAII “라고 함)입니다. 이 개념을 기반으로 하는 유일한 산업용 프로그래밍 언어입니다. C ++에서 모든 객체의 수명은 정확히 알려져 있으며 (잘 작성된) C ++ 프로그램은 리소스가 완전히 결정적인 방식으로 수집 및 해제되도록 보장합니다. 이에 비해 가비지 수집 또는 관리 언어는 그러한 보증을 제공하지 않습니다. 실제로 해당 언어의 객체는 수명이 다한 후에도 지속될 수 있습니다.
이것이 C ++이 금융, 비디오 게임, 고성능 임베디드 및 실시간 시스템, 운송, 제조 및 결정론과 정밀도가 중요한 기타 산업에서 사용되는 이유입니다. 대안이 없습니다.
물론, 이것보다 많은 작업에 사용되었으며 이러한 작업은 C # 및 Python 및 기타 더 적합한 언어로 손실되지만 핵심 틈새에는 영향을 미치지 않습니다.
답변
C와 C ++에는 몇 가지 시장이 있습니다 (제한적인 이해는 있지만)
- 기존 코드 C와 C ++에는 가장 큰 기존 코드베이스가 있습니다. 이 크기의 코드는 단순히 “다음으로 새로운 언어”가 등장했기 때문에 그냥 버릴 수 없습니다. C 바인딩은 대부분의 플랫폼에서 언어 간 상호 작용의 표준과 거의 비슷하므로 C 또는 C ++에서 랩퍼 라이브러리를 작성하는 것이 유용합니다.
- 고성능 애플리케이션 (예 : 고주파 금융). C 및 C ++는 여전히 대부분의 다른 프로그래밍 언어보다 전반적인 성능을 향상시킵니다. C ++에서 가장 중요한 것은 템플릿과 같은 컴파일러 전용 항목으로 추상화를 작성하는 경우가 많으며 런타임에서 컴파일 시간으로 계산을 이동하여 전반적인 응용 프로그램을 더 빠르게 만듭니다.
- (2와 유사) 낮은 대기 시간 응용 프로그램. 예를 들어 CLR 또는 JVM에서 실행되는 언어는 응용 프로그램에 따라 C ++만큼 빠를 수 있지만 프로그램을 실행하려면 먼저 CLR 또는 JVM을 메모리에로드해야합니다. 하드 시작 요구 사항이있는 경우 중요합니다. 주석 편집 : 그 문제에 대한 모든 설명의 하드 대기 시간 요구 사항은 여기에주의하십시오. 가비지 수집을 실행하는 것이 결정적인 프로세스가 아니기 때문에 가상 컴퓨터에서 실행되는 언어는 어려운 시간 제한을 거의 제공하지 않습니다.
- 임베디드 시스템. 일부 임베디드 시스템에는 JVM (Google의 Android (실제로 JVM은 아니지만 가깝습니다), RIM의 Blackberry) 또는 CLR (Windows Phone)과 같이 실행할 하드웨어가 있지만 대부분의 임베디드 시스템에는 전원이 공급되지 않습니다. C 또는 C ++에 필요한 것보다 더 많은 런타임 지원이 필요한 언어를 실행하십시오 (런타임 지원이 전혀 없음).
- 배포가 제한된 응용 프로그램. 전체 프로그램이 수백 KB에 불과한 경우 JVM 또는 CLR 설치가 필요한 경우가 있습니다. (예를 들어 내가 작업하는 대부분의 프로그램 은
.EXE
어떤 종류의 설치 프로그램이나 그와 유사한 것없이 단일 파일 로 배포 해야합니다 .이를위한 대안은 없습니다)
답변
C ++은 여전히 매우 유용하며 결코 죽지 않았습니다. 다른 프로그래밍 언어들 사이의 심각한 비교를 읽으려면 C, C ++, Java, Perl, Python, Rexx 및 Tcl의 실험적 비교를 확인하십시오 . 가장 업데이트되지는 않았지만 대부분의 일이 여전히 남아 있다고 생각합니다.