우리는 코딩을 하며 "노가다" 라는 말을 자주 한다.
왜 코딩은 노가다 일까.
아마도 반복된 작업 때문일 것이다.
C/C++ 을 기준으로 두가지의반복 작업이 있다.
첫번째. 작성(수정) - 컴파일 - 실행 -디버그 의 노가다.
두번째. 수 많은 프로그래머들의 반복된 코드의 작성의 노가다.
정말 이 문제는 우리가 코딩을 하며 피해갈 수 없는 문제일까..
나는 그 해답을 Python 이라는 스크립트 언어 에서 찾아보았다.
주)스크립트 언어는 실행속도가 느리다, 동일한 명령을 수행하는 기계어 코드에 비해수십배 가량 느리다고 한다. 그러나 계속해서 배로 빨라지고 있는 CPU 속도와 메모리 용량, 스크립트 언어 이므로 얻을 수 있는 여러가지 잇점에 비한다면속도의 단점은 충분히 상쇄 가능하다. Python 에서는 속도가 필요한 부분은 C 모듈로 작성및컴파일하여 동일한 속도로 작동시킬 수 있다. 따라서 앞으로속도에 대한 문제는 논외로 하기로 한다.
순수하게 프로그래밍의 관점에서 보면..
C 는.. 기고...
C++ 은.. 걷고..
C++ STL 은.. 뛰고..
Python 은.. 난다.. 라고 말할 수 있다.
C 가 프로그래머에 의해 탄생한 것처럼, Python 역시 그렇다.
그러나 C/C++ 은 이미 오래된 언어이기에 변화가 더디고(현재는 고착된 상태인듯 하다) 유연하지 못한하다. 특히 C++ 은 OOP 를 억지로 올려놓은 듯한 인상을 떨칠 수가 없다.
아래 특징을 보면 알겠지만 Python 의 힘은자유로움과 유연함(뱀처럼..) 에서 나온다.
1. 현존하는 대부분의 운영체제에서 사용 가능하다(Linux 와Windows 가 대표적)
2. 한번 작성된 프로그램은별도의작업이(재컴파일) 없어도 다른 기종에서 정상 작동한다.
3. 확장이 가능하여 얼마든지 강력하게 만들 수 있다
(C 나 기타 언어로 컴파일된 모듈을 탑재시켜 쓸 수 있다)
5. 진정한 OOP 구현
(동적 형변환을 비롯하여 함수나 객체를 데이터로 뽑아내어 파일로 저장하거나 네트웍으로 전송 할 수도 있다)
4. 근본적으로 무료(Free)이며, 오픈 소스 이다.
(그러나 Python 을 이용해 제품을 만들 수도 있고 팔 수도 있다)
파이썬은 인터프리터 언어 이므로 작성과 동시에 실행이 가능하다. 이로인해 개발 시간의 획기적 단축을 가져온다. 더이상수정 - 컴파일 - 실행 - 디버그의 반복 노가다는 없다.
기본적으로 실행화일 및 모듈이 스크립트 형태를 지녔으므로 얼마든지 재사용 가능하다.
(물론 필요에 따라 byte compile 화된 파일을 사용 할 수 도 있다.)
지금 당장 떠오르는 것은 테스트 코드의 작성 및 알고리즘 검증에 사용하는 것이지만..
실행 속도에 제한을 받지 않는 각종 어플리케이션에도 적용 가능하리라 본다.
오늘은 여기까지..