다음 언어

photo-1416339134316-0e91dc9ded92

나름 내 노트북 상판에는 PyCon 2014라는 스티커가 붙여져 있다. 파이썬을 배우기로 마음 먹었던 이유는 파이썬의 간결함에 반해서였는데, 나는 {} 가 없으면 불안해하는 사람인 것 같더라. 영 불안해서 못 써먹겠다는 깨달음을 얻은 뒤에는 간단한 코딩도 무겁고 느린 IDE를 키는 번거로움을 감수하고 굳이 Java로 해왔던 때가 있다. 간단한 코딩을 간단한 환경에서 하지 못하다니. 하지만 요즘 들어서는 Javascript + Node 조합으로 아주 요긴하고 간단하게 코딩하고 있다. 난잡함과 한 끝 차이로 떨어지는 자바스크립트의 ‘자유로움’은 간단하게 스크립트 짤 때에 정말정말 좋더라고.

 

대규모 프로젝트에 더 좋다는 타입스크립트도 사실 ‘배운다’는 느낌은 없었다. 그냥 예제나 튜토리얼 보고 ‘이렇게 쓰면 되는구나’ 싶은 간결한 언어. 그래서 요즘 다음 언어로 무엇을 배워볼까 고민 중인 것. 일단 전통의 강호 C, 항상 배워봐야지 했던 Scala, 그리고 한 번도 안해본 R. 이 세 가지 언어 중에서 고르는 것으로 생각을 했는데, 일단 각각의 이유는 다음과 같다.


 

 

1) C

정말 단순하고 원초적인 2가지 이유가 있다. 나중에 복학해서 들을 운영체제 수업에서 리눅스를 다루며 사용할 언어라는 것과 현존하는 가장 빠른 언어라는 것. 하지만 요즘 C로 짤 수 있는 프로그램은 당연히 다른 언어로도 짤 수 있으니, 과연 내가 그렇게 미션 크리티컬하거나 타임 크리티컬한 프로그래밍을 할 일이 많을까. 그래픽스 수업을 들으면서 C/C++로 코드를 깁던 그 정도 실력만 있으면 사실 끝나지 않을까.

그럼에도 불구하고 끌리는 이유는 Node의 컴퓨팅 파워가 굉장히 떨어지는 편이기 때문에, 그런 부분은 네이티브하게 작성하라는 조언 때문. 얼마나 많은 서비스에서 V8 엔진의 컴퓨팅 파워의 한계를 시험하게 되는가는 차치하고 해놓아서 나쁠 건 없는 언어인 느낌. 인문학에서도 ‘고전’의 중요성을 항상 역설하는데, CS에서 고전이라 함은 역시 ‘C’니까 ㅎㅎ. (LISP: 뀨?)

 

2) Scala

C의 대단한 컴퓨팅 파워의 이면에는 포인터 지옥이 기다리고 있다. 날 프로그래밍에 눈 뜨게 만든 언어가 아무래도 Java이다 보니까, 메모리 관리하는 것에 막연한 두려움을 가지고 있다. C와는 다르게 Scala는 꽤 괜찮은 성능에 적당한 생산성을 가진 언어이며 ‘마이너한 프로그래밍 언어 중에는 가장 인기있는’ 와 같은 욕인지 칭찬인지 모를 수식어가 붙는 특징이 있는데, Scala의 수비범위가 생각보다 꽤 넓더라고. 웹에서 부터 빅데이터까지! 하나 더 덧붙여, 객체지향 프로그래밍 언어로 인해 명사적인 사고밖에 하지 못하는 내 두뇌에 동사적 사고를 불러올 거라는 근본없는 희망..ㅎ에 힘입어 이 리스트에 올랐다.

장점이자 단점은 JVM위에서 돌아간다는 것. 그래서 아무래도 C 처럼 간단하게 그 때 그 때 필요할 때 마다 불러서 쓰기에는 오버헤드가 크다는 점. 그래도 끌리긴 끌려. 멀티코어에 강점을 보인다는 것 이외에도 일단 언어가 섹시하잖아!

 

3) R

예전에 멘토 세미나 수업에서 코딩쇼를 봤던 바로 그것이다. 이클립스에서 뚝딱뚝딱 해내는 모습이 굉장히 신기했는데, 일부 표본 데이터로 가설을 세워서 실제 데이터의 결과를 예측하는 거였는데, 생각보다 굉장히 간단해 보였다. 물론, 보자마자 따라할 수 있겠네ㅋ 이 정도는 절대 아니지만 러닝커브가 커보이지 않았다. 작년 가을학기에 들었던 수업인데도 불구하고 아직까지 강사님의 한 마디가 R를 리스트업 시켰다. 예전에 처음 OOP가 소개 되었을 때만 해도 다형성, 상속과 같은 단어만 말해줘도 ‘우와 저사람 OOP할 줄 아나보다..’ 했었는데 지금에 와서는 못 쓰는 사람이 없지 않느냐. 머쉰러닝과 데이터 마이닝도 그럴 것이라고 본다.학부에서도 배우는 확률통계, 적당한 클러스터링, Decision tree 생성 등등을 기반으로 한.. 의외로 꽤 간단한 셋업을 통해 대단한 결과를 볼 수 있었다.  물론, 충분한 데이터가 있어야 하는 것지만 ^^7

 


그 외에도 OpenCL과 같은 GPGPU 프로그래밍에도 관심이 있지만, 당장 혼자서 독학하기에는 굉장히 버겁게 느껴지는 것은 함정. 이전 블로그에서 잠깐 썼었는데 작년 여름방학 쯤에 서울대 멀티코어 프로그래밍에 지원했었고 가볍게 떨어졌다. 하하 인생 시발!

사실 언어가 문제가 아니라 알고리즘이 기본기 아닌감? 그래서 예전에 사놨던 종만북을 공부해야하나 고민 중이다. 비싼 돈 주고 산 책인데 한 번도 안 돌려보다니. 그래서 위 언어 하나 잡아서 종만북과 연계하는 것은 어떨까도 생각해봤지만, 그럼 R이 삐질 것 같은 느낌?

그냥 아싸리 파이썬이나 다시 잡아볼까? 아니야 더 이상 스크립트 언어는 아니야. 자바스크립트로 충분해.

그래! 이렇게 된 이상 수학이나 공부하자!

이런 개소리를 거치며 3개 언어를 리스트업 했으니, 하나 정해서 다음 주 부터 시작하려고!! 이렇게라도 말 안하면 6월에도 미적미적 거리다가 하반기부터 시작할 것 같은 불안감에 주절주절.

 

One thought on “다음 언어”

Leave a Reply