brunch

You can make anything
by writing

C.S.Lewis

by 한상훈 Apr 15. 2016

어떤 프로그래밍 언어를 배울까

C, JAVA, C#, C++, Python, Perl ...

C

C언어는 공과 대학생이라면 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에 비교해서 생산성이 매우 높다고 평가받지만 자바를 이후로 나오는 스크립트 언어들에게 자리를 뺏기고 있어, 현재는 다양한 분야에서 사용되는 언어는 아니다. 


Python

파이썬은 쉽고 강력하다. 조사한 자료에 따르면 파이썬 소프트웨어 개발자의 연봉이 가장 높다. 

재밌는 점은 파이썬은 C언어를 바탕으로 만들어졌다. 그래서 빨리 제품을 생산하는 경우 파이썬을 기반으로 만들고, C로 보충하는 경우도 있다. 개인적으론 C언어보다 파이썬을 먼저 배우는게 프로그래머 교육에 더 적합하다고 생각한다. 외국에서는 중학생들에게 파이썬을 교육하는 케이스도 있다고 한다. 


높이 날기도 하지만 연봉도 가장 높다
"너는 날고 있네! 어떻게 된거야?"
"파이썬! 어젯밤에 배웠는데 너무 간단해!"


Perl

There is more than one way to do it, 무언가를 하는 방법은 (언제나)하나보다 많다.
- Perl의 프로그래밍 철학

파이썬은 하나의 기능을 위한 최적의 코드가 있어서, 하나로 수렴해가는 반면 펄은 하나의 기능을 하는 여러 코드가 있다. 현재 광범위하게 사용되고 있고, 생산성도 좋다. C언어와 비슷한 구문에 여러 유닉스 기능을 포함하고 있다. 인터프린터 언어이기 때문에 프로그램 구현과 디버깅에 편리함이 있다. 놀라운 점은 인터프린터 언어임에도 불구하고 속도가 빠르다. 

출처: http://onlyjob.blogspot.kr/2011/03/perl5-python-ruby-php-c-c-lua-tcl.html

숫자가 작을 수록 빠른 속도임을 보여주는데, Perl과 PHP, Ruby가 상위권이다. 단순히 빠른 정도가 아니라 다른 빠른 언어들보다 몇 배 빠르다. 물론 이 자료는 약간의 문제가 있다고 평가받는다. 테스트를 해보니 C가 더 빠르더라 라는 내용인데, 그렇다고 해도 Perl은 여전히 매우 빠른 언어이다.

Perl 개발자에겐 유리함이 있는데, Perl은 매우 읽기 어려운 언어이다. "Write once, Read never!" 이라 불리기 때문에 큰 시스템을 디자인 했다면 짤릴 일은 적지 않을까.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari