어떤 프로그래밍 언어를 배워야할까? 소프트웨어(SW)를 개발하는 사람이라면 항상 관심을 가질 수 밖에 없는 주제다. 학생은 물론 프로 개발자도 마찬가지다. 언어 스킬이 앞으로 커리어에 상당한 영향을 미칠 수 있기 때문이다.
물론 정답은 없다. 그래도 힌트를 얻고 싶은 사람들을 위해 미국 지디넷의 칼럼리스트 데이비드 게위츠(David Gewirtz)의 “어떤 프로그래밍 언어가 가장 인기있나(☞링크)”라는 글을 소개한다.
데이비드 게위츠는 온오프라인에서 프로그래밍을 가르치는 일을 약 20년 간 해왔고, 현재는 UC버클리 학생들을 가르치고 있다. 그의 전공 분야는 언어 디자인(language design)으로, 쉽게 새로운 언어를 학습할 수 있고 약 20개 이상의 언어를 사용할 수 있다고 한다.
그는 칼럼에서 어떤 언어가 인기 있는지를 분석하고 이를 기반으로 나름의 추천 언어를 선정했다.
■어떤 프로그래밍 언어가 인기 있을까?
언어 인기도를 측정할 수 있는 사이트는 꽤 많다. IEEE 스펙트럼(IEEE Spectrum)은 구글 검색, 깃허브, 스택오버플로우, 레딧, 구인구직 사이트 등 다양한 소스에서 인기 언어를 집계한다. 구직사이트, 오픈소스 커뮤니티, 구글 트렌드 등 각각 소스에 가중치를 더한 랭킹을 살펴볼 수 있다. 사이트 이용자가 직접 가중치를 달리해서 인기 언어를 뽑아 볼 수도 있다. 코딩 도조(Coding Dojo)는 구직 검색 엔진인 인디드닷컴(Indeed.com)에서 통계를 집계해 차트로 보여준다. 티오베(Tiobe)는 검색엔진을 통해 인기 언어를 집계해오고 있다. 또 PYPl는 구글에서 어떤 언어의 튜토리얼이 얼마나 많이 검색되는지를 집계해 언어 인기도 순위를 공개하고 있다.
[☞참조링크: IEEE스펙트럼 탑프로그래밍 언어 2016]
[☞참조링크: 코딩 도조 가장 인기있는 프로그래밍 언어 9가지]
이들 사이트에서 인기 있는 언어를 순위별로 정리해 표로 만들면 아래와 같다.
데이비드 게위츠는 이 표에서 각 언어가 몇 위에 몇 번 위치했는지를 고려해 하나의 차트로 만들었다. 이렇게 차트를 만들고 보니, 인기도에 따라 3개 그룹으로 나눠지는 것을 확인할 수 있었다. (통합 차트를 만들 때 코딩 도조 순위는 제외했다. 인기 언어 순위를 9개 밖에 제시하지 않았기 때문이다.)
1그룹엔 자바, C, 파이썬, C++이 포함됐다. 2그룹엔 자바스크립트, C#, PHP, 스위프트가 3그룹엔 오브젝티브-C, R이 들어갔다.
■이 표는 무엇을 의미하는가?
데이비드 게위츠는 이렇게 정리해 보니 각 그룹마다 특징을 발견할 수 있다고 했다. 1그룹 언어들은 매우 보편적인 언어로, 특정 플랫폼에 상관 없이 적용할 수 있다는 게 특징이다. 2그룹은 특정 플랫폼을 위한 언어들이다. 자바스크립트나 PHP는 주로 웹 개발 언어이고, C#과 스위프트는 각각 마이크로소프트와 애플 플랫폼을 위한 언어다.
그는 인기 언어가 1그룹과 2그룹으로 나눠지는 이유에 대해 “(뭔가 개발할 때) 한 개 언어만 사용하는 게 아니기 때문”이라고 설명했다. 파이썬이나 C언어를 잘 다룬다고 해도, 워드프레스 플러그인이나 테마를 프로그래밍하려면 자바스크립트와 PHP를 쓸 줄 알아야한다. 어떤 한 언어를 잘 다루는 것은 단지 퍼즐 한 조각을 가지고 있는 것에 불과하다는 얘기다.
■어떤 언어를 배워야 하나?
그럼 다시 본론으로 돌아가자. 어떤 언어를 배워야 할까. 데이비드 게위츠가 정리한 표를 보면, 'C-패밀리들'이 인기가 많다. 자바, C++, C, C#, 심지어 오브젝티브-C까지, 모두 C기반 언어다. 단 하나의 언어만 배우겠다고 하면, 이 중하나를 선택하는 것이 좋을 것이다.
데이비드 게위츠는 자바나 C++을 추천했다. "이 둘을 배우면 나머지 C패밀리에 접근하기 쉽기 때문”이라고 한다.
하지만, 앞서 얘기한 것처럼 한 가지 언어만 배워선 실전에서 충분치 않다. 데이비드 게위츠는 “IT산업은 산업은 너무 빠르게 변하고 있다. C같이 오래도록 사용되는 언어도 있지만, 스위프트 같이 몇 년 만에 빠르게 인기 언어로 자리잡은 것도 있다. 즉, 지금 알고 있는 언어가 전체 커리어를 이끌어가기엔 충분하지 않을 수 있다는 말이다. 그래서, 언어를 배우는 것만큼이나 '언어학습 방법'을 배우는 것이 중요하다. 가장 좋은 방법은, 하나 이상의 언어를 배우는 것이다.”고 조언했다.
그는 그러면서 C ++ 또는 자바 중 하나를 선택하여 학습한 이후, 자바스크립트를 배우길 추천했다. 데이비드 게위츠는 "웹 기반 응용 프로그램이 점점 더 늘어나고 있고, 이에따라 훌륭한 자바스크립트 스킬에 대한 수요도 늘어나고 있다"고 강조했다.
그는 자바스크립트를 배운 다음, “자신이 하고 싶은 일에 따라” PHP, 스프위트, 파이썬 중 하나를 선택해 익히라고 조언했다.
관련기사
- 모질라 'C++ 대체 언어', 새 파이어폭스로 확산2017.01.01
- 애플, 스위프트 개발언어 오픈소스로 공개2017.01.01
- 요즘 뜨는 프로그래밍 언어는?2017.01.01
- "애플 개발언어 스위프트 유례없는 성장"2017.01.01
그의 조언을 정리하면 이렇다. 1단계로 자바나 C++중 하나를 선택해 배운다. 2단계로 자바스크립트를 배운다. 3단계로 PHP, 스위프트, 파이썬 중 하나를 선택해 배운다.
그는 “이렇게 3단계에서 각각 하나씩만 잘한다면, 앞으로 다른 언어나 프레임워크를 쉽게 선택할 수 있게 될 것”이라고 말했다.