본문 바로가기

기타

TIOBE 프로그래밍 언어 순위를 믿지 마라 - 프로그래밍 언어 선택 가이드

TIOBE Index는 우리나라에서는 프로그래밍 언어 순위, 프로그래밍 언어 점유율 순위로 잘 알려진 통계자료입니다.

https://www.tiobe.com/tiobe-index/

 

TIOBE Index | TIOBE - The Software Quality Company

TIOBE Index for December 2019 December Headline: The winners continue to win TIOBE will announce the programming language of the year next month. There are 4 candidates for this title: Java (+1.3%), C (+1.8%), Python (+1.9%) and C# (+1.4%). These 4 languag

www.tiobe.com

 

많은 사람들이 이 순위를 보고 어떤 언어를 배울지 결정하곤 합니다. 특히 이 순위에 없는 언어는 배워봐야 쓸모없는거 아닌가 하는 생각과 최고의 점유율을 가진 Java나 C를 배워야 하나 생각하는 사람도 많을 것입니다.

 하지만 이 순위는 검색엔진을 통해 얼마나 해당 언어에 대한 글이 많이 올라왔는지에 크게 좌우됩니다. Java, C, Python의 경우 교육용으로도 많이 사용되기 때문에 현장에서만 사용되는 objective-C, Pascal, PHP 등과의 점유율로서의 가치가 다를 수 있습니다. 특히 검색엔진 점유율에는 지대한 차이가 있죠.

 또한 현재의 점유율을 보고 언어를 선택하고 배우는것은 좋지 못합니다. 사람들이 선호하지는 않지만, 전에 만들었던 프로그램을 유지하기 위해서 사용되는 언어(대표적으로 Object-C, PHP, VB)들은, 새로운 프로젝트에서는 사용하지 않을 것이 자명합니다. 더 이상 일자리를 만들어내지 못하는 언어라는 말이죠. 

 이러한 이유에서 TIOBE Index에서 점유율 변화량을 보는것은 해당 언어의 미래를 예상 할 수 있다는 점에서 괜찮을 수는 있습니다. 하지만 꼭 "더 유망하기 때문에" 점유율이 오른다고는 할 수 없습니다. 그저 프로그래밍 입문자가 많아졌다고 해석 할 수도 있죠.

 

그러면 무엇을 보고 배울 언어를 선택해야 할까요?

저는 프로그래머들의 선호도, 만족도가 높은 언어일수록 배우기 좋은 언어라고 생각합니다. 선호도가 높은 언어는 미래에도 사용 될 가능성이 높고, 무엇보다 재미있습니다. 또한 프로그래밍의 트렌드를 반영하는 기능들이 기본적으로 들어가 있을 가능성이 높기에 "젊은 코드"를 배울 수도 있습니다.

https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted

 

Stack Overflow Developer Survey 2019

Nearly 90,000 took this comprehensive, annual survey of people who code. Demographics. Most loved, dreaded and wanted technologies. Salary and careers.

insights.stackoverflow.com

스택 오버플로우의 설문조사가 좋은 기준이 될 수 있습니다.

 

Loved 항목은 해당 언어를 사용하는 개발자 중, 계속해서 이 언어를 사용하고 싶은 개발자의 비율입니다. 언어에 대한 만족도라고도 할 수 있죠. 만족도가 높은 언어는 다음 프로젝트에서도 사용할 가능성이 높고, 확산될 가능성도 높습니다. 실제로 몇년간 1위를 차지하던 파이썬은 빠른 속도로 메이저 언어에 등극했습니다. 다음은 Rust의 차례 일수도 있죠.

 

Dreaded는 현재 해당 언어를 사용하는 개발자 중 계속 이 언어를 사용하기 싫은 개발자의 비율입니다. 비율이 높을수록 사라져가는 언어라고도 할 수 있죠. 사장되어가는 VBA와 끔찍한 문법으로 악명높고 Swift로의 대체가 이루어져가는 Object-C가 1,2위를 차지했습니다. 흥미롭게도 TIOBE 점유율에서는 상당히 순위가 높은 언어들중 일부는 실제로는 기피되는 언어로 집계되었습니다.

Wanted 에서는 현재 사용하고 있지는 않지만 사용하고 싶은 언어 순위입니다. 얼마나 빠르게 퍼져 나가는지에 대한 지표로써 유용합니다. 만족도면에서는 1등인 Rust가 순위에 오르지 못했습니다. Rust를 요구하는 일자리가 없는 것이 가장 큰 이유일 것입니다.

 

해당 설문에는 많이 쓰이는 언어 순위연봉이 높은 언어 순위 등도 볼 수 있습니다. 입문자들은 위의 모든 요소를 고려하여 배울 언어를 선택하는 것이 좋을 것입니다. 

 

개인적으로는 입문에는 C#, Python을 추천합니다. Python은 쉽고 빠른 구현을 지원하고 재밌습니다. C#은 java와 유사하면서도 쉽기 때문에 java로의 이전이 쉽습니다. 그리고 다른 언어에서 사용하는 대부분의 개념을 포함하고 있습니다. 또한 번듯한 GUI를 가진 응용프로그램을 만들기 쉽기 때문에 직접 프로그램을 만들어 배포하는 재미를 느낄 수 있습니다. 두 언어 모두 다른 언어들에 비해 자연어에 가까운 문법을 가지고 있기 때문에 이해가 쉽습니다.

연봉 순위에서 최상위를 차지하는 함수형 언어들은 추천하지 않습니다. 입문자에게는 어렵고 이해하기 힘들고 시장이 지나치게 좁습니다. 현재는 대용량 트래픽 처리와 병렬 처리를 쉽게하는 용도로 주로 사용하기 때문에 매우 숙련된 사람들이 사용하여 연봉 순위가 높습니다.

 

2020-09-18 추가

본인이 코딩 입문자가 아니라면, 또 프로그래머로서 취업을 앞두고 있다면 가장 좋은 방법은 가고싶은 회사에서 사용하는 언어와 프레임워크를 알고 이를 공부하는 것이 제일 좋습니다. 한국에서는 Typescript, javascript를 사용하는 Node.js와 리액트 그리고 Flutter, java를 사용하는 안드로이드 네이티브와 Spring, Swift를 사용하는 iOS 네이티브, Python을 사용하는 Django, Flask를 추천드립니다.