[블로터10th] 프로그래밍 언어 10년 역사

가 +
가 -

프로그래밍 언어는 개발자라면 평생 관심을 가지는 소재다. 처음 프로그래밍을 배울때는 어떤 언어를 먼저 배울지 고민하고, 업무에 따라 다시 새로운 언어를 배우고, 새로 출시된 버전과 기능에 대해서도 따라가야 한다. 과거 주류 언어라고 하면 대부분 자바나 C/C++를 꼽았지만 최근 10년 사이에는 다양한 언어들이 성장하면서 기업에서 쓰는 주류 언어들도 부서나 기업 규모마다 다양해지고 있다. 아래 내용을 통해 최근 10년동안 인기있었던 프로그래밍 언어를 살펴보고 숨은 역사에 대해서도 알아보자.

프로그래밍 언어의 10년 트랜드

프로그래밍 언어 중 가장 인기 있는 언어는 무엇일까? 사실 프로그래밍 순위를 매기는 쉽지않다. 기업이나 언론에서 많이 인용하는 프로그래밍 언어 인기 지표는 대부분 검색량이나 깃허브, 스택오브플로우에서 언급되는 횟수 등의 데이터를 활용하는 수준이다. 가장 많이 알려진 프로그래밍 인기 순위 지표는 티오베 자료다. 티오베는 소프트웨어 품질관련 서비스를 제공하는 기업으로 2001년부터 프로그래밍 인기 순위를 매달 발표하고 있다. 이때 순위는 국가별 구글 검색창, 위키피디아, 아마존, 유튜브 등의 입력되는 정보를 기반으로 메겨진다. 이 외에도 레드몽크 블로그, PYPL, 트랜디스킬, IEEE 스펙트럼 에서도 프로그래밍 인기순위를 볼 수 있다. 이러한 기업도 대부분 구글 트랜드나 검색 쿼리를 참고해 순위를 메긴다. 깃허브와 스택오버플로우도 자체 프로그래밍 인기순위를 계산해 공개하는걸로 유명하다. 깃허브 자료에서는 오픈소스 프로젝트에서 많이 사용하고 있는 언어들을 살펴볼 수 있으며, 스택오버플로우에서는 커뮤니티에 활발히 참가하는 프로그래머들의 관심사를 찾아 볼 수 있다.

programming_language_ranking_GITHUB

▲사진 : https://github.com/blog/2047-language-trends-on-github

① 2006년, 신생 웹 언어의 인기

불과 몇년 전만해도 가장 인기 있는 언어는 역시 자바와 C/C++였다. 하지만 이러한 추세는 조금씩 변하고 있으며 2006년도부터 특히 웹 프로그래밍 언어들이 폭발적인 관심을 받았다. 이는 서비스 수요와 일자리와 비례하기도 한다. 티오베는 2006년 가장 많이 성장한 언어에 루비를, 2007년에는 파이썬을 꼽았다. 웹 언어에 대한 관심이 꾸준히 높아지면서 각 언어와 함께 쓸 수 있는 프레임워크도 많이 생겼으며, 실제 제품에 적용된 활용사례도 늘어났다. 2012년에는 프로그래밍 온라인 강의 업체 유데미는 ‘모던 언어들의 코드 전쟁‘라는 글을 공개했으며, 여기에 루비, 파이썬, PHP에 대한 인기를 소개했다. 독특한 사실은 당시 경쟁업체로 불리던 세 인터넷 서비스 기업이 서로 다른 언어로 서비스를 제작했다는 점이다. 페이스북은 PHP, 트위터는 루비, 구글은 파이썬을 이용해 웹사이트를 만었다.

programming_logo_02_code_war

▲사진 출처 : 유데미 블로그

② 2012년, 모바일 언어들의 인기

스마트폰의 등장으로 2010년 이후 모바일 앱과 관련된 언어들이 관심을 받기 시작했다. 안드로이드와 블랙베리 앱은 자바로, iOS는 오브젝티브C언어로, 윈도우폰 앱은 C# 기반으로 만들 수 있었다. 시간이 지나자 하이브리드 앱이나 웹앱에 대한 관심도 높아졌다. 하지만 현재 데이터를 보면 자바나 오브젝티브C같은 네이티브 언어 인기가 여전히 높다. 최근에는 안드로이드 앱 개발에 최적화된 프로그래밍 언어 ‘코틀린’이나 애플이 공개한 차세대 프로그래밍 언어 ‘스위프트’도 크게 성장하고 있다.

programming_logo_03_objectivec

▲사진 : http://www.tiobe.com/tiobe-index/objective-c/

③ 2016, 데이터과학·자바스크립트 언어의 인기

최근 머신러닝 바람이 IT 업계에 불면서 데이터 과학과 관련된 언어들이 급성장하고 있다. 데이터과학 언어로는 파이썬과 R을 꼽을 수 있다. 코드경진대회 서비스를 제공하는 코드이벨은 ‘파이썬’을 2016년 프로그래밍 인기 순위 1위로 꼽았으며, 같은 해 레드몽크는 파이썬을 인기순위 4위, 티오베는 5위로 선정하기도 했다.

깃허브와 스택오버플로우는 2016년 자바스크립트 언어가 개발자들에게 가장 인기있다는 설문조사를 공개했다. 실제로 최근에는 노드JS, 엥귤러JS, 리액트JS같은 자바스크립트 관련한 다양한 프레임워크가 인기를 끌고 있다.

programming_logo_04_Python

▲사진 : http://blog.codeeval.com/codeevalblog/2016/2/2/most-popular-coding-languages-of-2016

프로그래밍 언어 이름의 어원

프로그래밍 언어 이름은 향후 마케팅을 할때 중요한 수단이 된다. 과거 프로그래밍 언어 이름은 약자를 따와 짓는 경우가 많았지만 최근에는 숨은 의미를 이름에 담기도한다. 처음 정해진 이름과 향후 외부에 공개된 이름이 다른 경우도 꽤 있다. 아래는 10년동안 인기를 끌던 프로그래밍 이름들의 어원이다.

자바 : 자바는 원래 ‘오크’라고 불렸던 프로젝트다. 자바 창시자 제임스 고슬링의 사무실 밖에 오크 나무가 보여 이를 활용했다고 한다. 하지만 ‘오크 테크놀로지’라는 기업이 이미 존재했고, 법적인 문제를 피하기 위해 새로운 이름을 찾아야만 했다. 오크 프로젝트 팀 멤버들은 머리를 맞대고 다양한 이름을 후보로 추천했다. ‘자바’도 그 중 하나였다. 자주 마시는 커피를 보고 자바라는 단어를 제안했다고 한다. 이 외에도 나머지에는 DNA, 실키, 레보루션너리, 임팩트같은 이름도 추천됐지만 최종적으로 자바가 선택됐다. *참고 http://www.javaworld.com/article/2077265/core-java/so-why-did-they-decide-to-call-it-java-.htmlclose

자바스크립트 : 자바라는 단어가 앞에 들어가 있지만 기술적으로는 자바와 전혀 상관 없다. 자바스크립트를 만든 인물은 넷스케이프에 일했던 브랜든 아이크이며 넷스케이프 설립자였던 마크 앤드리슨의 조언을 받아 ‘모카’라는 이름을 지어줬다고 한다. 모카는 1995년 12월 이름은 ‘라이브 스크립트’라는 이름으로 바뀌었는데, 당시 자바가 큰 인기를 끌자 마케팅 효과를 노려 이름을 자바스크립트로 이름을 변경했다. *참고 https://www.w3.org/community/webed/wiki/A_Short_History_of_JavaScriptclose

C언어 : C언어 이전에 만들어진 B언어에 영향을 받아 지어진 이름이다. C언어는 벨연구소에 있던 데니스 리치가 만들었는데 그의 동료 켄 톰슨은 BCPL이란 언어를 활용하고 있었다고 한다. 켄 톰슨은 BCPL을 조금 수정해 B언어라는 이름을 붙였고, 데니스 리치가 이를 다시 받아 개선해 C언어라는 단어를 만들었다. 참고로 켄 톰슨은 향후 구글의 고 언어를 공동 창시했다.

C++ : C++은 덴마크의 컴퓨터 과학자 비야네 스트롭스트룹가 만든 프로젝트다. C언어보다 객체 지향화한 언어라고 볼 수 있다. C++의 처음 이름은 ‘클래스를 가진 C(C with Classes)’였는데 향후 C++로 변경됐다. ++은 C 언어에서 증가연산자이기 때문에 C++이란 말 자체가 C에 1을 더한 언어, 한가지 추가한 언어라는 해석이 가능하다.

C# : C#은 마이크로소프트(MS)가 개발한 언어로 덴마크 소프트웨어 개발자 아네르스 하일스베르가 주도한 프로젝트였다. 처음에는 C#이라고 불리지 않고, 쿨(Cool)이라는 이름을 가졌었다. Cool은 C-like Object Oriented Language의 약자를 따온 단어였다. 한글로 풀이하면 ‘C와 비슷한 객체지향언어’였다. 하지만 법률팀이 C#을 법적 트래이드 마크로 사용하기 힘들다는 조언을 제공하고 다른 이름을 찾기 시작했다. 미야네 스트롭스트룹은 C의 영향을 받은 언어라는 점을 강조하기 위해 ‘e-C, 세이프 C, C-스퀘어, C-큐브, C-프라임, C-스타, 세슘 등을 후보로 내놓았다고 한다. C++처럼 뭔가 한단계 올라갔다는 단어를 고민하다가 ‘C++++’라는 단어도 추천했다. C#에서 샵에는 +표시가 4개 엮어 있고, 음악 용어에서도 C#은 C에서 1도 위 음을 뜻해 좋은 단어였다. MS는 이중적인 의미를 가진 C#으로 최종 이름을 결정했다. *참고 https://www.simple-talk.com/opinion/geek-of-the-week/anders-hejlsberg-geek-of-the-week/
http://stackoverflow.com/questions/1991345/origin-of-the-c-sharp-language-name
https://en.wikipedia.org/wiki/C_Sharp_(programming_language)close

programming_language_EXAMPLE

▲사진 : https://unsplash.com/search/PROGRAMMING?photo=6njoEbtarec

오브젝티브-C : 오브젝티브C는 1980년대 초반 스텝스톤(Stepstone) 소속의 브래드 콕스와 톰 러브가 만든 언어다. 두 사람은 객체지향 개념에 관심을 두고 이를 C와 연결하는 방법을 고심했고, 그 결과로 오브젝티브 C를 만들었다. 오브젝티브(Objective)는 객체지향이란 뜻을 가진다.

파이썬 : 파이썬은 만든 사람은 귀도 반 로섬이다. 귀도 반 로섬은 우연히 BBC의 코미디 프로그램인 ‘몬티 파이썬’의 각본을 읽게 됐고 그때 문득 파이썬이란 이름을 가져오기를 결정했다고 한다. 파이썬 공식 홈페이지에 따르면 “귀도 반 로썸은 짧고, 특별하고, 미스터리한 느낌의 단어를 찾았다”라며 “그래서 파이썬이란 이름을 결정했다”라고 설명했다. *참고 http://stackoverflow.com/questions/1991345/origin-of-the-c-sharp-language-name)
https://docs.python.org/2/faq/general.html#general-informationclose

루비 : 루비는 일본인인 마츠모토 유키히로가 1991년 만든 언어다. 마츠모토 유키히로는 당시 ‘펄(Perl)’라는 프로그래밍 언어가 유행하는 것을 보고 보석과 비슷한 이름을 찾아봤다고 한다. 다이아몬드, 에머랄드 등 여러 보석 이름을 갖다 붙여봤는데, 가장 짧고 부르기 쉬운 게 ‘루비’여서 루비로 결정했다고 한다.

PHP : PHP는 ‘PHP: Hypertext Preprocessor’의 앞글자를 딴 단어다. 동시에 재귀 약자(recursive acronym)다. 재귀약자란 풀이된 문장 안에 약자가 그대로 들어가 있는 단어다. 하이퍼텍스트(Hypertext)은 하이퍼링크를 통해 독자가 한 문서에서 다른 문서로 접근할 수 있는 것을 의미한다. Preprocessor는 전처리기라는 의미로 컴퓨터 처리에서 중심적인 처리를 행하는 프로그램을 위해 미리 계산하거나 필요한 작업을 수행하는 프로그램이다. 동적 웹 페이지를 만들때 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성해준다. *참고 https://secure.php.net/manual/en/intro-whatis.phpclose

스위프트 : 애플은 스위프트의 어원을 공식적으로 공개하지 않았으나 소개문이나 로고를 통해 그 의미를 유추할 수 있다. 일단 스위프트(swift)라는 단어에 ‘재빠른’이라는 의미가 있다. 애플은 스위프트를 “빠르고 효율적인 언어”라고 소개하고 있어 속도 때문에 이 단어를 선택했다고 볼 수 있다. 또한 로고에는 제비와 비슷한 새가 그려져 있는데 이는 칼새를 나타낸다. 칼새를 영어로 표현하면 ‘스위프트(swift)’다. 칼새는 최대 112 km/h 속도로 날 정도로 빠르다고 한다.

코틀린 : 코틀린은 자바 IDE를 만들던 젯브레인이 개발한 언어다. 젯브레인에 설립자들은 러시아인이며 본사는 체코에, 연구소는 러시아에 위치해있다. 이러한 이유 때문인지 ‘코틀린’이라는 단어는 러시아의 섬 이름에서 따왔다고 한다.

러스트 : 러스트 차세대 C++라는 별명을 가진 언어다. 모질라 재단 직원이었던 그레이든 호아레 프로그래머가 러스트를 고안했다. 독특한 점은 그레이든 호아레는 생물학에 매우 관심을 가진 사람이었다고 한다. 그래서 그런지 녹병곰팡이인(Rust)란 생물의 이름을 프로그래밍 언어 이름으로 붙였다. 그레이든 호아레 개발자와 사용자와 나눈 대화를 보면 “녹병 곰팡이는 놀라운 생명체로 원기 왕성하고, 넒은 범위에 분포되는 특징이 있다”라며 “러스트가 ROBUST(원기 왕성한)이란 단어의 일부인 것도 좋았다”라고 밝혔다. *참고 https://www.reddit.com/r/rust/comments/27jvdt/internet_archaeology_the_definitive_endall_source/close

: 고는 2009년 구글이 만든 언어다. 이름의 어원에 관해서는 아직 공식적으로 밝히지 않았다. 한가지 논란은 2009년 이전 프랭크 맥케이브(Frank McCabe)이란 한 개발자가 구글 이전에 ‘고(Go!)’라는 언어를 이미 만들고 관리하고 있었다. 유명한 언어는 아니었지만 프랭크 맥케이브는 구글에게 프로그래밍 언어 이름을 바꿔달라고 요청했다. 이 부분에 대한 토론은 구글 고 언어의 공식 깃허브 페이지에 올라왔는데, 여기서 이름과 관련된 재밌는 추측들을 볼 수 있다. 사용자들은 프랭크 맥케이브가 만든 Go에는 뒤에 느낌표가 있고, ‘가다(Go)’라는 동사를 차용한것이고 구글은 Google의 앞자 Go를 따온것이 아니냐고 이야기 했다. 구글은 이에 대해 공식적인 입장을 밝히지 않았으며, 깃허브 토론장 말미에 “이름이 비슷한 점은 유감스럽다”라며 “이미 다른 제품에도 ‘고’라는 이름이 많이 사용됐으며, 두 언어를 헷갈려하는 경우는 아주 적으므로 이 토론장을 접겠다”라고 설명했다. *참고 http://www.geek.com/news/google-didnt-google-go-before-naming-their-programming-language-977351/close

R: R은 데이터과학 및 통계 분야에서 최근 주목받고 있는 언어다. R은 뉴질랜드 오클랜드 대학교에 속해있던 로스 이하카 교수와 로버트 젠틀맨 통계학자가 만들었다. R이란 이름은 두 창시자의 이름 첫글자를 따와서 만들어졌다고 한다. 동시에 R은 S라는 통계 언어를 참고해 만들었는데 S가 이니셜을 활용할 것처럼 R도 알파벳을 활용했다고 한다.

스칼라 : 스칼라는 객체 지향 프로그래밍 언어와 함수형 프로그래밍의 요소를 섞은 언어이다. 스칼라라는 이름에는 두가지 뜻이 담겨 있는데 먼저 확장성이 높은 언어(scalable language)라는 의미를 가진다. 두 단어의 앞글자를 조합하면 스칼라가 나온다. 또한 스칼라라는 단어는 이탈리아어로 ‘계단’이란 뜻을 가지고 있다. 스칼라는 공식 홈페에지를 통해 “계단으로 위로 올라가듯 더 나은 프로그래밍을 할 수 있다는 것을 표현하려고 했다”라고 밝혔다. *참고 http://www.scala-lang.org/old/node/250close

스크래치 : 스크래치를 어린이를 위한 교육용 프로그래밍 언어이다. MIT의 미첼 레스닉 교수가 이 프로젝트를 주도했으며 스크래치라는 단어는 DJ들이 음악에 스크래치 소리를 넣고 음악을 섞는 과정을 보고 따왔다고 한다. DJ들이 스크래치를 이용해 창의적으로 방법으로 음악을 만들어내듯, 스크래치 언어로 다양한 프로그래밍 결과물을 만들기 바랬다고 한다. *참고 https://wiki.scratch.mit.edu/wiki/Scratchclose

프로그래밍 언어의 로고와 마스코트

프로그래밍 언어 중에 일부는 영어철자 그대로를 로고를 쓰는 경우가 많다. C, C++, C#, 오브젝티브C가 이에 속한다. 하지만 별도의 마스코트와 로고를 만들고 스티커, 티셔츠 등의 상품을 만드는 경우도 많다. 아래 그림들은 인기 프로그래밍 언어의 로고와 마스코트들이다. 그림에 마우스를 올려놓으면 숨은 의미를 알 수 있다.

기업이 주도하는 프로그래밍 언어 시장

새로운 프로그래밍 언어는 1940년대부터 거의 매년 1개 이상씩 탄생했다. 10년을 주기로 40-50개의 언어가 탄생했는데, 최근에는 이 숫자가 조금씩 줄어들고 있다. 특히 최근에는 대학 연구소나 개인이 주도하는 프로그래밍 언어가 아닌 기업 차원에서 공개하는 프로그래밍 언어가 많아졌다.

programming_logo_01

▲자료 : https://en.wikipedia.org/wiki/Timeline_of_programming_languages

2006년부터 지난 10년을 둘러보면 총 33개 언어가 새로 등장했고, 여기서 15개 정도가 기업이 주도적으로 만든 언어다. 모든 언어의 탄생이 그렇듯 기업들은 기존 언어가 가진 한계를 극복하기 위해 새로운 언어를 만든다. 최근 나오는 언어들의 특징은 “직관적이고 배우기 쉬운 언어”라는걸 강조하는 것이다. 애플이 만든 스위프트, 구글이 만든 고, 젯브레인의 코틀린 등이 기존에 쓰던 대안 언어보다 훨씬 배우기 쉽다고 설명하고 있다. 이를 위해 프로그래미 언어만 공개하는 것 뿐만 아니라 더 많은 사람들을 끌어들이기 위해 문서와 예제 파일, 교육용 도구를 함께 제공하고, 세미나, 사용자 컨퍼런스도 적극적으로 지원해주고 있다. 또한 기업이 만들어도 오픈소스 프로젝트로 전환해 개발 과정을 외부에 공개하고 피드백을 적극적으로 받고 있는게 큰 추세다.

프로그래밍 언어 창시자가 가장 많은 국가는?

미국은 IT 업계를 선도하는 국가다. 구글, 애플, MS, 아마존같은 글로벌 IT 기업부터 스타트업들이 넘쳐나는 곳이다. 그렇다면 프로그래밍 언어 창시자가 대부분 미국에서 나올까? 꼭 그런것만은 아니다. 특정 언어를 미국 시장에 적극 홍보할 수 있지만 실제 언어 창시자들의 국적은 다양하다. 다음은 지난 10년간 인기를 끈 언어들의 창시자들에 대한 정보다. 마우스를 올리면 자세한 내용을 볼 수 있다.

네티즌의견(총 3개)