관리 메뉴

HAMA 블로그

재미로보는 언어 학습 난이도 지표 본문

소프트웨어 사색

재미로보는 언어 학습 난이도 지표

[하마] 이승현 (wowlsh93@gmail.com) 2016. 9. 1. 11:14


서양 사람들 눈에 비친 언어의 학습 난이도 (learning curve) 순위에 
당당히 한국어가 가장 어려운 언어로 뽑혔던 기사가 있었었죠.  (중국어도)   관련정보가기

그럼 프로그래밍 언어는 어떨까  생각해서 끄적여본게 아래..

배우기도 쉽고 사용하기도 쉽다 : 파이썬
배우기는 쉬운데 사용하기는 어렵다 : C 
배우기는 어렵고 사용하기는 보통 : Scala
배우기도 어렵고 사용하기도 어렵다 : C++
배우기 보통 사용하기 보통 : 자바,스위프트,Go

배우는것도 아리송하고 사용하기도 아리송하다 : Javascript 
참고 -> 심심풀이 자바스크립트 퀴즈 http://hamait.tistory.com/465


근데 사실 표본이 불명확하고 ( 얼만큼 해당 언어를 공부했고, 어떤 플젝을 했고)
쉽다라는 표현도 불분명 (사용성? 편리성?  사용층?) 해서 그냥 재미로 보시고.. 
회사에 와서 다른 사람들 생각을 검색을 좀 해보니  몇개가 있긴하네요.

https://github.com/Dobiasd/articles/blob/master/programming_language_learning_curves.md
https://generalassemb.ly/blog/the-8-most-in-demand-programming-languages-of-2016/
http://blog.8thcolor.com/en/2013/03/do-not-fall-in-the-learning-curve/


그래프 아래의 코멘트는 저의 개인적 해석입니다. 

자바스크립트 :
경험이 쌓이다가 콜백을 다루기 시작하면서 부터 생산성은 떨어지고 , 우쭐대는 감정은 올라간다.
깊게 사용하기 시작하면서 발생하는 직관적이지 않은 더티한 모습을 꼬집는게 아닌가 싶은..
 

자바 :
생산성은 언어에 익숙해질수록 높아지다가 디자인패턴을 알게되고 적용해야지 하는 순간부터 생산성은 
별차이없어지고 (패턴으로 나눈다는거 자체만으로도 엄청난 정신노동) 커플링을 없애고, 
함수도 쪼개는등 리팩토링을 통해 자기만족도는 높아진다.

 

C++:
경험이 쌓여도 생산성은 쬐금씩 올라가지만.. 근데 자부심은 이상하게 높다.
근데 템플릿을 만나고 깊이 있게 바라보려하는 순간부터 좌절을 함.
템플릿을 정복하는 순간부터 자부심은 하늘을 찌르고~
그 후에 C++ template meta progrmming
, Modern C++Design 을 이해못해서
다시 그래프가 떨어져야하는데 그건 없군요 ㅎㅎ

 

파이썬:
경험이 쌓일수록 꾸준히 생산성도 증대하고 만족도도 증대함. 뒤통수 치는 포인트가 딱히 없음.
유닛테스트 야그는 동적타입의 약점으로 인한 뒤통수를 방지하는 순간
디버깅하느라 빼앗긴 시간을 생산성으로 돌릴 수 있다는 뜻. 

 

LISP:
경험이 쌓일수록 꾸준히 생산성도 증대대고 만족도도 증대함.  매크로를 활용하는 순간부터 좀 더 좋아짐.
 

하스켈:
경험이 쌓여도 x 같은 외계개념들 때문에 생산성도 제자리.. 그 개념 하나 익힐때마다 자신감은 솟지만
바로 이어지는 다른 개념에 좌절..어느정도 정복하고 자신감이 높아지던 찰라, 모나드를 만나서 다시 좌절모드... 카테고리 이론에서 다시 좌절.. 모든걸 극복하면 생산성은 극대화 ;;


PHP:
자기 만족도가 높다.

Comments