이 블로그 검색

2015년 11월 12일 목요일

함수형 언어 하스켈 와이리 어렵노..

하스켈을 배워보고자 책을 사보고 인터넷으로 튜토리얼들을 찾아보고 한지 벌써 1년가량 된듯하다. 아.. 하지만 정말 정말 어렵다. 예전에 C언어를 공부할때에도 많은 사람들이 좌절한다는 포인터가 이렇게 어렵게 느껴지지는 않았는데 하스켈은 정말이지 어렵다.
하스켈을 마스터 한다고 해서 굳이 나에게 커다란 이익을 가져다 줄지는 사실 의문이다.
함수형 언어가 요즘의 핫한 이슈이기도 하고 많은 다중 패러다임 언어에서 함수형 언어의 개념들이 차용되어가는 추세이다. 람다, 클로저, 병렬성과 같은 것들이 그럴것이다.
그렇다면 함수형 언어의 장점과 객체지향언어가 적당히 버무려진 파이썬, Go언어, Swift, D언어 같은 것들을 마스터하는 편이 현실적으로 봤을때 좋다고 머리로는 생각하고 있지만 여전히 나는 하스켈책을 펼쳐들고 어떻게든 이해해보려고 골머리를 썩는 중이다.
사실 많은 사람들이 어렵다고 얘기하는 C언어의 포인터 개념은... 내가 배운지 오래되서일까? 어렵다고 느껴본적은 사실없는데 하스켈에서 많은 사람들을 좌절시키는 모나드.. 이 모나드라는 것이 의미를 모르고 사용한다면 그저 절차형 언어처럼 사용할 수 있는 신택틱 슈거정도 이지만 그 한줄에 하스켈의 모든철학이 들어 있다고 할 정도로 정말 오묘한 물건이고 그만큼 이해하기도 어려운것 같다. 순수한 함수형 언어 하스켈.. 글쎄 이렇게 인기가 없는걸 보면 실용적이지 않을수도 있다. 많은 사람들이 새로운  개념에 대해 신기해 하며 한번쯤 도전해보는 실험적 언어 일수도 있다. 스몰토크가 그러했고 리스프가 그렇다고 생각한다. 다른언어들에 엄청난 영향을 주었지만 정작 그 언어들은 인기가 바닥을 치고 그 언어에서 파생된 여러가지 개념들은 결국은 다른언어를 통해 적당히 버무려져 활용되고 있으니 말이다.
하지만 하스켈은 좀 다를것이라는 막연한 생각이든다. C/C++만 다루다 처음 파이썬을 접했을때의 신선함, 간결함등에 큰 영감을 받았었고 파이썬 프로그래밍이 너무나 재미있다고 느껴졌었다. 파이썬의 첫 느낌이 마치 신세계를 발견한 듯한 느낌이라면 하스켈을 처음 접했을 때의 느낌은 다른차원의 세상으로 온듯한 느낌이다. 내가 모르는 미지의 영역이 광활하게 펼쳐져있는 느낌이 정확하다. 왠만한 언어들은 굳이 배우지 않아도 그 의미를 알수 있고 알고리즘을 이해할수 있다.
하지만 하스켈은 다르다!! 아마도 컴퓨터 프로그래밍을 처음 접했을때의 느낌을 고스란히 느낄수 있을것이다. 내말이 맞는지 틀린지 궁금하신 분들은 도전해보라. 그리고 그 가치는 충분히 있을거라고 생각한다. 요즘 같은 멀티코어 시대에 걸맞는 언어는 함수형 언어라고 많이들 얘기하곤 한다.
하스켈이 가지고 있는 순수한 함수형 언어의 여러가지 문화들~ 람다, 커링, 패턴매칭, 타입클래스, 펑터, 모나드, 모노이드, 불변성, Software Transactional Memory등등.. 이 모든걸 이해했을때 아마도 나는 좀더 성장해 있을거라 믿어본다.

댓글 없음:

댓글 쓰기