저자의 Ruby 경험과 비판적 시각
저자는 네 번째 직장에서야 Ruby를 주력으로 사용하는 팀에 합류했습니다. Ruby의 우아함에 대한 수많은 찬사를 들었기에 큰 기대를 가졌으나, 실제 경험 후 즉각적인 실망감을 느꼈습니다. 초기 언어 학습에서 오는 ‘각인의 정서적 안개’ 없이 Ruby를 바라본 저자는 이를 보석 같은 도구가 아닌, 프로그래밍 세계의 진화를 따라가지 못한 ‘가엾은 작은 것’으로 인식했습니다.
Ruby의 탄생과 커뮤니티
Ruby는 1995년 일본의 프로그래머 마츠모토 유키히로(애칭 ‘Matz’)에 의해 탄생했습니다. 서구권 외에서 시작된 유일한 주요 프로그래밍 언어 중 하나로, Matz의 친절함은 ‘Matz Is Nice And So We Are Nice (MINASWAN)’라는 Ruby 커뮤니티의 모토로 이어질 정도입니다. Ruby는 이름처럼 시각적으로도 편안하며, 세미콜론이나 괄호가 없는 간단한 문법으로 Python보다도 영어에 가까운 가독성을 자랑합니다.
동적 타이핑의 한계와 ‘Footgun’ 문제
프로그래밍 언어는 일반적으로 정적 타입과 동적 타입으로 나뉩니다. 정적 타입 시스템은 레고처럼 정확한 모양과 크기의 조각만 결합할 수 있어 특정 오류를 원천적으로 방지합니다. 반면 동적 타이핑은 원하는 대로 조각을 결합할 수 있어 이론적으로는 유연하지만, 대규모 구조물 구축 시에는 이러한 자유가 독이 되어 프로그램 실행 중에만 오류가 발견되는 문제가 발생합니다.
Ruby는 Python, JavaScript와 마찬가지로 동적 타입 언어입니다. 그러나 Python과 JavaScript 커뮤니티는 수년간 정교한 도구를 개발하여 동적 타이핑의 단점을 보완해왔습니다. 이에 비해 Ruby의 현재 해결책들은 다른 언어들에 미치지 못하며, 프로그래머들이 ‘발등 찍기’ 쉬운(footgun) 기능이라 부르는, 의도치 않은 오류를 쉽게 유발하는 경향이 강하다고 저자는 비판합니다.