본문 바로가기

app/C

C++에 대한 오해

c++은 현존하는 모든 객체 지향 언어의 base라고 어떤 분이 말씀하셨는데요.

 

http://oreilly.com/news/graphics/prog_lang_poster.pdf

 

프로그래밍의 역사는 깊습니다. 많은 연예인들과 운동선수들이 TV에 한번도 나와 보지도 못하고 사라지듯이 우리가 보통 접하게 되는 언어는 프로그래밍 언어는 무수히 많이 태어 나고 사라 지는 많은 언어들중에 아주 극히 일부분일 뿐입니다.

 

이효리가 인기가 있는 것은 사실이지만, 이효리가 대중가요의 시초라고 얘기하지는 않죠. C++언어는 C언어에 익숙한 기존의 개발자들에서 쉽게 전환이 가능하도록 하면서 OOP가 가지는 장점을 추가를 한 것이지 C++언어 자체를 OOP의 시초로 보지는 않습니다. OOP가 본격적으로 거론되어 진 것은 1970년대 SmallTalk 라는 언어에서 시작이 된 것이며, SmallTalk의 근원은 또다시 Simula, Algol 혹은 Ada와 같은 언어로 올라 갑니다.

 

http://www.research.att.com/~bs/hopl2.pdf (C++ 언어의 역사)

http://www.scribd.com/doc/10520/Bjarne-Stroustrups-Final-Confession (우스개 소리)

 

많은 개발자들이 사용하는 언어중의 하나가 C++입니다만 C++에 대한 맹목적인 신뢰는 바람직하지 않습니다. C++언어는 대중적인(프로그래머들에게) 인기를 끌고 있는 큰 흐름중의 하나일 뿐입니다. Fortran > Cobol > Pascal > C > C++ > Java 식의 큰 흐름으로 언어의 인기가 이어져 왔듯이 C++도 그냥 인기있는 대중적인 프로그래밍 언어중의 하나일 뿐입니다.

 

알고리즘을 표현하는 것은 문서로 얘기하는 방법도 있지만, 더 간결하게 표현할 수 있는 방법이 코드로 얘기하는 것입니다. 이러한 pseudo code를 나타내기 위해서(사람들에게 쉽게 전달하기 위해서) 당시 제일 인기있는 언어가 채택이 될 뿐입니다. 1960년대 고안이 된 Quick Sort 알고리즘이 처음 세상이 나올 때, 1970년대에 나왔었던 C언어로 implementation되지는 않았겠죠. 80~90년대 초반까지는 국내 대학에서 알고리즘을 얘기하는 데 있어서 Pascal이라는 언어가 애용되기도 하였습니다.

 

지금은 은퇴하신 많은 선배 분들은 Fortran과 Cobol을 주 언어로 사용하여 왔었습니다. "그런 언어는 구리고 그런 언어를 사용하는 사람도 구리고, 다 옛날 것이다"라는 얘기를 하는 사람들도 있는데요... 30~40년 뒤의 여러분 모습을 생각해 보시기 바랍니다. 그분들의 노고가 있어서 지금의 우리가 있는 것입니다.

 

Effective C++ 책에 있는 copy constructor에 대해 이해를 다 했다고 프로그래밍 언어에 뛰어 나다고 스스로 생각하는 우는 버리시기 바랍니다. C++에 너무 맹목적인 생각에서 벗어나 좀더 넓은 시각에서 프로그래밍이라는 것을 바라 보시기 바랍니다. 프로그래밍 언어는 자신이 생각하고 있는 바를 나타내는 일종의 규약, 문자의 나열일 뿐입니다. 


데브피아  이경문 (gilgil)  님의 글이었씁니다. 링크는 요기

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=69&MAEULNo=28&no=12980


오랜만에 제대로 된 언어tree의 요약본을 봐서 글을 퍼왔다.


나도 한가지 잘못 알고 잇었던 것은 객체지향이 Ada에서 시작되었다고 들었었는데.. 잘못들은


듯. 아마 패키지의 개념하고 헷갈렸나보다.(패키기의 시초는 Ada가 처음이 확실하다. 기본 단


위가 패키지일 정도였으니 지금의 자바가 클래스 윗단계가 패키지인 것은 Ada의 영향이다)


정말 이쪽 분야면서 정작 가장시초가 되는 언어론은 쉬쉬하는 경향이 크다. 


어렵다기 보다 실전에선 쓸모가 없어서이기 떄문일것이다. 하지만 테크트리를 알수록 하위 테


크를 아는것도 훨씬 쉬워지는것 또한 당연하다. 

'app > C' 카테고리의 다른 글

STL vector  (0) 2009.11.06
typedef 된 자료형들  (0) 2009.11.03
외국 리소스를 한글 리소스로 수정하기  (0) 2009.07.17
milisecond 단위 시간계산  (0) 2009.07.17
AfxExtractSubString 사용법(토큰 분리)  (0) 2009.07.16