요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

1949년에 등장한 어셈블리(Assembly)부터 최근 등장한 모조(Mojo)까지 세상에는 정말 많은 프로그래밍 언어가 있습니다. 각 언어들은 지원하는 기능과 언어의 수준, 그리고 풀고자 하는 개발의 목적이 조금씩 다르기에 모든 면에서 우수한 언어는 존재하지 않습니다. 특정한 상황에 특화된 언어가 있는 것이죠. 예를 들어, 개발은 웹, 모바일 앱, 게임, 임베디드(하드웨어), ML, 보안 등 다양한 범위에서 각 도메인은 문제점을 갖고 있습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

티오베 선정 ‘올해의 프로그래밍 언어’의 비밀

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인
<출처: freepik>

 

많고 많은 프로그래밍 언어

1949년에 등장한 어셈블리(Assembly)부터 최근 등장한 모조(Mojo)까지 세상에는 정말 많은 프로그래밍 언어가 있습니다. 각 언어들은 지원하는 기능과 언어의 수준, 그리고 풀고자 하는 개발의 목적이 조금씩 다르기에 모든 면에서 우수한 언어는 존재하지 않습니다. 특정한 상황에 특화된 언어가 있는 것이죠. 예를 들어, 개발은 웹, 모바일 앱, 게임, 임베디드(하드웨어), ML, 보안 등 다양한 범위에서 각 도메인은 문제점을 갖고 있습니다.

 

위키피디아에 따르면 재미를 위해 개발되어 실생활 문제는 풀기 어려운 프로그래밍 언어들을 제외하고도, 약 700여 개가 넘는 프로그래밍 언어가 존재하는데요. 아쉽게도 우리는 이 언어들을 전부 배우거나, 활용할 수는 없습니다. 그래서 해결해야 할 문제를 효과적으로 풀어낼 수 있는 프로그래밍 언어를 선택해 학습하는 것이 좋습니다.

 

그렇다면 좋은 프로그래밍 언어는 어떻게 정의할 수 있을까요? 상황에 따라 중요도는 다르겠지만 보통 1) 문제를 해결하는 능력 2) 코드의 성능(실행 속도, 안정성) 3) 지원되는 기능 4) 용이한 유지 보수 5) 사용하기 쉬운 정도 6) 사용하는 개발자의 수(인기도) 등의 기준을 생각해 볼 수 있습니다.

 

특히 어떤 프로그래밍 언어를 가장 많이 쓰고 있는지가 중요한 기준이 될 수 있는데요. 이번 글에서 살펴볼 티오베는 티오베 지수(Tiobe Index)를 통해, 매월 프로그래밍 인기도를 측정하고 있습니다. 과연 티오베는 어떤 방법으로, 그리고 왜 이런 지표를 만들었을지에 대해 알아보겠습니다.

 

 

티오베 지수란?

<출처: 티오베 지수>

 

티오베 지수는 네덜란드 소프트웨어 기업인 ‘티오베’에서 매월 정기적으로 자체 계산 공식에 따라 발표하는 프로그래밍 언어 순위를 말합니다. 보통 51위 아래로는 차이가 아주 적기 때문에, 50위까지의 순위를 공개합니다.

 

그렇다면 이 지수는 어떻게 계산되는 걸까요? 공식 사이트 설명에 따르면, 티오베 지수는 25개의 웹사이트에서 특정 프로그래밍 언어를 검색했을 때 나오는 결과 자료 수를 기반으로 계산한 ‘Rating’이라는 값을 사용한다고 합니다. 또한 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영됩니다.

 

먼저 티오베가 지수 계산을 위해 활용하는 웹사이트와 각각의 가중치를 차트로 만들어 봤습니다.

 

<출처: 티오베 지수, 작가 편집>

 

위 차트에서 볼 수 있듯 Google.com, Google.br 또는 Bing, Microsoft.com와 같은 사이트를 동시에 활용하는데, 결과적으로는 아래와 같이 검색 포털, 커머스, SNS로 구성되어 있습니다.

 

<출처: 각 사, 작가 편집>

 

여기서 25개의 웹사이트를 선정하는 기준은 다음과 같습니다.

 

  • 사이트에 검색 기능이 있어야 한다.
  • (쿼리) 검색 결과에 조회수가 있어야 한다.
  • 검색 결과는 HTML로 제공되어야 한다.
  • 검색 결과는 특수문자를 잘 처리해 나타나야 한다.
  • 검색에 대해 최소 1개 이상의 결과를 조회해야 한다.
  • 검색 결과에 너무 많은 이상 값이 있어선 안 된다.

 

그래서 바이두, 네이버, 덕덕고, 비리비리 같은 일부 검색 사이트와 디스코드, 페이스북, 인스타그램, 링크드인, 틱톡, 트위치, 트위터, 왓츠앱, 유튜브, 핀터레스트, 레딧 등의 SNS는 반영되지 않기도 합니다.

 

다음으로 프로그래밍 언어에 대한 조건입니다. (위키에 있는 700여 개의 프로그래밍을 모두 반영하진 않습니다.)

 

  • 위키피디아에 해당 언어 항목이 있으며, 프로그래밍 언어로 명시되어 있어야 한다.
  • 프로그래밍 언어는 튜링 완전성(Turing complete)을 만족해야 합니다. (튜링 완전성의 개념은 복잡하기 때문에 변수, 반복문, 조건문, 함수 같은 기능을 제공한다 정도로 이해하면 됩니다.)
  • 구글에서 프로그래밍 언어를 검색했을 때 최소 5000건 이상의 결과가 나와야 한다.

 

위 조건을 통해 278개의 프로그래밍 언어에 대해 순위를 매기고 있으며, 아쉽게도 루비 온 레일즈(Ruby on Rails), 엑셀, 안드로이드(AOS), 부스트, 코코아, ASP, AJAX, HTML, XML, 엄랭 등은 프로그래밍 언어로 간주하지 않습니다.

 

<출처: 구글 캡처>

 

또한 E처럼 자연 지수, 알파벳, 앨범 제목 등 다양한 결과가 나오는 특정 언어들은 검색하기 까다로워, ‘Programming’ 같은 키워드 더해 검색하거나, 이를 보정하기도 합니다.

 

<출처: 작가>

 

이러한 조건들을 포함해 Rating은 위 이미지처럼 언어와 검색 엔진 결과에서 나오는 조회수들의 가중합으로 계산합니다.

 

결론적으로 웹사이트, 언어, 지수라는 3가지 과정을 거쳐 만들어진 티오베 지수는 ‘사용자가 많은 언어는 언어와 관련된 자료도 많을 것’이라는 간단하지만 납득할 만한 전제를 기본으로 합니다. 그러나 스택 오버플로우를 검색엔진으로 활용하지 않거나, 안드로이드를 프로그래밍 언어로 간주하지 않는 등 절대적인 지표로 사용하기에는 한계점도 있습니다.

 

또한 자료수를 활용하기 때문에 인기도에는 적합할 수 있지만, 앞서 언급한 좋은 프로그래밍 언어로서의 다른 평가 지표에 대한 결과는 알 수 없습니다. 만약 한 언어와 연관된 조직에서 자료의 수를 인위적으로 늘리는 등의 어뷰징을 한다면, 이를 티오베 지수에서 구분해 내기 어렵습니다. 검색 결과가 특정 지역과 특정 서비스에 편향되어 있는 점도 개선이 필요한 부분 중 하나입니다.

 

프로그래머스 설문조사 리포트 <출처: 프로그래머스

 

코드너리 기술 인기도 <출처: 코드너리>

 

이렇듯 티오베 지수에도 분명한 한계점이 있어, 티오베 이외에도 GitHut, PYPL, 스택 오버플로우, 프로그래머스, 코드너리 등 많은 사이트에서 현업 개발자들이 사용하고 있는 인기 프로그래밍 언어를 조사해 발표하기도 합니다.

 

 

티오베 지수는 왜 만들었을까?

그렇다면 티오베는 왜 매월 수많은 언어에 대해 조사하는 작업을 거쳐, 지수를 계산하고 발표하는 걸까요? 이유를 살펴보기 앞서 티오베가 어떠한 회사인지 먼저 알아보겠습니다.

 

<출처: 티오베>

 

티오베라는 이름은 The Importance Of Being Earnest(성실함의 중요성)의 줄임말인데요. 회사를 ‘Software quality company’라고 소개한 것처럼, 여러 지표들을 활용해 소프트웨어 코드 퀄리티를 체크하는 일을 합니다. 코드의 퀄리티는 코드 커버리지나 문제, 버그, 스타일링, 중복 코드, 컴파일러 경고 등 다양한 코드 이슈들을 포함하는데요. 이러한 코드 퀄리티를 체크하는 툴을 제공하고 있으며, 개발자는 이를 통해 코드 이슈를 점검하고 해결할 수 있습니다.

 

다른 서비스와 차별점으로는 지표를 설계한다는 점인데요. 실제로 티오베는 TiCS라는 코드 퀄리티 체크를 위한 프레임워크(프로그램)와 코드 컨설팅 서비스 등을 제공하고 있습니다. 또한 각 서비스 안에서도 TIOBE Quality Indicator(TQI)라는 독자적인 지표를 사용합니다.

 

티오베의 TiCS <출처: 티오베>

 

만약 코드 퀄리티 툴을 도입하려는 사용자 입장에서, 티오베의 TQI가 좋은 지수인지 어떻게 확인할 수 있을까요? 물론 카탈로그로 지표 계산 방식을 확인하는 방법도 있지만, 그것보단 티오베에서 설계한 다른 지표들이 얼마나 유용한지 확인할 수 있다면 더 좋을 것입니다.

 

그래서 티오베 지수는 코드 퀄리티를 체크하는 개발 직군을 포함해, 관련 업무를 하지 않는 비개발 직군에게도 널리 공유되고 있습니다. 실제로 어떤 프로그래밍 언어가 인기가 있는지 티오베 지수를 통해 알 수 있다면, 티오베라는 기업은 물론 지수 설계에 강점이 있다는 사실도 알릴 수 있는 것이죠.

 

또한 티오베의 입장에서도 요즘 어떤 언어가 새롭게 인기를 얻고 있는지, 시장조사 관점에서 인사이트를 얻을 수 있고 해당 언어에 대한 코드 퀄리티 지표를 만드는 작업에도 리소스를 할당할 수 있게 됩니다.

 

 

티오베 지수도 하나의 지표일 뿐

이번 글에서 살펴본 것처럼 티오베 지수는 어떤 프로그래밍 언어가 많은 인기를 얻고 있는지 알 수 있는 지표 중 하나입니다. 이들은 인기 언어를 하나의 정량적인 지표로 표현하기 위해, 몇 가지 전제들을 사용했습니다. 단순하고 이해하기 쉽지만 그로 인한 한계점도 있습니다. 그러니 가장 좋은 프로그래밍 언어를 찾기 위해 티오베 지수를 어느 정도 참고하되, 각자의 문제점 또는 상황에서 이를 해결해 줄 수 있는 적절한 언어를 고민해 보는 것이 중요합니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

데이터 프로덕트 개발자
33
명 알림 받는 중

작가 홈

데이터 프로덕트 개발자
33
명 알림 받는 중
돌고 돌아 메디컬 도메인의 R / Shiny 개발자.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기