Skip to content
 

D 가 아닌 C++

C 언어를 사용하는 사람이라면 한번쯤 생각해볼만한 질문이 왜 하필이면 C에서 C++이 되었을까라는 질문이다.

처음 C++이 나오기 전에 C언어를 공부하면서 C라는 언어가 나온 경위에 대한 설명을 본적이 있다.
정확한 경로인지는 모르지만 처음에 에셈블리(A) 에서 C와 중간단계의 B언어가 나온뒤 정리가 완선돼서 C언어가 나왔다는 애기였다.
생각해보면 참 쉽게 언어가 하나 생긴거구나 하고 무심결에 지나쳤었는데 이후 C++ 이라는 언어가 나왔을때 왜 D가 아닐까 하는 의문이 생겼다.

요즘은 시샵(C#)이라는 다음단계로 변한걸보면 D되기는 무진장 힘들구나 하는 생각도 든다.

매우 오랬동안 그 이유에 대해서 혼자서 고민하다가..사실 게을러서 인터넷을 뒤져본적이 없어서..나만의 결론을 내리게 되었다.

C++은 C언어를 기반으로한 객체지향이라는 신택스의 첨가라는 생각이다.

외국자료나 서적을 보면서 자주 느끼는 점중에 하나는 새로운 기술이나 자료에 나오는 약자를 보면 참 고민을 많이하고 만들었구나와 우리나라의 경우에 비해서 그 단어를 만드는 기준이 참으로 의미심장함을 느끼게 된다.

컴퓨터관련 용어들을 살펴보다보면 단어상의 의미로는 같은 내용이지만 서로 다른 단어를 굳이 쓰는 경우를 접하게 된다. 왜 같은 내용의 의미를 다르게 쓸까 생각해 보면 결국은 그 이론또는 기술을 만든사람의 최초 사상을 조금이나마 느끼게 된다는 점이다.

++는 C언어에서 증가의 의미다. 즉 C++는 C에다가 뭔가 하나를 추가한거지 달라진게 아니라는 의미다.
C# 역시 C++++에서 ++기호를 내려써서 # 모양이 된 언어다.

간혼 프로그램어중에는 C++이 객체지향이다 라고 말하는 경우가 있지만 정확한 의미로 본다면 객체지향을 쉽게 구현할 수 있는 언어중에 C++ 이 있다라고 해야 좀더 적합할것이다.
객체지향이라는것이 새로운 언어적인 차원이 아니라 설계 기법의 차이라는 접을 생각하면 C가 D가 되면서 그 목적성이 달라지거나 그 언어의 용도가 달라진게 아니라 동일한 언어의 신택스를 유지하면서 새로운 기능이 추가된 뜻이 아닌가란 생각이다.

C# 은 C언에에서 좀더 프로그램을 쉽게 하기 위해서 Java나 VBasic과 같은 모듈이 발달하고 기존에 나와있는 윈도우 서버들과의 연동이나 설계에 많은 기능이 추가되었다고 생각한다.

결국 언어의 특성이 바뀐것이 아니라 언어의 사용방법이나 용도가 추가되었기 때문에 ++에서 ++ * 2 인 # 이 된게 아닌가 라는게 나의 생각이다.

이러한 생각을 해본건 요즘 국내의 많은 개발자들이 새로운 기술과 또는 기존의 기술을 공부 또는 업무에 적용하는 과정에서 그 결과만을 목적으로 하는 경우가 흔하다는 생각이다. 매우 단순하면서도 기초적인 용어정의나 로우레벨 함수들의 사용보다는 많은 기능이 내장되어진 라이브러리, 모듈, 클래스등의 재 사용에만 시간을 소비하는게 아닌가 하는 생각이다. 응용과학은 기초과학이 발전하는 방향에 절대적으로 의존할 수 밖에 없다고 생각한다.

대한민국을 IT강국이라고들 하지만 내 생각은 좀 다르다. IT 강국이 아니라 IT 인프라 강국이다. 기술의 강국이 아니라 인터넷 환경이 매우 발달한게 아닌가 라는 생각이다.

대한민국이 진정한 IT강국이 되기 위해서는 단순 프로그램어가 아닌 창조적이고 독창적인 프로그램과 시스템이 많이 배출되는게 진정한 IT강국이라고 생각한다.

Leave a Reply