폴리글랏 프로그래밍을 읽고 나서

1470391470109

폴리글랏 프로그래밍을 읽고 나서

-스칼라 편-

특질은 특정 존재를 규정할 수 있을 만큼은 충분하지 못한 개념이다. 특질은 어떤 존재에게는 그 존재가 가진 기능 중 일부일 뿐이며, 실제로 존재하지 않는 어떤 추상의 개념에서는 그들을 하나로 묶어주는 최상위 추상 개념과도 같은 것 같다.

개인적으로 특질이란 온 우주를 통틀어 유일하게 존재하는 어떤 원자화된 고유한 개념의 하나라는 생각을 하게 됐다. 더이상 쪼갤 수 없는 어떤 개념을 설명하기위해서는 반드시 묶여야만하는 개념들의 집합으로 개념을 정리할 수 있게 되었다.

자바의 인터페이스와 스칼라의 트레이트는 이처럼 서로 다르다.

자바의 인터페이스는 추상화 되어있고 실재하지는 않지만 그들의 존재를 규정하는 개념이다.
인간에게 먹는다는 행위가 고양이에게도 존재한다고 해서 고양이가 인간의 인터페이스를 구현할 수는 없다. 고양이가 말을할 수는 없으니, 결국 구현에 실패할 것이다. 고양이는 고양이 인터페이스를 구현해야 고양이로 존재할 수 있게될 것이다. 인간이 인간으로 존재하려면 인간 인터페이스의 모든 것들을 반드시 구현해야만한다. 그렇지 않고선 결코 인스턴스가 될 수가 없을 것이니 말이다.

이에 비해 스칼라의 트레이트는 각각의 존재들이 가질 수 있는 특정한 기능/개념들을 더 높은 위치에서 추상화 해 놓은 것을 서로 다른 종이 공유할 수 있는, 더욱 더 고차원적으로 추상화된 개념인 것 처럼 느껴졌다.
먹는다는 행위를 정의한 Eater() 클래스에 eat()이라는 메소드를 인간, 고양이, 심지어 휴대폰과 전기자동차 등도 함께 이 트레이트라는 개념을 통해 공통으로 사용할 수 있게 된다는 것이다.(실제로는 power를 consume하는 쪽의 트레이트를 가져오는게 좀더 어울릴 것 같긴 하지만)

결론

그리고 자바, 씨샵, 스칼라순으로 언어가 어떤 배경으로부터 창조되었고 발전해왔는지 전체적으로 읽기 좋게 되어있었으며, 이를 통해 스칼라가 얼마나 매력적인 언어인지를 느끼게 되었음.

그리고 얼마나 프로그래밍과 글쓰기, 그리고 예술적 부분들에 대한 조예가 깊어야 이렇게 글을 쓸 수가 있는건지, 정말 백준님 대단하시다는 감탄과 함께 읽게되었음. 어떻게 해야 이처럼 현학적 표현 없이 이런 주제를 이렇게 다룰 수 있는지… 진짜 짱짱맨!

아직 안읽어본 사람이 있다면 꼭!!! 일독하시기를 권함!

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.