하스켈로 배우는 프로그래밍(Programming in Haskell) 드디어 출간!!

kyagrd의 이미지

예전 베타 리더 모집하는 글타래에 표지 다지인이 나왔다는 댓글로 곧 책이 나온다고 소식을 알리기는 했지만, 드디어 정식으로 출간되어 대림출판사 홈페이지에 신간소개가 났고 교보문고, YES24, 인터파크 등에서 이제 온라인으로 주문을 할 수 있게 되었기 때문에 KLDP에 이렇게 소식을 올립니다. 아마 다음 주부터는 더 많은 서점에 나갈 거고 오프라인에서도 볼 수 있을 것 같습니다.

표지 그림 크게 확대, 아주크게 확대

이제 영어로 된 문서가 아닌 우리말로 된 책으로 Higher-Ordered & Typed 함수형 언어를 공부하실 수 있을 뿐 아니라, 이 책은 처음 프로그래밍을 배우는 사람들을 위한 입문서이기 때문에 처음 프로그래밍을 배우는 사람을 가르칠 때도 처음부터 깔끔하게 잘 설계된 하스켈과 같은 프로그래밍 언어로 첫걸음을 뗄 수 있습니다. 책에 나오는 소스 등 관련 자료는 우리말 판 홈페이지 http://pl.pusan.ac.kr/~haskell/ 에 올라와 있고, 왜 개발자로서 우리나라에서 업계에서는 아직 많이 쓰지 않는 하스켈 같은 언어에 관심을 가져야 하는에 대해서는 "컴퓨터 프로그램의 구조와 해석"(Structures and Interpretation of Computer Program) 우리말 판 옮긴이이신 한국 MS 김재우 플랫폼 전략부장(PSA)님의 추천사를 추천(음 추천사를 추천한다니 뭔가 어감이 이상하군요 -.-)합니다.

대표적인 하스켈 컴파일러인 GHC, 그리고 인터프리터인 Hugs 는 모두 오픈 소스 프로젝트로 진행되고 있습니다. 당연히 이 책에서도 Hugs와 GHC로 예제를 실습해 보도록 하고 있고요. 하스켈 개발자들은 Hackage 라는 라이브러리 저장소에 오픈 소스 프로젝트를 활발히 공유하며 cabal 이라는 커맨드 라인을 지원하는 편리한 빌드 시스템으로 cabal install <프로젝트명>과 같이 Hackage로부터 의존성이 있는 프로젝트를 자동으로 다운받아 컴파일을 하는 방식으로 작업을 하고 있습니다. 별건 아니지만 제가 올린 자그마한 라이브러리와 유틸리티도 3개 있습니다. 특히 프리노드 IRC의 #haskell 채널에서 노는 게 재미있는데요, 하스켈로 짠 IRC 봇을 항상 상주시키면서 재미있는 놀이를 하기도 합니다. IRC 봇에게 간단한 하스켈 프로그램을 실행시키도록 할 수 있고요, 또 Hackage에 새로운 패키지나 업데이트가 올라올 때마다 소식을 전하는 봇도 있고 그렇습니다. 하스켈 관련 개발자 커뮤니티는 재미있고 열정적이고 실력있는 개발자들이 많이 모이는 추천할 만한 오픈소스 커뮤니티입니다. 실무 IT 개발자에서부터 교수나 연구원 등이 다같이 모이는 이론 연구자과 실무자들이 함께 이루어 가는 독특한 커뮤니티입니다.

그럼 많은 성원 부탁드리고, 이상 책광고였습니다 ^^

P.S. 사실 OCaml이나 SML같은 ML 계열의 언어가 그 동안 국내에서는 대학 교과과정 등에서 더 많이 쓰였지만 아쉽게도 ML 계열 언어를 다루는 우리말 책이 나온 적이 없습니다. 혹시 현업이나 학계에서 ML 계열의 언어를 쓰시는 분들 중에 여력이 되는 분들은 괜찮은 ML 책을 번역하시거나 집필하시면 의미있는 일이 될 것 같습니다. 마이크로소프트 비주얼 스튜디오 제품군에도 이제 ML계열 언어인 F#이 들어간다고도 하니 더욱이나요.

dalmagi의 이미지

드뎌 나옸네요. 기다렸었는데..

혹시 할인행사 같은건 없나요 ^^;

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

imyejin의 이미지

할인행사는 아니지만 네이버 북에서 제일 싼 인터넷 서점은 15%할인해서 17000하더군요.

전 원래 반디인루니스 적립금으로도 한권 질러서 매상 올려주려고 했는데 반디에는 이 책은 없어서 못사고 그냥 다른 소설책 같은 것들 샀습니다. 반디인루니스 적립금을 요즘 만료인가 해서 8월1일 전에 안쓰면 초기화시켜버린다고 하던데요 ... 저만 그런 건지 아니면 원래 정기적으로 초기화하는 건지 ... 한번도 전엔 그런 메일 안왔었는데. 반디앤루니스 적립금 있는 분들은 한번씩 확인해 보세요.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

dl3zp3의 이미지

오프토픽: 여기서 잠깐 재밌는사실: 제 추측이 맞다면 kyagrd님도 임예진씨의 팬입니다.

hongminhee의 이미지

드디어! 저도 사야겠습니다.

홍민희 (VLAAH, LangDev)

imyejin의 이미지

원서에 콜렉션 추가한 인증샷!

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

댓글 첨부 파일: 
첨부파일 크기
Image icon IMG_4732.JPG686.15 KB
Image icon IMG_4733.JPG631.4 KB

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

hongminhee의 이미지

어제 잠깐 서점에 들러서 하나 샀습니다. 그런데 너무 구석에 있더라구요. 좀 씁쓸;;

아직 읽고 있는데 내용은 좋은 것 같습니다. SICP 번역하신 분이 번역하셔서… 용어들의 느낌이 새로웠구요(?); 예제 코드의 가독성이 그렇게 좋지는 않다는 느낌이 들었습니다. 글씨도 좀 작았으면 더 얇아졌을텐데 하는 생각을…

홍민희 (VLAAH, LangDev)

kyagrd의 이미지

그런데 저는 SICP를 번역하지 않았습니다, SICP를 번역하신 분께서 추천사를 써 주셨죠. 물론 SICP를 번역을 모범으로 삼긴 했습니다. 그래도 온라인 서점 등을 통해서 기대했던 것보다는 (아무도 사는 사람 없을까봐 걱정했습니다 ㅠ.ㅠ) 그래도 주문하시는 분들이 많아서 다행으로 생각하고 있습니다.

예제 코드 조판 문제에 대해서는, 예제 코드는 그라함 허튼의 원서에도 그렇게 똑같이 조판되어 있습니다. 하스켈 관련 논문이나 책에서 LaTeX으로 하스켈 코드를 조판할 때 사용하는 표준적인 조판 시스템인 lhs2TeX라는 소프트웨어를 사용해 조판되었기 때문에 그러한 형식에도 익숙해 지시면 하스켈 관련 논문을 찾아보실 때 훨씬 도움이 될 것입니다. 익숙해지면 어떤 면에서는 이게 더 가독성이 있어 보이기도 합니다. 그리고 저희의 옮긴이들의 의견 이전에, 원서를 쓴 그라함 허튼 교수님과 2008년 ICFP에서 직접 만나서 말씀을 나누었을 때도 다른 건 몰라도 코드의 조판은 꼭 lhs2TeX로 최대한 원서에 가깝게 해 달라는 부탁을 학회에서 직접 받았기 때문에 예제 코드의 조판은 꼭 그렇게 해야 하는 문제였습니다.

하여간 그런 형식으로 조판된 예제 코드에 익숙해지시면 다른 하스켈 관련 논문을 찾아보기에 좋다는 장점도 있습니다. 다만 코드를 고정폭 폰트로 표시하는 것을 선호하는 분들은 이미 외국에서 원서에 대해서도 좀 고정폭 폰트로 해 달라는 의견이 있기도 했고, 또 대림출판사 쪽에서도 저희 원고를 받아 수식 형식으로 조판하는 것에 굉장한 어려움을 겪기도 했습니다만 원서 저자의 의견이 워낙 확고하셨기 때문에 원서 저자의 의견을 존중하였습니다. 참고로 가변폭 조판은 이 책이나 하스켈 관련 논문만 그런 것은 아니고, C++ 의 바이블이라 불리는 The C++ Programming Language 도 가변폭 조판을 사용하고 있습니다. 가변폭과 고정폭 조판에 대한 가독성은 취향의 차이도 좀 있는 것 같으니 너그러이 이해해 주셨으면 합니다. 저도 보통 다른 코드를 볼 때는 고정폭이 더 잘 읽히는데 하스켈 관련 조판은 lhs2TeX로 조판된 것을 많이 보다 보니 제 개인적으로는 이게 더 예뻐 보입니다 ^_^.

글씨 크기는 제가 생각하기에는 큼지막해서 읽기에는 좋긴 한 것 같습니다. 아 물론 저도 얇으면 좋겠다고 생각하긴 했지만 책의 두께는 출판사의 건의와 요청에 따라 원서에 없는 몇 가지 것들(스크린샷 등)을 추가했기 때문에 원서보다 두꺼워질 수밖에 없어서 저도 아쉽기는 합니다만, 또 한편으로는 좀더 쉽고 친근한 책으로 보일 수도 있지 않을까 생각을 합니다.

http://pl.pusan.ac.kr/~haskell/wiki/오탈자

오탈자가 벌써 몇 개 발견되었으니, 위 오탈자 페이지를 참고하면서 읽어 주시고요, 혹시 추가 오탈자나 또 다른 의견이 있으시면 KLDP나 http://functional.or.kr/ 혹은 저희 역자들에게 직접 메일을 주시거나 혹은 대림출판사를 통해 의견을 주시면 가능한 한 2쇄에 반영을 하고 그렇지 않더라도 홈페이지의 만질것(많이 묻는 질문)에 정리하겠습니다. (이미 예제 코드 조판에 대해서는 http://pl.pusan.ac.kr/~haskell/wiki/만질것 에 정리하였습니다.)

하여간 me2day에서도 책을 추천해 주시고 이렇게 또 직접 관심을 갖고 읽어 주셔서 다시 한번 감사드립니다. 그런데 이 책은 대학 1학년이나 처음 프로그래밍을 배우는 분들을 대상으로 하는 입문서라서, dahlia 님께는 함수형 프로그래밍에 이미 익숙하신 것 같은데 그렇다면 아주 큰 도움은 되지 않을 수도 있습니다. 함수형 프로그래밍 언어를 한번도 해 보지 않은 분들에게는 이미 프로그래밍에 익숙하더라도 물론 빠릴 하스켈로 함수형 프로그래밍을 익실 후 있는 괜찮은 입문서가 되리라고 생각합니다. 이 책이 너무 쉽다고 여겨지시면 우리말 판 홈페이지에도 링크해 놓은 Real World Haskell 이라는 영문으로 된 오라일리 책을 읽어보시면 아마 좀더 실무적이고 고급 기법을 다루는 예제들이 나올 것입니다.

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

hongminhee의 이미지

헉 이렇게 긴 답변을 달아주셔서 송구스럽습니다. 제가 번역자분을 잘못 알고 있었군요;; 죄송합니다. lhs2TeX에서 키보드로 입력 불가능한 수식 기호를 쓴 것들은 생소하긴 하지만 보다보니 익숙해졌네요. 가변폭은 말씀하신 The C++ Programming Language를 읽을 때도 이미 좋다고 생각해서 그 부분이 싫은 것은 아니었습니다.

다 읽고 나서는 고등학교 후배들에게 이 책으로 스터디할 것을 권유할 생각입니다. 좋은 번역 감사합니다.

홍민희 (VLAAH, LangDev)

달리나음의 이미지

저자의 생각은 이해가 되나 좋은 방법은 아니라고 생각합니다. 저 표기가 학술적인 편의가 있다는 것은 장점이겠지만 그 표기로 인해 하스켈로 배우는 프로그래밍 서적의 진입장벽을 높였습니다.

입문서로서는 매우 나쁜 선택을 한 것입니다.

kyagrd의 이미지

원서에는 없는 몇 가지를 더 추가하여 입문서로 더 편하게 사용할 수 있도록 배려하였습니다.

우선 전반부 장들에서는 이러한 점을 배려하여 편집기 화면을 캡춰하여 넣어서 편집기에서 텍스트로 어떻게 보이는지까지 친절하게 알려주고 있으며, 또 내려받아 실습해 볼 수 있는 코드 예제를 책에서도 텍스트 형식으로도 한번 훑어볼 수 있도록 별도로 해당 장의 끝에 정리하여 놓았습니다.

하스켈의 경우 학술적으로 시작한 언어라 유용한 논문 자료가 꽤 많기 때문에 저러한 수식 표현 조판을 익혀 놓는 것도 하스켈을 습득하는 데 장기적으로는 도움이 된다고 생각합니다.

책을 보시고 또 의견이 있으면 알려주세요. 감사합니다.

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

달리나음의 이미지

kyagrd님이 수고는 하셨지만 애당 초 표기 자체가 일반적인 경우가 더 효과적이었겠죠. 장기적으로 수식 표현 조판을 익히는게 학술적으로 도움이 될 수 있다고 하셨는데, 저런 표기가 진입장벽이 되어 막는 사람들의 수가 얼마나 될지 모르겠군요.

imyejin의 이미지

실습을 위한 주요 소스코드는 대부분 다운로드받을 수 있도록 저자가 홈페이지에 올려 놓았거든요.

그리고 원서에도 책의 부록에 표도 마련되어 있고요.

그리고 기본적인 수학 교과과정에서 나오는 기호들이라는 게 기껏해야 논리연산이나 합성함수같은 것들이기 때문에 그다지 난해하고 생소한 표현도 아니고 프로그래머라면 누구나 알아볼 수 있는 정도입니다.

학술적인 문서를 읽는 데 도움이 된다는 뜻이지 기호들이 대단히 난해하고 생소한 아주 특이한 학술문서에서만 찾아볼 수 있는 전문적인 것도 아니니 진입장벽은 제가 보기에 사실상 없다고 생각합니다.

부록을 한번 들춰봐야 한다는 것을 진입장벽이라고 하신다면야 그게 유일한 진입장벽이 되겠습니다만 ...

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

달리나음의 이미지

책을 구매하는 사람 중에 소스를 구하기 위해 혹은 정오표를 찾기 위해 홈페이지를 접속하는 사람의 수는 얼마되지 않습니다.

기껏해야 논리연산이나 합성함수같은 것이라고 하셨지만 알파뉴메릭이 아닌 표기들을 학습하는 것은 부담이 됩니다. 알파뉴메릭이 아닌 표기를 보는 순간 포기할 수 있습니다. 솔직히 저도 새로운 표기가 나온 순간 책을 덮고 그냥 그날은 자버렸습니다. 그 표기가 어렵고 쉽고의 문제가 아닙니다. 그 표기가 뭔지 알려고 하는 시도 자체가 귀찮은게 문제입니다.

imyejin의 이미지

참고로 함성함수나 논리기호 표기의 아스키 코드 대응은 책의 부록에 있습니다. 별도로 다른 곳에 가서 확인해야 하는 것은 아닙니다. 분명히 책에 포함되어 있고 처음 그 표기법을 소개하면서 부록을 찾아보라고 친절하게 안내하는데도 부록을 들춰 보지 않는 것은 곤란합니다 -_-;;; 어디서 따로 찾아봐야 하는 게 아니라 부록으로 책 넘겨 보라는 곳을 보면 바로 나옵니다. 댓글 보고 오해하시는 분들이 있을까봐요.

요즘에는 입문서의 경우에도 홈페이지에 가서 소스를 다운로드 받는 것은 일반적입니다. 컴파일러 같은 소프트웨어도 요즘은 따로 독자들이 다 컴파일러 배포 페이지에 가서 다운로드 받을 것이라고 가정합니다. 따라서 홈페이지에 접속하는 사람의 수가 얼마 되지 않는다고 가정하는 것은 무리라고 생각합니다. 예전에야 CD로 책의 소스와 컴파일러를 같이 배포하곤 했었지만 지금은 기본적으로 책 홈페이지를 방문하는 것은 입문서같이 실습 예제가 포함된 책의 경우에는 오히려 더 필수적이고 효과적인 상황이 되지 않았나 생각합니다.

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

달리나음의 이미지

합성함수나 논리기호의 표기를 별도로 확인해야 한다고 적진 않았는데 혼란의 여지가 있을만한 부분이 있긴 한가 보군요. 혹시나 오해하는 분이 있을까봐 다시 언급하자면 기호에 대한 설명은 책의 부록에 표기되어 있고 번역자가 친절히 설명한 부분도 있습니다.

참고로 저는 이 책을 읽었습니다. 그리고 처음에 그 기호를 몰라 부록을 들추어봤습니다. 그리고 번역자가 조금이라도 더 친절하기 위해 노력했다는 점은 인정합니다. 하지만 부록을 통해서 볼 수 있게 구성한 것은 전적으로 저자의 실수라고 생각합니다. 프로그래밍 입문서를 읽는 사람은 교차 참조를 쫓아다니며 글을 읽는 것을 선호하는 사람들이 아니며 그냥 간편히 언어의 향을 알고 싶은 사람들입니다. 이 책이 입문서라는 위치를 생각하면, 별도의 표기를 사용하고 부록을 참조하도록 편집하는 것은 단점이 더 크다고 봅니다.

esrevinu의 이미지

전 그 표기를 보고 emacs에서 되면 좋겠다는 생각을 했습니다.
그런데 emacs의 haskell-mode는 indentation에서부터 버그가
있더군요. if-then-else에서...
최근 버젼에서는 고쳐졌던데 아직 indentation 넣기가
많이 불편하더군요.
Haskell의 단점으로 DrScheme 같은 좋은 IDE가 없다는 것이 있더군요.
이런 게 있으면 좋겠네요.

kyagrd의 이미지

최근에 haskell-mode 업데이트가 한번 있었으다고 하니 확인해 보세요 http://thread.gmane.org/gmane.comp.lang.haskell.cafe/65487 들여쓰기 관련해서 고친 것도 있다고 하던데요 전 이맥스 사용자가 아니라서 잘 모르겠습니다. 저는 하스켈 편집할 때는 vim 에서 autoindent 정도만 켜놓고 씁니다.

그리고 저것과는 별도로 emacs 에서 되도록 개인적으로 모드를 고쳐 쓰는 사람들도 본 것 같은데 링크는 지금 잘 못 찾겠습니다. 하스켈과 유사한 문법을 채용한 Agda 라는 언어/증명 도우미가 대략 그런 모드와 비슷합니다.

하스켈로 만든 하스켈 IDE는 leksah 라는 녀석이 있긴 합니다만 저는 이거 쓰는 것보다 그냥 vim이랑 ghci 쓰는 게 익어서 잘 안 쓰게 되더라고요. http://leksah.org/screenshots.html 에서 스크린샷을 보실 수 있습니다. 그런데 DrScheme 만큼 초보자에게 친절한 IDE는 교육용으로 만들어진 스몰토크 IDE같은 걸 제외하면 아마 어떤 언어에도 없을 겁니다. DrScheme은 처음 프로그래밍을 배우는 사람들까지 염두에 두고 만들어졌고 지금도 계속 그런 쪽으로도 꾸준히 업데이트 하고 있는 거라서요.

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

sql2의 이미지

하스켈이란 언어를 처음 듣었을 때가 기억나네요. codefest 2회때던가.

취미로 플밍공부하신다던 외국분이 하스켈이라고 하던걸 저는 파스칼로 듣고는.. ㅋㅋㅋ ㅡㅡ; ( 원어민발음이란... )

암튼, 요즘 같이 불필요하게 중복된 책들이 난립하는 세상에 정말정말 한줄 빛같은 책이네요.

저도 반드시 한권 사보겠습니다.

kyagrd의 이미지

확인하시면서 읽어 주세요 감사합니다.

http://pl.pusan.ac.kr/~haskell/wiki/오탈자

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

freemckang의 이미지

개정판 인쇄는 언제쯤인가요?? 일에 쫓게 잊고 살다가 이 쓰레드로 인하여 다시 기억이 났는데... 개정되어야 할 부분이 많네요~~ 이왕이면 깨끗한 책을.. ㅎㅎ

句日新, 日新 日新 又日新.

句日新, 日新 日新 又日新.

kyagrd의 이미지

일단 1판 1쇄가 다 나가야 2쇄를 찍을테고 그 때 오탈자 수정을 반영할 예정으로 알고 있습니다.

주변에 많이 알려 주시거나 도서관에 도서 신청을 해 주셔서 1쇄가 빨리 빠지게 도와주면 아마 더 빨리 볼 수 있을 거에요 ^^

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

--
There's nothing so practical as a good theory. - Kurt Lewin
"하스켈로 배우는 프로그래밍" http://pl.pusan.ac.kr/~haskell/

김동수의 이미지

Objective Caml 이라면 제가 쥐꼬리많큼 쓸 줄 아는데..

http://www.ocaml-tutorial.org/ko

에 번역문서가 올라오다가 중단되었네요.
짬나면 제가 조금씩 이어서 번역해볼까 합니다.. -_-;

-------------------------------------
김동수 - Prototype for Evolution

김동수 - Prototype for Evolution

sml0747의 이미지

이미 안기영님께서 LangDev에 포스팅해주셨지만 이 곳에도 소개하는 것이 나을 듯 하여 링크 겁니다.

http://channel9.msdn.com/tags/Haskell

강사가 단순히 책의 내용만을 강의하는 것이 아니고, C# 등의 언어와 비교하여 Haskell의 장단점등을 설명해주기에 매우 유익하다고 생각합니다.