리뷰: 프로그래밍 언어도감


프로그래밍 언어도감 도서 리뷰입니다.
프로그래밍 언어 67개를 그림과 함께 소개하고 있으며 샘플 코드와 프로그래밍 언어 선택 방법을 제시하는 책입니다.

읽는 방식에 따라 호불호가 갈릴 만한 책으로 그림과 함께 프로그래밍을 설명한 도감이라는 점을 상기하며 읽어야합니다.
이 책의 핵심인 67개 언어를 먼저 펼처본다면 가벼운 책이라고 판단할 수 있지만, 앞장과 뒷장에 쓰여진 내용을 먼저 읽는다면 짜임새 있는 책이라 할 수 있습니다.



위 사진은 책의 밑면인데, 앞장과 뒷장의 속지는 붉은 색이고 가운데 부분은 흰색입니다.
67개 언어를 소개하는 "프로그래밍 언어 도감" 영역이 흰색인데요. 붉은 색 부분을 먼저 읽고 흰색 부분인 도감은 가볍게 읽어 보시는 걸 추천합니다.

구성은 아래와 같습니다.
  • 프로그래밍 언어의 특징과 역사
  • 샘플 프로그램 동작시키기
  • 프로그래밍 언어 도감
  • 프로그래밍 언어를 고를 떄 알아두어야 할 키워드
  • 프로그래밍에 관한 기초 지식
  • 부록

흥미로웠던 부분은 67개 언어 모두 "하노이의 탑" 퍼즐 예제 코드가 있다는 것인데, Brainfuck, SQL, Whitespace 언어의 예제가 궁금해졌습니다. 그리고 왜 "하노이의 탑"을 예제 코드로 선택했을지 궁금증이 생겼습니다.
기본 문법인 조건문과 반복문을 볼 수 있는 코드라는 장점도 있지만, 기본적으로 재귀 호출 예제로 유명하며 알고리즘 예제에 자주 등장하는 코드라는 것이죠.

그 의문은 뒷면에서 힌트를 얻었습니다. 지은이는 일본에서 알고리즘과 정보 보안 분야의 전문가입니다.
그리고 "프로그래밍에 관한 기초 지식"의 "프로그래밍과 알고리즘"에 이런 내용이 있습니다.

프로그래밍 언어는 계속해서 새롭게 등장합니다. TIOBE 랭킹에서 가장 상위에 올라와 있는 Java도 등장한지 20년이 조금 지났을 뿐입니다. C#도 17년 정도이고, Swift의 경우는 3년 정도입니다. 이렇게 생각하면 10년 후에는 프로그래밍 언어를 둘러싼 환경이 완전히 달라져 있을지도 모르겠습니다.
한편 대표적인 알고리즘은 한 번 마스터하면 오래 쓸 수 있습니다.
(중간 생략)
하드웨어의 속도가 빨라지고 충분한 양의 메모리를 탑재할 수 있는 환경에서는 언어의 차이로 고민하기 보다는 알고리즘을 바꾸는 것으로 압도적으로 빨라지는 경우도 적지 않습니다.

지은이는 알고리즘의 중요성을 설명하고 있습니다.
그리고 프로그래밍 언어마다 표현 방식을 설명하고 싶었겠죠. 저는 그렇게 생각하기로 했습니다.

개정판에는 코드로도 언어의 차이를 비교할 수 있는 부분이 추가되면 좋겠습니다. 현재 예제 코드로 언어의 차이점을 비교하기에는 많이 부족하여 아쉽습니다.
또한 변수, 함수명 등에 사용되는 표기법도 추가되면 좋겠습니다.

한줄평

다양한 프로그래밍 언어의 존재 이유와 특징으로 시작하여 재치 있는 언어 소개로 이어지다가 기초 지식 전달로 마무리하고 있어 구성이 알찬 도감이며 프로그래밍 언어를 알아가는 계기를 만들어 줄 참고서입니다.

추천 대상

입문서 혹은 실용서를 찾는 분에게는 적합한 책이 아닙니다.
프로그래밍에 관심이 있는 분, 프로그래머와 친해지고 싶은 분에게 추천합니다.
혹은 프로그래밍 언어를 가르치는 선생님에겐 참고서가 될만하며 프로그래머로 진로를 고민하는 학생이 볼 수 있도록 도서관 비치되면 좋겠네요.

함께 보기

책을 읽고 나서 부족한 부분을 조금은 채워줄 수 있는 링크입니다. 참고해보세요.

도서 정보

도서명: 프로그래밍 언어 도감 (ISBN 9788931458107)
원서명: プログラミング言語図鑑 (ISBN 9784802611084)
지은이: 마스이 토시카츠 (増井敏克)
옮긴이: 김형민
출판사: 영진닷컴
페이지: 200쪽

원서 표지



책에서 다루는 67개 프로그래밍 언어 목록

알파벳 순서이며 책에서는 어셈블리어(Assembly language)만 한글로 적혀있는 것이 특이하고 궁금증이 생기는 부분이었습니다.

Assembly language, ActionScript, Ada, AWK, Bash, BASIC, bc, Brainfuck, C, C#, C++, CLIPS, Clojure, COBOL, CoffeeScript, csh, D, Dart, Elixir, Erlang, F#, Factor, Fantom, Forth, Fortran, Go, Groovy, Haskell, Icon, Intercal, Java, JavaScript, Julia, Kotlin, LISP, Lua, Nemerle, Nice, Nim, Objective-C, OCaml, Octave, Oz, Pascal, Perl, PHP, Pike, PL/I, PostScript, Prolog, Python, R, Racket, Ruby, Rust, Scala, Scheme, Scratch, sed, Smalltalk, SQL, Swift, Tcl, TypeScript, Unlambda, Visual Basic, Whitespace