#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 를 먼저 배우기 싫다면 하스켈을 먼저 배워보십시오. 하스켈이 더 적성에 잘맞을 수 있습니다.
20 CoffeeScript
- 아까 잠깐 언급했드시, 자바스크립트 류 입니다.
- 컴파일하면 자바스크립트가 되는 언어입니다.
- 자바스크립트 버전이 6로 올라가면서 (ECMA6) 브라우저에서 이를 돌리지 못하는 경우가 많아서
ECMA6 도 ECMA5 로 컴파일(?) 해주는 상황입니다.
20 Lua
- 공동 20위군요.
- 써본적이 없어서 뭐라 쓸 말이 없습니다. 루아 프로그래밍이라는 책을 본것 같긴 한데, 읽지는 않았습니다.
20 Matlab
- 공동 20위
- 제어 분야에서 많이 사용되는 도구라는 것만 알고 있습니다.
이 밖에 관심을 가질만한 언어는 Erlang 과 Closure 입니다.
Erlang
- 병렬처리에 강하다고 하며 프로그래밍이 쉽다고 합니다.
- Seven languages in seven weeks (https://pragprog.com/book/btlang/seven-languages-in-seven-weeks) 에서
소개하는 언어 중 하나입니다. (Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby)
Clojure
- 이더리움 메신저를 개발하고 있는 Status.me 에서 사용하고 있는 언어로 함수형 프로그래밍 언어입니다.
- 클로저가 뭐냐는 질문은 가끔 면접에 나옵니다.
저는 알지만 잘 설명하지 못합니다. 키워드는 "동적언어", "함수형 프로그래밍", "함수의 실행 환경을 저장" 이런 용어가 들어가면 될 것 같습니다.
방금도 자바스크립트 프로그래밍 하다가 클로저 때문에 버그가 하나 발생해서 원인만 찾았습니다.