발표자는 먼저 40세에 겪은 ‘프로그래머의 중년의 위기’를 언급하며, Vim, Helix, Fish 쉘, Ghostty 터미널 에뮬레이터 등 다양한 개발 도구를 재학습하고 실험한 개인적인 경험을 공유합니다. 특히 Vim의 복잡성과 Helix의 간결함, 그리고 Fish 쉘의 효율성에 깊은 인상을 받았다고 설명하며, 이러한 개인적인 탐색이 개발자로서의 경쟁력을 높이는 데 기여한다고 강조합니다. 이어서 그는 Ruby를 JavaScript, Python, OCaml 등 다른 언어들과 비교하며 Ruby의 다음과 같은 강점들을 제시합니다.
첫째, 패키지 관리 측면에서 Ruby는 RubyGems와 Bundler라는 통일되고 안정적인 시스템을 갖추고 있습니다. 이는 JavaScript의 npm, yarn, pnpm이나 Python의 pip, poetry, UV 등 파편화되고 복잡한 환경과 대조되며, 개발자들이 핵심 개발에 집중할 수 있게 하는 Ruby의 큰 장점이라고 평가합니다.
둘째, 언어의 표현력과 일관성입니다. Python의 명시적인 return
키워드 사용, f-string
과 같은 후기 도입 기능, 그리고 의미 있는 공백(significant whitespace)과 비교하여 Ruby는 문자열 보간이 기본적으로 지원되고, return
키워드 생략이 가능하며, times
메서드와 같은 직관적인 문법이 개발자의 의도를 더욱 명확하게 표현한다고 강조합니다. 또한, len
과 같은 전역 함수 대신 모든 것이 객체 지향적인 메서드로 제공되는 Ruby의 일관성을 높이 평가합니다.
셋째, 표준 라이브러리 및 에코시스템입니다. JavaScript의 수많은 소규모 라이브러리와 OCaml의 부족한 라이브러리 생태계와는 달리, Ruby의 표준 라이브러리는 잘 구성되어 있으며, ‘gemification’을 통해 각 부분이 독립적으로 업데이트될 수 있어 모듈성을 극대화합니다. 이는 언어 전체를 업그레이드하지 않고도 라이브러리를 최신 상태로 유지할 수 있게 하는 큰 이점입니다.
넷째, 프레임워크 및 광범위한 혁신입니다. OCaml처럼 웹 프레임워크가 거의 없거나 JavaScript처럼 너무 많은 프레임워크가 난립하는 상황과 달리, Ruby는 Ruby on Rails와 Sinatra와 같은 강력하고 잘 확립된 프레임워크를 통해 개발 생산성을 크게 향상시킵니다. 발표자는 Ruby 커뮤니티에서 탄생한 Rails, Sinatra(ExpressJS에 영감), Rack(미들웨어 개념), RSpec(테스트 프레임워크), RVM(버전 관리), Jekyll(정적 사이트 생성기) 등 수많은 혁신이 다른 언어 및 개발 생태계에 지대한 영향을 미쳤음을 강조합니다. GitHub, YAML, TOML, Markdown과 같은 도구와 표준 역시 Ruby 커뮤니티에서 시작되거나 Ruby를 통해 널리 퍼졌다고 설명합니다.
마지막으로, 커뮤니티의 중요성입니다. 발표자는 Ruby 커뮤니티의 긍정적인 에너지, 협업 정신, 그리고 컨퍼런스와 오픈소스 참여를 장려하는 문화가 Java나 PHP와 같은 다른 언어 커뮤니티와는 비교할 수 없는 강점이라고 역설합니다. 이러한 커뮤니티 문화가 발표자 개인의 오픈소스 참여와 강연 활동에도 큰 영향을 미쳤음을 고백하며, Ruby가 지속적으로 혁신적인 인재를 끌어들이고 새로운 도구를 만들어낼 것이라고 낙관적인 미래를 제시합니다. Puppet, Chef, Vagrant, Homebrew, Fastlane 등 Ruby로 개발된 다양한 분야의 혁신적인 도구들을 예로 들며, AI 시대에도 Python과의 유사성을 바탕으로 새로운 라이브러리 개발을 통해 충분히 경쟁력을 가질 수 있다고 전망합니다.