루비에 대해선 어떻게 생각하세요? 파이썬보다 환영받지 못하는 이유는 뭘까요?
Python에 비교하자면, 언어 자체의 기능은 더 좋은 게 많습니다. 가령 Ruby는 컨티뉴에이션도 제공해요. 그런데 Ruby 커뮤니티에서 이 기능을 가지고 좋은 걸 만들어서 쓰는 걸 보기 힘들거든요. 이게 Ruby의 문제라고 생각합니다. C#과 비슷한 형국인데, 커뮤니티가 언어의 탁월함에 미치지 못한다고 할까요.
아무래도 Ruby 자체가 탄생에 비해 흥행한게 굉장히 나중이라, 다들 아시다시피 2000년대 초반에 Andrew Hunt, David Thomas가 “실용주의 프로그래머”에서 Perl 대신 Ruby를 쓰고 있다는 언급을 하고, 2000년대 중반에 PHP하다 빡친 DHH가 Rails라는 프레임워크를 Ruby로 작성하면서 널리 쓰이게 됐잖습니까? 언어가 아무리 95년에 만들어졌다지만 커뮤니티는 사실상 10년 뒤인 2000년대 중반부터 시작된 셈입니다.
또 다른 원인으로는 Ruby가 웹 개발 중심으로만 문화가 집중된 면도 있다고 봅니다. 가령 Python 문화적 태생은 대체로 두 갈래로 볼 수 있는데, 한쪽은 연구자 집단, 즉 scientific programming 쪽입니다. 이쪽은 NumPy나 SciPy, matplotlib, IPython 같은 도구들을 남겼고요. 다른 한 집단은 원래 C와 Perl로 시스템 프로그래밍하던 사람들입니다. 사실 하나 더 있습니다. Common Lisp이나 Smalltalk 하던 엔터프라이즈 쪽 사람들이 Common Lisp이나 Smalltalk가 망하면서 대안으로 ‘그나마 덜 나쁜’ 언어였던 Python으로 넘어와서 Zope 같은 물건들을 만들었죠. 사실 Python 철학의 많은 부분들이 이러한 ‘오래된 집단’의 지혜로부터 온 면이 많습니다. 쉽게 말해, Python 해커들은 보통 Python이 첫번째 언어가 아닙니다. 원래 다른 언어로 프로그래밍을 능숙하게 하던 사람들이 이런 저런 이유로 ‘말년에’ 선택한 언어가 Python이예요. 일종의 이민자의 땅인 셈이죠. 그래서 커뮤니티 내에서 퍼진 미덕이나 철학이 Ruby에 비해 상식적입니다. 가령 Python 커뮤니티는 sys.modules가 나쁜 것이라고 하는 반면 Ruby 커뮤니티는 open class가 좋은 것이라고 합니다.
위에서 말했던 부분에서 마지막 차이점이 발생하는데요. 그 당시 Python 해커들은 대체로 원래 자기가 능숙하게 쓰던 언어들이 있었습니다. 더욱이 그 언어가 C 같은 것들이 아니라 Common Lisp 같은 것이었다면 PHP나 Java 쓰던 사람이 Ruby 쓰면서 느끼는 놀라움 같은 것은 없었을 거라고 봅니다(…). 그러다보니 Python 언어는 커뮤니티의 입김을 많이 받는 쪽으로 성정한 것 같아요. 또한 Perl의 영향력이 대단했던 시기였기 때문에 그 당시 Python을 쓰던 사람들도 커뮤니티의 중요성을 잘 이해했습니다. 그리하여 Python 커뮤니티의 큰 특징이 하나 생기는데 “언어 사용자가 언어를 디자인해야 한다”는 인식입니다. 그래서 또 PEP이라는 언어를 개선하는 표준적인 절차가 마련됐고요. 언어 사용자가 언어에 기여해야 한다는 이런 생각은 나중에 PyPy 같은 것까지 나오게 만듭니다. 언어에 기여하려는데 Python VM은 정작 C로 되어 있으니 많은 사람이 개선을 못하죠. 그러니까 Python으로 Python 언어를 구현해야 한다는 발상도 나온 거구요.
반면 Ruby는… ruby-dev 메일링리스트는 몇년 전까지만 해도 일본어로 운영됐어요. 지금은 어떤지 정확히 모르겠지만, 여전히 영어하고는 거리가 먼 일본인들이 언어 개발의 주축입니다. 이러면 커뮤니티 접근성이 떨어지죠.
저는 Ruby가 10년 정도 뒤에는 커뮤니티 수준이 많이 좋아져 있을 거라고 생각합니다. 하지만 10년 뒤에도 Ruby가 다른 언어에 비해 상대적으로 “현대적인” 언어로 취급될지는 모를 일이지요.
당연히 여기서 쓴 내용은 제가 원인이라고 짐작하는 것이고, 아마 실제 원인은 더 다양하지 않을까 합니다.
아무래도 Ruby 자체가 탄생에 비해 흥행한게 굉장히 나중이라, 다들 아시다시피 2000년대 초반에 Andrew Hunt, David Thomas가 “실용주의 프로그래머”에서 Perl 대신 Ruby를 쓰고 있다는 언급을 하고, 2000년대 중반에 PHP하다 빡친 DHH가 Rails라는 프레임워크를 Ruby로 작성하면서 널리 쓰이게 됐잖습니까? 언어가 아무리 95년에 만들어졌다지만 커뮤니티는 사실상 10년 뒤인 2000년대 중반부터 시작된 셈입니다.
또 다른 원인으로는 Ruby가 웹 개발 중심으로만 문화가 집중된 면도 있다고 봅니다. 가령 Python 문화적 태생은 대체로 두 갈래로 볼 수 있는데, 한쪽은 연구자 집단, 즉 scientific programming 쪽입니다. 이쪽은 NumPy나 SciPy, matplotlib, IPython 같은 도구들을 남겼고요. 다른 한 집단은 원래 C와 Perl로 시스템 프로그래밍하던 사람들입니다. 사실 하나 더 있습니다. Common Lisp이나 Smalltalk 하던 엔터프라이즈 쪽 사람들이 Common Lisp이나 Smalltalk가 망하면서 대안으로 ‘그나마 덜 나쁜’ 언어였던 Python으로 넘어와서 Zope 같은 물건들을 만들었죠. 사실 Python 철학의 많은 부분들이 이러한 ‘오래된 집단’의 지혜로부터 온 면이 많습니다. 쉽게 말해, Python 해커들은 보통 Python이 첫번째 언어가 아닙니다. 원래 다른 언어로 프로그래밍을 능숙하게 하던 사람들이 이런 저런 이유로 ‘말년에’ 선택한 언어가 Python이예요. 일종의 이민자의 땅인 셈이죠. 그래서 커뮤니티 내에서 퍼진 미덕이나 철학이 Ruby에 비해 상식적입니다. 가령 Python 커뮤니티는 sys.modules가 나쁜 것이라고 하는 반면 Ruby 커뮤니티는 open class가 좋은 것이라고 합니다.
위에서 말했던 부분에서 마지막 차이점이 발생하는데요. 그 당시 Python 해커들은 대체로 원래 자기가 능숙하게 쓰던 언어들이 있었습니다. 더욱이 그 언어가 C 같은 것들이 아니라 Common Lisp 같은 것이었다면 PHP나 Java 쓰던 사람이 Ruby 쓰면서 느끼는 놀라움 같은 것은 없었을 거라고 봅니다(…). 그러다보니 Python 언어는 커뮤니티의 입김을 많이 받는 쪽으로 성정한 것 같아요. 또한 Perl의 영향력이 대단했던 시기였기 때문에 그 당시 Python을 쓰던 사람들도 커뮤니티의 중요성을 잘 이해했습니다. 그리하여 Python 커뮤니티의 큰 특징이 하나 생기는데 “언어 사용자가 언어를 디자인해야 한다”는 인식입니다. 그래서 또 PEP이라는 언어를 개선하는 표준적인 절차가 마련됐고요. 언어 사용자가 언어에 기여해야 한다는 이런 생각은 나중에 PyPy 같은 것까지 나오게 만듭니다. 언어에 기여하려는데 Python VM은 정작 C로 되어 있으니 많은 사람이 개선을 못하죠. 그러니까 Python으로 Python 언어를 구현해야 한다는 발상도 나온 거구요.
반면 Ruby는… ruby-dev 메일링리스트는 몇년 전까지만 해도 일본어로 운영됐어요. 지금은 어떤지 정확히 모르겠지만, 여전히 영어하고는 거리가 먼 일본인들이 언어 개발의 주축입니다. 이러면 커뮤니티 접근성이 떨어지죠.
저는 Ruby가 10년 정도 뒤에는 커뮤니티 수준이 많이 좋아져 있을 거라고 생각합니다. 하지만 10년 뒤에도 Ruby가 다른 언어에 비해 상대적으로 “현대적인” 언어로 취급될지는 모를 일이지요.
당연히 여기서 쓴 내용은 제가 원인이라고 짐작하는 것이고, 아마 실제 원인은 더 다양하지 않을까 합니다.
Liked by:
Kenu Heo
64비트여우
즈눅
Eunchong Yu