프로그래밍 언어 랭킹

in #kr-dev7 years ago (edited)

#kr-dev 에 언어 강좌들이 많이 생기고 있네요...
저도 하나 할까 했는데 그만 두어야 할 것 같습니다.
대신 댓글을 많이 달고 있습니다.

프로그래밍을 처음 시작하려고 할 때, 어떤 언어를 먼저 배울까 고민을 많이 합니다.
그래서 가장 많이 쓰는 언어 랭킹을 소개합니다.

The RedMonk Programming Language Rankings: June 2017
http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/

세계 최대의 소스 저장소인 Github 와 세계 최대의 개발자 커뮤니티인 Stack Overflow 를 조사해서 작성한 언어 랭킹입니다.
가로는 Github popularity, 세로는 Stack Overflow popularity 입니다.

랭킹 Top 20 입니다.

1 JavaScript

  • 웹브라우저에서 간단한 프로그래밍을 하고자 도입된 언어였습니다.
  • 정말 지저분하다고 해서 그 지저분한 사례를 모은 WTF 사이트가 있을 정도였습니다.
  • 지금 정말 사랑 받는 이유는 "Every thing goes WEB" 이기 때문입니다.
    Front End 에서 이와 대항했던 VBScript, ActiveX, Adobe Flash 모두 갔고, 너무나 많은 FE Framework Lib 가 넘쳐납니다.
    BackEnd 까지 자바스크립트로 하겠다고 난리입니다. (Node JS)
  • 하지만 초심자가 너무나 쉽게 접근했다가 상처받기 쉬운 언어입니다.
    디자이너도 자바스크립트를 할 수 있다는 광고는 제 생각에는 스캠입니다.

2 Java

  • 한국에서 너무나 유명한 자바~~~
    정부차원에서 자바 100만 대군 양성 후 개발자의 수준이 너무 떨어졌다는 비평도 있었습니다만,
  • 서버 프로그래밍의 대명사였다가 안드로이드가 뜨면서 너무나 어려워진 언어이기도 합니다.
  • 자바 8 이 되면서 이건 자바도 아니다라는 우스개 소리가 들리기도 합니다.

3 Python

  • 그냥 막짜도 어느정도 돌아가는 가장 무난한 언어입니다.
  • 서버 프로그래밍, 과학 기술용 연산, 빅데이터 분석 등 두루두루 쓰입니다.
  • 초보자가 배우기 좋은 언어로 강력히 추천받고 있는 언어입니다.

4 PHP

  • 한 때, Apache, PHP, MySql 3종 세트에 포함되어 웹 프로그래밍을 대명사였습니다.
  • 지금은 한물 갔다고 하는 사람들도 있지만, 실리콘 벨리에서 은근히 많이 사용합니다.
  • 옛날 PHP 를 기억하는 분들은 최근 PHP 프레임워크를 보면 상전벽해, 허무감이 몰려올지도 모르겠군요.

5 C#

  • MS 에서 만든 언어로 그 문법이 자바와 유사하기도 합니다.
  • .NET 기반으로 프로그래밍 할 때 꼭 쓰는 언어라 랭킹이 5위인가 봅니다.
  • 국내에선 그다지 인기가 없는 듯 하지만 Delegate 과 같은 좋은 구조를 가지고 있는 언어입니다.

6 C++

  • 세상에서 가장 배우기 어렵고 난해한 언어입니다.
  • 국내에서 C++ 좀 하는 사람은 아쉽게도 거의 없습니다. 왜냐하면 자바가 더 대우를 받기 때문입니다.
  • 대학 커리큘럼에 포함되기도 하는데, 교수님들도 잘 알고 하시는지 모르겠습니다.

7 CSS

  • 와 이것도 언어냐?
  • 실제로 해보면 맨붕입니다.
  • 어렵진 않습니다만, 참신한 아이디어가 많이 필요합니다.
  • 어떤 사이트에 들어갔는데 "이거 자바스크립트겠지" 했는데 알고 보니 "CSS" 였을때 자괴감이 듭니다.
  • 요즘은 컴파일도 한답니다. (less)

8 Ruby

  • Ruby on Rails 라는 웹 프레임워크가 있습니다. 한 때 무진장 인기였지만, 지금은 좀 사그러들었나요?
  • 이거 잘하면 외국에서 고액 연봉 받는 다는 소문이 있습니다. 이유는 개발자가 희귀해서가 아닐까요?

9 C

  • 시스템 프로그래밍 하는 사람들 아니면 그다지 권하지 않습니다.
  • 프로그래머에 따라서 너무나 쉽게 그리고 암호 수준의 코딩이 가능합니다.
  • 배우는 이유는 폰노이만 컴퓨터 구조를 잘 이해할 수 있기 때문입니다. (메모리와 포인터)

10 Objective-C

  • iOS 계열 프로그래밍 환경인 XCode 에서 쓰는 언어입니다.
  • 함수형 개념을 잘 도입한 객체지향형 언어입니다.
  • 아이폰 개발자들이 많이 쓰는가 봅니다.

11 Swift

  • 이건 써본적이 없어서... 패스
  • 아이폰 개발시 Object-C 보다 더 쉽다고 합니다.

12 Shell

  • Shell script 를 의미하는데, 생각보다 매우 어려운 프로그래밍입니다.
  • 리눅스 시스템 관리자라면 잘 알아야 하며, 리눅스 프로그래머도 필수
  • 너무 암호같아서 구글링 해서 겨우겨우 읽을 정도입니다.

12 Scala

  • 가장 좋은 것은 다 집어넣었다 하는 언어입니다.
  • 요즘은 함수형 프로그래밍을 배울 때 시작하기도 합니다만, 매우 어렵습니다.
  • 좋은 점은 JVM 기반의 언어라는 것입니다. (컴파일 하면 class 파일이 생성되며 JVM 상에서 돌아감)
  • 도전을 추천합니다. (7전 8기 도전정신)

14 R

  • 통계, 데이터 처리 등에 쓰이는 언어입니다.
  • 안써봤지만, 써본 사람은 매우 좋다고 합니다.

15 Go

  • Google 에서 만든 야심작으로 C 와 같은 시스템 프로그래밍을 할 수 있습니다.
  • 이 언어도 가상머신에서 동작합니다.
  • Ethereum geth 는 go 로 만든 프로그램입니다.

15 Perl

  • OSCON 과 같은 학회에 가면 60대 프로그래머들이 있는데, 그 분들이 주로 쓰는 언어라 하는데,
  • 그렇지 않습니다. 저도 몇번 써봤습니다.
  • 도무지 문법이 외워지지가 않는군요.
  • Shell script 를 배운 분이라면 자연스럽게 배울 수 있지 않을까 생각됩니다.

17 TypeScript

  • MS 에서 만든 자바스크립트로 번역되는 언어입니다.
  • 자바스크립트가 워낙 개판이라 이걸로 짜면 자바스크립트로 번역해 줄께 하는 언어입니다.
  • 아래 Coffeescript 도 비슷하게 동작합니다.

18 PowerShell

  • 이거 윈도우에 있는거 맞나요?
  • 한번 본적이 있는데 이것도 잘 쓰면 파워풀 할 것 같습니다.
  • 윈도우에서 자동화 하는데 도움이 될 것 같기도 하지만
    저는 윈도우에서 이런 짓을 하진 않으므로 패스

19 Haskell

  • http://learnyouahaskell.com/ 에서 무료로 책을 볼 수 가 있습니다.
  • 귀여운 코끼리를 보고 혹해서 배울 수 있지만, 가벼운 맨붕은 물론 무거운 맨붕도 경험할 수 있는 코끼리입니다.
  • 하스켈은 순수 함수형 언어입니다.
  • C 를 먼저 배우기 싫다면 하스켈을 먼저 배워보십시오. 하스켈이 더 적성에 잘맞을 수 있습니다.

haskell.jpg

20 CoffeeScript

  • 아까 잠깐 언급했드시, 자바스크립트 류 입니다.
  • 컴파일하면 자바스크립트가 되는 언어입니다.
  • 자바스크립트 버전이 6로 올라가면서 (ECMA6) 브라우저에서 이를 돌리지 못하는 경우가 많아서
    ECMA6 도 ECMA5 로 컴파일(?) 해주는 상황입니다.

20 Lua

  • 공동 20위군요.
  • 써본적이 없어서 뭐라 쓸 말이 없습니다. 루아 프로그래밍이라는 책을 본것 같긴 한데, 읽지는 않았습니다.

20 Matlab

  • 공동 20위
  • 제어 분야에서 많이 사용되는 도구라는 것만 알고 있습니다.

이 밖에 관심을 가질만한 언어는 Erlang 과 Closure 입니다.

Erlang

Clojure

  • 이더리움 메신저를 개발하고 있는 Status.me 에서 사용하고 있는 언어로 함수형 프로그래밍 언어입니다.
  • 클로저가 뭐냐는 질문은 가끔 면접에 나옵니다.
    저는 알지만 잘 설명하지 못합니다. 키워드는 "동적언어", "함수형 프로그래밍", "함수의 실행 환경을 저장" 이런 용어가 들어가면 될 것 같습니다.
    방금도 자바스크립트 프로그래밍 하다가 클로저 때문에 버그가 하나 발생해서 원인만 찾았습니다.

@minari 님 php 동네북 아닙니다.

Sort:  

c# 이 5위네요, stratis때문에 관심을 갖게 되었는데, 생각보다 많이 사용되고 있군요.

MS 의 힘입니다.

It is a great post. Thank you for sharing with us. Keep posting.

Thank you... you want English version?

No i can translate it...

Nice post!

Thank you, need English version?

No thank you. I used the google translator :)

강좌 게시글에 댓글 달아주셔서 제가 올린 내용에 대해서 다시 생각해보게 되서 좋은것 같아요.
감사합니다!
그리고 Swift를 조금 배워서 현재 프로젝트 진행중인데 신세계네요.
초보자들도 쉽게 접근할 수 있을만큼 쉽게 만들어졌습니다.
하지만 초입은 쉬운데 뒤로갈수록 기능 구현이 힘들어서 방학때 열심히 파봐야겠어요ㅋㅋㅋㅋ

갈 수록 어려운게 어떤 것이 어려운 것인가요?
언어나 라이브러리가 어려운것인지? 아니면 실제 구현해야할 대상이 복잡한 것인지?
개발 어려움에 있어서, 전자는 비본질적 속성으로 쉽게 극복됩니다. (스킬 레벨업이 가능합니다)
후자는 현실세계의 복잡함을 반영하는 본질적 속성으로 극복하기 쉽지 않습니다. (원래 인간사나 관계가 다 어렵습니다)

제 경우에는 전자와 후자가 고루 섞여있는 케이스 같네요! 그래도 다른 언어보다는 스토리보드를 활용할 수 있어서 그런지 확 와닿는 것 같아서 좋습니다.

좋은 내용이네요 감사합니다 ^^

감사합니다. 자주 놀러와 주세요.

좋은글 감사합니다.
저는 python 에 도전해보려고 합니다.
귀여운 코끼리에서 빵터졌네요 ㅎㅎ

Please be careful...

python1
1.혼(spirit)2.악마나 귀신이 들린 사람3.(pythons) (속어) 크고 잘 발달된 이두근4.악마(demon)
python2
비단뱀

코끼리가 더 나을 수도 있어요....

@kdj 님은 어떤 언어를 좋아하시나요?

좋아하는 것은 파이선, 스칼라지만,
자바스크립트 류를 더 좋아해야 할것 같아요... ^^

올해 초에 python을 공부했는데, 리눅스가 아니면 안되는 라이브러리가 제법 있어서 node.js를 한번 배워볼까 하는데, 1위 언어가 javascript라니 대단합니다. 언어개발자가 마땅한 언어명이 떠오르지 않아서 java를 흉내내 만들었다고 들었는데, 좀 더 멋진 이름이었으면 좋았지 않나 싶습니다 ^^
뭔가 새로운 언어를 배우는 사람이 통과의례처럼 php를 한번 까고 시작하는 글을 많이 봐서 약간 분노상태이긴 합니다만.. 트렌드가 어쩔수가 없네요. php가 초심을 잃고 modern php로 완전히 바뀌고 있는것 같은데, 전 그냥 php를 만든 사람이 처음 원하던 personal한 스크립트에서 머물렀으면 좋겠다는 생각을 하거든요. 사실 php는 linux 쉘 스크립트와 거의 같기도 합니다. 물론 마소빠였던 저는 개인적으로 VB6.0이 없어진게 제일 아쉽구요 ㅎㅎㅎ

@minari 님 의 한숨을 듣고 저 글을 한숨에 작성했습니다. ^^

리눅스가 안되는 라이브러리가 있으면 리눅스를 쓰시길 권해드립니다.
저는 윈도우 안쓴지가 넘 오래되서... (온리 인터넷 뱅킹, 정부사이트 방문용입니다)
리눅스에서 파이선 쭉 하세요.. 하나를 제대로 하는 것이 중요합니다.

프로그래머들이 거의 사용하는것들이 역시 랭킹 상위를 다 차지하고 있네요^^ 랭킹이 낮다고 배제 할수는 없는거 같군요

이 분야도 트렌디한 분야가 있고, 쭈욱 가는 분야가 있습니다.
Low level 쪽은 전혀 트렌디 하지 않은 분야고,
웹은 정말 트렌디 한 분야입니다.

파이썬 넘나 편한 것 같습니다. 매트랩이 있으면 그걸 써도 되겠지만 아무래도 비싸서 ㅠ.ㅠ plotting 기능도 편하고 각종 수치해석 기법 라이브러리도 풍부해서 진짜 쓰기 좋은거 같습니다.

저는 C++, PHP, Java, Scala, Ruby, Javascript, Swift 등의 언어를 써왔고 지금도 프로젝트에 따라 적합한 언어를 쓰면 그만이라고 생각하는데요, 개인적으로 Ruby와 Swift에 가장 정이 갑니다.

Ruby는 국내에서도 스타트업 위주로 많이 사용합니다. Rails 자체가 풀스택으로 가장 빠르게 프로토타이핑을 하는데에 있어서 강점이 있는 프레임웤이기도 하고, 수많은 프레임웤이 난립하는 PHP와 달리 Ruby쪽은 Rails로 통일되어있기에 유지보수가 잘 되어 그냥 바로 가져다 쓸 수 있는 퀄리티 좋은 라이브러리가 많이 있기때문입니다.

물론 스케일 문제로 어느정도 분산 처리가 요구되는 시점에서는 Node.js나 Scala등의 스택으로 많이 넘어가기는 합니다 (분산처리에 적합하지 않다는건 Python이나 PHP등의 전통적인 백앤드 언어 / 프레임웤들이 가지고 있는 공통적인 문제이기는 합니다.)

Ruby 개발자들의 평균 연봉이 높은건.. 대부분의 Ruby 개발자들이 Ruby를 처음 시작했다기 보다는 다른 백엔드 언어 (PHP, Java)등을 하다가 넘어가는 경우가 많으며 (평균 경력이 깁니다) Ruby 의 아름다운 문법을 사랑하는 사람들이기에 개발자들의 평균적인 퀄리티가 높다고 생각합니다. (실제로 많은 사람들이 Ruby를 추천하는 이유가 바로 quality of developer community 입니다)

Swift는 제일 최근에 만들어진 언어답게 Objective-C, Scala와 Ruby 등의 디자인이 잘 된 언어들중에서도 그중에 장점만 잘 취합하여 만들어진 언어라고 생각합니다. 버전업이 너무 빨리되고 할때마다 backward incompatible이라 좀 귀찮기는 하지만.. 코딩 교육이나 프로그래밍을 처음 배우는 사람들이 쉽게 배울 수 있고, 결과를 아이폰 앱으로 바로 만들어 볼 수 있다는점에서 발전 가능성이 무긍무진하다고 생각합니다.

감사합니다. 고수님...
많은 지도 부탁드립니다.

베스트스팀 만든다고 이제서야 둘러보네요^^ 20위권 언어를 전부 다루신것 같습니다~ 능력자! ㅎㅎ 자바스크립트가 1위라니 놀랍기도 하고, 흔히 접하고 있지만 전문적으로 다루지 못해서 아쉽기도 합니다.

이미 5년전부터 쭈욱 1등을 달리고 있었습니다.

저는 이 중에 반 절 밖에 못 듣고 못 사용해봤네요ㅎㅎㅎ
앞으로 더 열심히 공부해서 다 사용해보겠습니다~!!

좋아요~

무슨 언어를 공부해야할지 어떤언어가 트랜드인지 감이안잡혔는데 이렇게보니까 확실히 정리되는것 같습니다!! 항상 코멘트로 지적과 덧붙임 글을 써주셔서 감사합니다!!^^