Land Of Lisp

Lisp 이라는 프로그래밍 언어에 대해서 들어보셨나요? 실무에 써보거나 공부할 기회는 거의 없는 언어라 할 수 있죠. 저 같은 경우는 1990년도에 S전자에 입사해서 첫번째 프로젝트가 AutoCAD의 DXF 포맷을  AutoLisp(요즘엔 VisualLisp 으로 바뀌었더군요) 을 이용해서 다른 CAD 포맷으로 변환하는 것이였습니다. 일종의 OJT 성 프로젝트로 했었는데 한달만에 끝내서 당시 과장님을 놀래켜드린적이 있었습니다만 그 이후에 Lisp 이라는 언어를 쓸 기회는 전혀 없었습니다. AutoLisp 을 쓸 당시에실제 이 언어의 강력함을 잘 알지 못하고 썼구요. 이게 Lisp 의 강점이기도 합니다만.

그런데 이러한 언어의 특성과 강점을 잘 설명한 책이 최근에 나왔습니다. 대부분 90년초에 나온 Common Lisp 책들이 대부분인데 요즘 같은 때에 Lisp 에 대한 책이라니… 그것도 요즘과 같이 객체지향언어가 판이 치는 시대에 말이죠.

우선 아래의 동영상을 보시기 바랍니다. 그리고 이 책을 홍보하는 홈페이지도 가보시면 정말 저자의 재치가 느껴집니다. 심지어 Lisp 을 주제로 만화책까지 만들어서 Lisp 의 특성을 홍보(?) 하는 노력을 하고 있습니다.  (홈페이지의 화살표를 따라가다 보면 보실 수 있습니다.)

올초 부터 틈틈히 책을 보고 있는데 emacs 와 sbcl 도 설치해보고 샘플코드를 실행해보면서 Lisp 언어에 대한 맛을 보고 있는데 생각보다 쉽지 않습니다. 익숙하지 않은 개발환경도 환경이지만 이미 OOP에 굳어버린 머리라 그런걸까요?

아! 그런데 왜 이딴 걸 보고 있냐구요? 그냥 재밌어서 보고 있습니다. 어렸을 때부터 몇가지를 꼭 다시 보겠다고 한 것 중에 하나가 바로 Lisp 과 Emacs가 들어있답니다.  실무에서는 결코 쓸 일이 없겠지요. 하지만 여러가지 생각을 하게 해줍니다. 마치 고전을 읽는 기분이라고나 할까요.  솔직히 다 읽을 생각보다는 한번 리프레쉬(!)를 위해서 읽기 시작했는데 챕터 하나하나를 Lisp 을 이용해서 텍스크기반의 게임을 만들어나가면서 풀어나가는게 매우 흥미롭구요.

마침 최근에 소개된  Lisp 의 dialect 중에 Java VM에서 돌아가는 Clojure 라는 언어가  있습니다. 더욱 흥미로운 것은 Hadoop 의 MapReduce 프로그램을 구현하고 실행할 수 있는 Clojure 기반의 라이브러리가 소개되어 있더군요.

프로그래밍 언어에 관심 있으신 분들에게는 Lisp 언어 공부 강추합니다.

Advertisements
이 글은 Books, IT 카테고리에 분류되었습니다. 고유주소 북마크.

Land Of Lisp에 1개의 응답

  1. 황순형댓글:

    Haskell은 어떠세요? 전 Lisp보다는 Haskell이 더 배워보고 싶은 언어더라구요~(근데 저에겐 너무 어렵네요 ㅠ.ㅠ)

    ps. 전 C류의 언어가 아닌 언어를 처음으로 접해본게 엔버전스 있을 때 Scheme이었죠. 그때 SICP 첨으로 읽어봤거든요. 근데 아직도 끝까진 못 읽었네요^^

    • kimws댓글:

      Hackell 은 나도 잘 모르겠네요. Pure Functional Language 라는 정도밖에는. Erlang 을 잠깐 들여다보다가 문법들이 눈을 빙글빙글 돌게 해서 그만 둔 경험만 있고. Scheme 이든 Common Lisp 이든 비슷한 것 같고. C언어 꽂혀 사는 사람들은 Lisp 을 보면 많이 갸우뚱할 것 같지만 암튼 사고 전환에는 많은 도움이 될 듯 싶어요. SICP 는 언어에 대한 책이 라기보다는 사고를 길러주는 책이라는데 쉬운 책이 아니라서 저도 몇번 시도하다가 시간 없어서 그만 두었답니다. Scheme 에 다시 관심이 생긴다면 http://racket-lang.org/ 사이트에서 프로그램을 다운로드 받아서 시작하는 것도 좋을 듯 싶지만 취미생활(?)을 위해서지 실생활에는 그다지 도움이 안될 것으로 생각됩니다. 아무튼 이러한 Functional 언어들이 다시 주목을 받는 것은 multi-core, multi-machine 기반의 framework 들이 많이들 등장해서라고 생각됩니다. Erlang 기반의 대용량 분산 DB , Processing Framework 들이 많다는 것은 결국 이러한 언어기반에서 보다 손쉽게 개발이 가능하다는 걸 의미하니까요.

  2. 김수용댓글:

    Symbolics 라는 Lisp으로 이루어진 CG 웍스테이션을 한때 잠시 만진적이 있지요.

    벌써 10년이 지난 이야기 같군요. 뭐라도 할 수 있을 것 같던 시절이었지요. ^^

    • kimws댓글:

      Symbolics 진정한 Lisp Machine 이라 할 수 있지요. 그 이후 범용컴퓨터로 다 할 수 있게 되었지만요.

  3. tykoh70Taeyoung Koh댓글:

    흐음…우승님 블로그에 또 글을 남기는군요. Hadoop도 우연히 찾았는데 ‘Land of LISP’도 그렇네요. ㅋ~ 이 책은 오늘 사게 되었고 원서는 전부터 봤던 터라 개발하시는 분들의 반응이 어떤지 궁금해서 서핑하다보니 또다시 우승님 블로그… ㅎ~

    개인적으로 함수형 언어… 그중에서도 LISP와 사촌격인 Scheme을 주로 가지고 놀던(?)입장에서 LISP관련 서적이 또 하나 번역되어서 나왔기에 반갑더라구요. 최근에는 Erlang을 공부하고 있습니다만…OOP에 수혜를 받지 못한 화석시대의 개발자이다보니 저는 보는데 편했습니다.
    일전에 설파해주신 Hadoop에서의 분산병렬처리방식에 대한 고민을 하다가 직접적으로 다뤄보고싶어져서 Erlang을 만지작 거리고 있습니다. 아주 재미난 녀석이죠. 완전한 함수형 언어라기엔 2% 부족한 것이 Erlang이지만 O’calm의 알맹이를 MSDN의 껍질로 무장한 F#보다는 튼실했습니다. 아무래도 LISP나라에서 오랜 망명생활을 하다보니 함수형 언어들이 나름 친근하답니다. 그런 차원에서 Erlang은 뭐랄까… LISP적이지만 어떤면에선 LISP보다도 더 믿음직한 면이 보이네요.
    현재 Mnesia를 이용한 분산데이터 처리 시스템을 데이터 분석용으로 활용하고자 개인 프로젝트를 히고 있습니다. 이건 우승님 탓(?)이십니다. Hadoop을 잘 정리해서 알려주신 덕분에 뭔가가 퍼뜩 떠올라서라고 말씀드리지요. 여하튼 데이터 분석 처리가 취미이자 일인지라 우승님 덕을 많이 보고 있습니다. 감사의 말씀을 전합니다. +___+

    개인적으로 개발하시는 분들께 권하는 함수형 언어 및 기타 관련 공부에 대한 추천은 저 역시도 LISP를 추천합니다. 책에서 말하는 방식 말고 LISP Box (http://common-lisp.net/project/lispbox/) 를 이용한 보다 편한 개발환경도 있습니다. 물론 Clozure Common Lisp 기반이고 Emacs를 IDE로 하고 있지만 Slime이니 하는 환경이 사전에 다 설정이 되어 있어서 개발자는 그냥 이 IDE를 이용하면 더 편하긴 합니다. 그리고 개념적인걸 추가하자면 Haskell도 같이 공부하기를 추천합니다. 어차피 한국에서 개발자로 밥 벌어먹고 산다면 OOP는 이미 익숙할테니 딱히 Smalltalk까지 공부하라고 추천하지는 않습니다. 그러나 함수형 언어를 배우려 한다면 LISP, Haskell, Erlang은 추천합니다. LISP는 프로그래밍 개념을 위해서, Haskell은 그 수학적 견고함을 위해, Erlang은 실전을 위해서 말입니다.

    그리고 ‘Land of Lisp’는 재미나게 공부할만한 책이라고 새악합니다. Scheme으로 쓰여진 HTPD, SICP같은 책을 머리 아프게 보는 것보다는 LOL이 재미는 있을 것 같네요.

    메리 크리스마스 하세요~!!! +___+

  4. kimws댓글:

    아무래도 분산컴퓨팅이라는 것을 뒤지다보면 결국 함수형언어라는 곳까지 다다르게 되지요. 여러 NoSQL 과 같은 분산데이터스토리지 기술들은 Erlang 이라는 녀석으로 만들어진 것이 많은 것을 보면 분산 또는 병렬 프로그래밍이라는 놈을 골치 안아프게 구현할려면 함수형 언어라는 것이 좋은 것 같습니다. 제가 이렇듯 “같습니다” 라고 표현하는 것은 여전히 저는 함수형언어에 대해서 확실히 이해하지 않고 있다고 생각하기 때문입니다. 연초에 Land of Lisp 이 책을 2/3 정도 읽고 다시금 회사생활하다가 잊어먹고 있다가 연말되니 다시 다른 Lisp 책을 보고 있는데 개인적으로 저에게는 다소 넘사벽이라는 생각이 들기도 하네요. 역시나 머리가 굳은 것 같기도 하구요. 그러고보니 Land of Lisp 은 번역판이 나왔더군요. 역시 세상에는 고수들이 … 슬쩍보니 책장에는 Erlang 과 Clojure 책이 보이는 군요. 현업을 떠난지 이제 8여년이 지나서인지 그저 바라볼뿐이지요. 전 읽지 않아도 책을 꽂아놓는 나쁜 버릇이 있어요. 그래도 Lisp 은 꼭 알고 싶은 욕심이 있답니다. 최근 자바스크립트도 함수형언어라고 하면서 부각이 되고 있긴 한데 국내에서 이러한 특징을 제대로 이해하고 활용하고 있는 개발자가 많아 보이지는 않더군요. 고태영님이 부러울 따름이죠.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중