자바스크립트는 민중의 프로그래밍 언어?
해마다 다양한 단체 및 기관들이 개발자 조사를 한다. 새로운 사회를 일구는 그들이 어떤 생각을 하는지에 따라, 이들을 주된 청중과 고객으로 삼는 테크 기업들의 동향이 달라질 수 있고, 이는 결국 산업뿐만 아니라 사회에도 영향을 미치기 때문이다.
아예 이러한 커뮤니티 교류 및 분석을 전문으로 하는 기업도 있다. 슬래시데이타(SlashData)도 그중 하나인데, 올해 개발자 서베이 결과가 공개되었다.
2020년 3분기 조사 결과는 159개국 17,000명의 개발자에 의해 취합되었는데, 역시 가장 관심을 많이 끄는 부분은 어떤 프로그래밍 언어가 가장 ‘포퓰러(popular)’했느냐는 점이었다. ‘포퓰러’를 그냥 ‘인기 있는’이라고 말해 버려서는 ‘대중적인, 널리 보급된’이란 뉘앙스가 묻히고 만다. 예컨대 popular-priced라고 하면 서민을 위한 보급가격이란 말이니 오히려 가장 민중적인 프로그래밍 언어라고 풀어쓰는 편은 어떤지 싶다.
대세는 자바스크립트
여하튼 가장 ‘포퓰러’한 프로그래밍 언어는 여전히 자바스크립트였다. 세계 곳곳에서 1,240만 명이 활약하고 있다고 한다. 지구 상에 약 2,130만 명의 소프트웨어 개발자가 활동하고 있다고 추산하고 있으니, 반 이상이 자바스크립트 개발자인 셈이다.
2017년에 비교하여 500만 명이 증가했으니 성장세도 탁월하다. 물론 웹기술의 특성상 하기 싫어도 어쩔 수 없이 조금씩 하는 이들도 있을 것이기에 이들을 모두를 진성 자바스크립트 개발자라고 보기에는 힘들 수도 있다.
그러나 좋아하지는 않더라도 먹고 살기 위해서 한다고 해도 아니 오히려 그렇기에 가장 민중적 프로그래밍 언어일는지 모른다. 가끔 웹페이지의 소스코드 보기를 하면 정말 하기 싫어서 임시로 때워 놓은 코드들, 초보가 배워가면서 억지로 봉해 놓은 코드들 등 현장의 피땀이 자바스크립트에는 그대로 녹아 있다.
자바스크립트는 마스터하기는 힘들어도 입문하기는 쉬운 언어다. 누구에게나 문호는 열려 있지만, 변신에 능한 만큼 파면 팔수록 깊은 맛이 난다. 거의 모든 플랫폼에 그 엔진이 퍼져나간 덕에 결국은 만나게 되는 언어가 되었다.
900만 명의 파이썬과 800만 명의 자바가 2, 3위에 놓였으니 그들과의 격차도 압도적이다.
소프트웨어 2.0과 파이썬
파이썬은 쾌진격 중이다. 당연하겠지만 소프트웨어 2.0이라고 일컫는 머신러닝 분야에서 사실상 표준이 되었으니 인지도는 물론 위상이 예전 같지 않다.
그렇지만 파이썬과 자바스크립트의 격차는 쉽게 좁아지지 않을 터다. 웹은 물론 사실상 앱 개발에서 서버사이드에 이르기까지 실무에서 널리 쓰이는 자바스크립트에 비하면, 파이썬은 웹, 모바일, 데스크톱 등 프런트엔드에서는 거의 존재감이 없다.
하지만 그럼에도 불구하고 2위를 차지했다는 것은 도대체 얼마나 서버사이드에서 약진을 했다는 것인지 가늠할 수 있다. 파이썬은 인공지능도 짜는 심각한 언어라는 이미지 덕에 자바가 독차지하던 서버의 언어 자리도 많이 가져갔다.
자바의 쇠퇴는 두드러지고 있는데 각종 서베이에서 자바는 역사상 가장 힘든 시기를 보내고 있다. 개발자 질의응답 사이트 스택오버플로우의 2020 개발자 서베이에서도 자바스크립트와 파이썬은 자바보다 ‘포퓰러’했다.
언어의 세대가 바뀌는 풍경
순위권 밖에서는 600만 명 언저리에서 C(C++)와 PHP와 C#이 혼전 중인데, 한때 자바와 2위권 싸움을 하던 C#의 쇠퇴가 두드러진다.
윈도 전용 닷넷 전략이 사실상 붕괴한 뒤, 닷넷은 닷넷 코어로 오픈소스화 되고, 또 유니티처럼 C#으로 편하게 짜고 C++로 변환 후 컴파일하는 등 그 언어적 매력 때문에 용도는 넓어졌지만 아무래도 자바도 C#도 그 위세는 예전만 못하다.
자바도 C#도 구세대의 이미지를 탈피하려 애썼지만, 자바스크립트나 파이썬처럼 성공적이지는 못했다. 하나의 세대가 저물고 있다는 느낌은 하위 순위권을 보면 느낄 수 있다.
구글과 애플이 각각 밀고 있는 코틀린과 스위프트가 200만 명 부근으로 세를 늘리고 있고, 고(Go), 루비, 러스트 등이 150만 명 선에서 혼전중인데, 각각 신세대 앱 개발자와 신세대 서버 개발자의 모수를 나타내는 듯 흥미롭다.
사실 개발자들은 인간의 언어처럼 하나의 언어에 집착하거나 구애받지 않는다. 언어란 그저 세상의 수수께끼를 풀기 위한 도구일 뿐이다.