본문 바로가기
컴퓨터/전산, 그 외

C++ 사용자의 파이썬 추천

by adnoctum 2011. 9. 1.


   파이썬을 하라. 인생이 편해질 것이다.

딱 이 말이 내가 하고 싶은 말이다. 파이썬을 배우라고 바람을 넣은 사람이 벌써 다섯 손가락을 넘어간다. 엊그제, 20개가 넘는 파일을 열어서 특정 줄을 찾아서 내용을 엑셀에 가져다 붙이고 이런저런 것을 하고 있던 중간에,

"어?, 지금 뭐하고 있는 거지?"

라는 생각이 들었다. 그냥 파이썬으로 코딩하면 간단히 끝날 일을 왜 이러고 있지? 하는 생각. 코드가 긴 것도 아니다.


중간에 괜히 비슷한 라인이 반복되어서 길어졌을 뿐이지, 채 20줄도 되지 않는 아주 짧은 코드다. 내용은, p2q.txt.nq.txt 로 끝나는 파일들을 열어서 각 줄을 tab 으로 분리했을 때 첫 번째 열에 나오는 것이 내가 원하는 것일 때 그 줄을 출력하는 것이다. 이 간단한 내용조차도 손으로 하려면 고생이다. 그런데 저렇게 하면 1초도 걸리지 않고, 더구나 코딩도 5분도 안 걸린다. 생각할 것이고 뭐고 그런 것도 없다. 그냥 하면 된다.

만약 C++ 이었다면 일단 glob 처럼 원하는 파일 목록을 얻어 오는 것도 조금 까다롭고(물론 난 개인적으로 함수를 만들어 사용하지만), 컴파일이고 뭐고 하여튼 그렇다. 얼마 전 룸메가 20만개의 데이터를 그림으로 그려야 된다고 해서 파이썬으로 초간단 코딩, 실행, 1초 정도? 걸려서 결과가 나오니 녀석이 놀란다. ㅋ, 스크립트 언어가 물론 C++ 과 같은 것보다는 느리겠지만 어차피 컴퓨터는 무지막지하게 빠르기 때문에 이런 일은 일도 아니다. 하품이 끝나기도 전에 처리가 끝나는 것이다.


실용주의프로그래머라는 책에 보면 자신이 사용하는 언어 이외에도 스크립트 언어 한두개 정도 배워 두면 좋다고 했는데, 나도 그 책을 읽고 나서야 스크립트 언어를 써보기 시작한 것인데, 102% 만족. 하여튼 온갖 잡스러운 일들은 그냥 파이썬으로 처리. 파이썬은 더구나 배우기도 쉽고, 써먹기도 좋고, 라이브러리도 많다.

   배우기가 쉽다는 말은 주관적일 수 있는데, 객관적으로 만들자면, 현존하는 언어 중 파이썬만큼 배우기 쉽고 요모조모 써먹을 수 있는 언어는 없다고 보면 된다. 물론 매트랩이나 R 정도가 괜찮긴 한데 언어 자체적으로 봤을 때 파이썬만큼 자유롭게 코딩할 수 없다. 길게 잡아도 한 일주일 시간 내서 책 보고 예제 따라하고, 자신이 원하는 프로그램 만들어서 디버깅 하면서 연습하면 금새 실력이 는다. 간혹 사소한 것 디버깅 하느라 1시간을 사용하면, 에잇 이럴 것 차라리 손으로 할껄, 할 때가 있는데, 아니다. 거의 sigmodial 한 학습곡선인 파이썬은 초반에는 좀 시간이 걸릴지 몰라도 어느 순간이 지나면 자유롭게 사용할 수 있다. C++ 은 그 '어느 순간'을 지나지 못해 지쳐 나가 떨어지는 사람이 부지기수.

   C++ 은, 문법도 어렵다. 개념도 어렵다. 컴파일, 라이브러리 묶어 쓰기. 만약 문자열을 쓰려면, 무지막지하게 추상화 되어 있는 STL 을 쓸 때에서야 그나마 좀 편해진다. 만약 책에 있는 예제라도 따라하면서 class 를 사용하기 시작하면 문제는 더욱 복잡해 진다. virtual 에, 상속에, 뭐에뭐에뭐에... 객체지향을 좀 몰라도 이런저런 일을 해볼 수 있는데, 책을 따라 하면 이런 것에서 걸릴 수 있다. 객체지향은 나중에 해도 된다(이건 파이썬도 마찬가지). 윈도우즈용 프로그램을 만들려면 API나 MFC를 쓰게 될텐데 하여튼 이런 것도 좀 그렇다. 자바는 내가 잘 몰라서 별 말은 안하겠지만 이것도 그리 쉬운 언어는 아니다. 그냥 사람들이 많이 할 뿐이다. 그리고 그놈의 classpath 등 하여튼 좀 번거로운 것 같다. 펄은 좀 지저분하다. 비주얼 베이직도 지저분하다. 특히 이 비주얼베이직은 계속 내용이 추가되면서 이미 베이직이 아니게 되었다. 그리고 속도도 매우 느리다. 그나마 델파이가 속도도 좋고, 라이브러리(VCL)도 잘 되어 있고 좋다. 근데 object pascal 자체가 좀 나랑 안 맞는듯. C++의 그 자유가 부족하다. 루비, 무지하게 느리다.

   그래서 이런저런 절충 끝에 도달하는 것은 결국 파이썬.



저 위의 파이썬 코드에 있는 세미콜론(;), 물론 없어도 된다, 파이썬에서는. 난 C++ 과 파이썬 소스 파일을 동시에 열어 놓고 할 때도 종종 있다. 그런데 파이썬에선 ; 을 안 사용하고 C++ 에선 해야만 하고, 그러면 혼동이 된다. 어차피 파이썬은 이것을 써도 되니까 그냥 두 곳에서 모두 쓰면 혼동되지 않아서 이렇게 쓸 뿐이다, ㅋ. 윈도우즈에서도 python source file 열고 #! /usr/bin/python 을 쓰고 있다가, 아, ㅋ, 리눅스가 아니지, 할 때가 있는 것처럼 왔다갔다 하면 이런 것은 좀 혼동되곤 한다, ㅋ.

(물론 난 C++ 을 제일 좋다한다. STL과 MFC 를 자주 사용한다. 골탕먹일 사람이 아니면 C++ 을 추천하지는 않는다, ㅋ)

'컴퓨터 > 전산, 그 외' 카테고리의 다른 글

new 가 무서워, ㅋㅋ.  (0) 2013.05.01
colormap 사용하기  (0) 2013.01.24
개발이라는 작업, 개발자  (0) 2011.08.20
프로그래머와 수학 2  (3) 2011.08.15
사용자 친화적 오류 메세지  (0) 2011.08.06