1-2-다.C/C++의 장점

C/C++ 언어는 다른 고급 언어들에 비해 다음과 같은 장점이 있다. 물론 다른 언어들도 나름대로의 장점을 가지고 있기 때문에 C/C++ 언어가 모든 면에서 다른 언어보다 우월하다고 할 수는 없다. 장점이라기 보다는 언어의 특징이라고 생각하면 된다. C/C++언어의 특징을 한마디로 요약하면 "성능 지향의 범용 언어"라고 할 수 있는데 좋으니까 많은 사람들이 쓰겠거니 생각하면 되고 공부를 하다보면 자연스럽게 알게 되므로 일부러 외울 필요까지는 없다.

 

문법이 간결하다. 예약어가 적고 제공하는 연산자가 다양하기 때문에 짧은 명령으로 많은 일을 할 수 있다.

② 효율성이 좋아 대규모의 고기능 프로그램을 만들 수 있다. 제작된 프로그램의 크기가 작고 속도도 빠르다.

운영체제 개발을 목적으로 만든 언어이므로 저수준 프로그래밍이 가능하며 어셈블리 수준의 하드웨어 제어를 할 수 있다.

모든 분야에 두루 활용할 수 있을 정도로 범용적이다. 사무 처리, 과학 기술, 상업용 등 거의 대부분의 응용 프로그램을 개발할 수 있다.

성능을 위해 불필요한 에러 처리를 하지 않는다. 타입의 불일치나 배열 경계 점검 등은 프로그래머가 직접 해야 하므로 개발자는 항상 이 점을 주의해야 한다.

이식성이 좋다. 대부분의 플랫폼에서 C/C++ 언어를 사용할 수 있으므로 재컴파일만 하면 타 운영체제에서 실행되는 프로그램을 쉽게 만들 수 있다.

 

물론 모든 것이 다 좋지는 않아서 단점도 있다. 베이직이나 최근의 그래픽 기반의 개발툴에 비해서는 배우기 어렵다는 것이 가장 큰 단점인데 특히 포인터는 초보자들에게 두려움의 대상으로까지 여겨지기도 한다. 최신 언어에 비해 부족한 기능도 많다. 예를 들어 최신 언어인 자바는 쓰레기 수집 기능을 제공하는데 C/C++은 이런 기능을 제공하지 않는다. 이것은 단점이라기 보다는 다른 언어와의 차이점이라고 보는 것이 옳다.

C/C++은 실제 개발을 할 때는 아주 좋은 언어임이 분명하며 가장 인기있는 실무 프로젝트용 언어이다. 그러나 프로그래밍에 처음 입문하는 사람들이 프로그래밍의 논리를 익히기에는 분명히 최적의 언어가 아니다. 기능은 좋지만 저수준 언어에 가깝기 때문에 처음 배우기에 너무 어렵다. 또한 주 실습 환경이 도스나 또는 윈도우즈의 콘솔과 같은 칙칙한 환경이기 때문에 실습의 재미도 없는 편이다.

프로그래밍 입문용 언어로는 비주얼 베이직이나 파스칼 언어에 기반한 델파이 정도가 아주 적합하다. 이 두 언어는 만들어질 때부터 교육용을 표방했기 때문에 아주 쉽다. 언어의 구조가 간단하고 엄격하기 때문에 문법에 금방 익숙해질 수 있으며 포인터같은 어려운 기능은 제공하지 않거나 축소하여 부담없이 공부할 수 있다. 또한 그래픽 환경에서 실습을 진행하기 때문에 작성한 코드의 결과를 눈으로 바로 바로 확인할 수 있어서 학습 진도도 빠른 편이다.

그러나 비주얼 베이직은 툴 자체의 근본적인 한계가 있어 고기능의 프로그램을 만들기에는 다소 역부족인 면이 있다. 델파이는 배우기도 쉽고 실무에 바로 사용할 수 있을만큼 강력한 기능을 제공한다. 이 외에도 최신 언어인 자바나 C#도 입문용 언어로서 권장할만한데 이 두 언어의 뿌리도 역시 C/C++이라고 할 수 있으므로 C/C++을 먼저 공부하면 쉽게 익숙해질 수 있다. 그러나 입문용 언어를 선택할 때 언어 자체의 기능만으로 선택할 수는 없으며 여러 가지 주변 여건도 같이 고려하지 않을 수 없다. 입문용 언어로서 C/C++이 유리한 이유는 다음과 같다.

 

첫 번째로 C/C++의 대중성을 들 수 있는데 현재 가장 널리 사용되는 언어가 바로 C/C++이다. 사용자가 많다는 것은 그만큼 자료가 많고 도움을 받을 수 있는 경로가 많다는 뜻이다. 이미 출판된 책도 수천종을 헤아리며 인터넷상에서도 많은 강좌와 공개된 소스를 구할 수 있다. 알고리즘이나 이론에 대한 설명 문서와 소스도 C/C++ 형태로 되어 있는 것이 가장 많으므로 최신 기술을 습득하기에도 유리하다. 또한 각종 동호회나 뉴스 그룹을 통해 의문나는 사항에 대해 질문을 올리고 바로 답을 구할 수도 있다.

두 번째로 C/C++은 실무에서 바로 쓸 수 있는 언어이며 대부분의 개발사들이 기본 개발 언어로 채택하고 있다. 거대한 운영체제에서부터 초소용 임베디드까지 C/C++ 개발 환경이 없는 곳이 거의 없다. 따라서 C/C++로 프로그래밍을 배우면 실무 환경에 적응하는데 따른 혼란이 거의 없으며 배운 지식을 실무에 곧바로 활용할 수 있다. 비주얼 베이직이나 델파이는 배우기는 쉽지만 사용 빈도가 C/C++보다 낮기 때문에 실제 개발을 할 때는 다시 C/C++을 배워야 하는 부담이 있다. 현실적으로 얘기하자면 C/C++은 취업에 가장 유리한 언어, 쉽게 말해 돈이 되는 언어라고 할 수 있다.

 

C/C++은 자바나 C#에 비해 완전한 객체 지향 언어가 아닌 혼합형 언어이다. 그래서 처음부터 객체를 몰라도 코딩을 할 수 있다는 것이 또 다른 장점이다. 객체를 쓰지 않을 때 무엇이 불편하며 왜 객체 지향이 좋은지 순서대로 경험해 볼 수 있다. C#이나 자바는 완전한 객체 지향 언어이므로 일단 익숙해지면 사용하기 편리하지만 처음부터 객체를 알아야 한다는 것은 입문자에게 다소 부담이 될 수도 있다.