출판사 및 저자
- 저자: 임백준
- 출판사: 한빛 미디어
책 소개
이 책은 프로그래머로써 특정 언어를 사용할 때 다른 사람은 어떤 것을 기준으로 선택하는가에 대해서 엿볼 수 있는 내용을 담고 있습니다.
이 책이 작성된 시점이 자바 7이 최신이었던 시점이기 때문에, 어느 정도 그 때와 현재 프로그래밍 언어간 지형이 달라졌다는 것을 감안해야하긴 합니다. 하지만 언어가 발전해 나가면서 기존의 언어가 어떻게 제약이 되고 우리는 그런 상황에서 어떻게 기존의 언어와 새로운 언어를 대하고 선택해야하는 지에 대한 이야기는 유효하다고 생각합니다.
이 책은 컴퓨터 프로그래밍 언어 중 코볼이 잘 나가던 시절부터 이야기합니다. 그리고 코볼이 어떻게 사라졌는지를 이야기하면서 현재의 자바 비슷한 행보를 가고 있는 중이라고 말합니다.
저자는 자바는 c, c++가 지배적이던 시절에 나왔을 당시에는 굉장히 섹시한 언어였다고 이야기합니다. 지금도 현업에서 자바는 아직도 굉장히 강력한 언어로 사용되고 있습니다. spring이라는 강력한 프레임워크를 기반으로 객체 지향 프로그래밍을 가장 잘 할 수 있는 언어로 자리잡고 있는 것이 그 이유가 아닐까 생각해봅니다.
하지만 자바가 지금도 섹시한 언어냐고 묻는다면, 많은 사람들은 이에 동의하지 않을 것이라고 생각합니다. 자바를 제대로 알기 위해서는 숨막힐 정도로 쌓여있는 스펙들에 대해 이해해야하고, 이들을 레거시 코드들과 연결할 때 문제가 생기지 않도록 조심해야합니다. 자바는 더 이상 세련되지 않고 수많은 사람들이 기술적인 편의성을 위해 떠안고 있는 숙제로 보입니다. 언젠가는 떠나야할 숙제 말입니다.
저자는 자바가 람다, 클로저 등을 지원하지 않는다는 것이 단순히 자바에서 기능이 없다는 것을 넘어선 문제라고 이야기합니다. 자바는 태생적으로 이를 고려하지 않은 언어이고, 수많은 레거시들을 끌어안고 가야하는 상황에서 자바는 너무 비대해졌으며, 그렇기 때문에 자바에는 새로운 개념을 더이상 담을 수 있는 공간이 없다고 말합니다. 그래서 그는 이런 확장성을 고려한 언어인 C#과 스칼라를 일종의 대안으로 이야기합니다.
스칼라는 비록 저자분의 예상과 다르게 역사의 뒤안길로 사라지는 것이 아닐까 싶습니다만, C#은 강력한 자바의 대항마로 대두되고 있는 시점이라고 느껴집니다. 특히 요 근래에는 서버 사이드에서 go, c와 c++를 대체하기 위한 rust 역시도 새로 각광을 받고 있죠.
프로그래머로써 새로운 언어를 배운다는 것은 저자가 말한 것처럼 단순히 도구가 달라지는 것이 아니라, 새로운 차원의 추상화를 경험하는 것이라고 생각합니다. 그리고 프로그래밍이 점점 더 높은 추상화의 패러다임을 추구하고 있기 때문에 이를 꾸준히 배워나가는 것은 제가 앞으로 프로그래머로써 살아가면서 계속 해나가야할 일이겠지요.
다음 개념의 추상화를 통해서 새로운 패러다임으로 자리잡을 언어는 어느 것이 될까요? 폴리 플랏 프로그래머로써 굉장히 기대되네요.