프로그래밍 언어, 어느 것을 선택해야 할까?

세상에는 정말 많은 프로그래밍 언어들이 있습니다.

처음 프로그래밍을 배우는 사람들은 어떤 언어로 프로그래밍을 시작하면 좋을까 고민하기도 합니다. 물론 학교나 직장에서 반강제로 어쩌다 보니 프로그래밍에 입문하는 사람들은 어쩔 수 없이 선택한 언어로 공부나 일을 하겠지만 말이지요.

위키피디아에서 알파벳 순서대로 적었을 때, 적어도 수 백가지의 프로그래밍 언어가 있습니다.

프로그래밍 언어 목록 - 위키백과, 우리 모두의 백과사전

물론 이 많은 프로그램 언어 중에는 현재는 거의 쓰이지 않는 것이 많습니다. 그러니 이 많은 언어를 굳이 다 알아야 하는 것은 절대 아닙니다.

현재 사용하고 있는 프로그래밍 언어에 대한 랭킹을 보여주는 사이트가 있습니다. 대략 Top 20 정도가 널리 쓰이는 프로그래밍 언어이고, 나머지는 저도 잘 모르는 언어가 많네요.

TIOBE - The Software Quality Company

java 컴파일

점유율 1% 이상의 프로그램 언어로 영역을 좁히면, 10개 내외로 줄어듭니다. 그리고 이들이 대부분 범용 프로그래밍 언어로 볼 수 있을 것 같습니다. 1% 이하인 것 중에는 특수한 목적으로 해당 분야에서 사용하는 언어도 보이네요. 이런 언어는 통계학에서 쓰는 SAS, 수학 관련 MATLAB, DB를 빠르게 핸들링할 때 쓰는 PL/SQL 등이 있습니다.

프로그래밍 언어 랭킹에서 1, 2위는 항상 C 아니면, Java(자바)입니다. 둘은 매월 업치락 뒤치락하는 사이이지요. 그러니 프로그래밍을 처음 입문하는 사람이라면, C냐, 자바냐를 두고 고민하게 됩니다. 그런데, C언어와 자바언어는 상당한 차이가 있습니다. 그러니 아래와 같은 특징을 잘 살펴서 선택하는 것이 중요합니다.

C

C언어는 프로그래밍 언어의 절대 강자입니다.

C언어

(C언어는 로고가 없습니다)

C언어는 메모리를 직접 핸들링할 수 있는 장점이 있어서, 성능 최적화가 가능합니다. 그래서 대부분 단말기 개발에서 사용하고 있습니다. 작은 용량을 잘 핸들링할 수 있기 때문에 메모리가 적은 단말기에서 사용하기 유리한 것이지요.

반대로 메모리를 직접 핸들링하기 때문에 다루기 까다로운 측면이 있습니다. 잘못 만든 프로그램일 경우 메모리가 급격히 소진되는 버그가 발생하기 쉽습니다.

Java

Java는 웹 프로그래밍의 절대 강자입니다.

Java

처음 Java 언어가 세상에 나왔을 때는 C언어에 비해서 엄청나게 실행 속도가 느린 언어였습니다. 현재도 C언어에 비해서는 느리지만, 프로그램 실행 엔진의 성능개선과 PC 성능 향상으로 인해 차이를 느낄 수 없을 만큼 속도 차이가 줄어들었습니다.

Java언어의 최대 강점은 메모리를 직접 핸들링하지 않는다는 것입니다. 대충 쓰고 버려두면, Garbage Collector(청소부)라는 내부 프로그램이 알아서 회수해 갑니다. 그래서 비교적 다루기 쉬운 언어에 속합니다. (GC는 자바에서 매우 중요한 역할을 합니다)

그리고 자바는 처음부터 단말기가 아닌 웹에서 동작하도록 고안된 언어였습니다. 웹(인터넷)의 폭발적인 성장과 함께 자바는 웹 프로그래밍의 필수 언어가 되었습니다. 현재 기업에서 사용하는 거대 규모의 웹사이트는 대부분 자바 언어를 사용합니다. (중소규모 언어는 다른 언어를 사용하는 경우가 많습니다)

원래는 웹에서 사용하도록 고안된 언어였으나, 안드로이드 OS가 나오면서 스마트폰 프로그램도 자바로 만들 수 있게 되었습니다. 자바 언어의 측면에서는 획기적인 변화가 된 셈이지요.

Python

파이썬은 알고리즘을 배우기 좋은 언어입니다.

Python

파이썬은 아직 기업에서 널리 쓰진 않는 것 같습니다. 저도 현재는 알고리즘 공부를 위해서 배우는 중인데, 자바보다는 문법이 훨씬 간단하고, 프로그램을 개발하기 위한 환경을 구성하기도 훨씬 편리하네요.

파이썬은 인공지능 분야에서 널리 사용하고 있는데, 그 이유는 언어적인 특성과 함께, 기존에 다른 사람들이 미리 만들어  배포해 둔 프로그램인 라이브러리가 많기 때문입니다.

선택

예전에는 대부분의 컴퓨터 관련 학과에서 C언어를 기본으로 가르쳤습니다. 그러다가 자연스럽게 Java언어를 기본으로 가르쳤습니다. 하지만, 최근에는 Python을 가르치는 경우도 많아졌습니다.

프로그래밍은 코딩과는 조금 다릅니다. 데이터의 흐름이나, 로직(알고리즘)이 더 중요합니다. 프로그래밍을 처음 시작해 보는 분들이라면, 파이썬이 좋은 선택일 수 있습니다. 그리고 이후에 단말기를 많이 다루게 되면 C언어로웹을 많이 다루게 되면 자바 언어로 자연스럽게 넘어가는 것을 추천합니다.