TechRepublic의 Chief reporter Nick Heath가 TechRepublic에 기고한 기사의 한국어 번역입니다.

각주는 제가 배경 지식이 필요하다고 느끼는 곳에 달았습니다. 원문에는 없습니다.

파이썬의 간략한 역사를 소개하고 있습니다. 파이썬이 어떤 목적을 위해 만들어졌는지 맥락을 알아두면 배우기 좀 더 쉽지 않을까요?


1994년 말, 일군의 프로그래머가 미국 전역에서 모여 그들의 비밀 무기에 대해 논의했다.

Barry Warsaw는 당시 새로이 만들어진 프로그래밍 언어였던 파이썬의 첫번째 워크샵에 참가한 그 20여명의 개발자 중 한 명이었고 초기 사용자들 사이에 도사린 흥분을 기억하고 있었다.

“특히 ‘내가 여기 있는 이유는 우리가 파이썬을 사용하는 그 자체만으로 경쟁력을 갖게 되기 때문이야’라고 했던 한 사람이 생각납니다. 파이썬은 그들만의 비밀무기였죠.”

메릴랜드에 있는 당시의 미 국가 표준원에서 열린 초기 미팅에서도, Warsaw는 파이썬이 코드를 짜고 간단한 일을 처리하는데 뭔가 새로운 것을 제공함이 명백하다고 말했다.

“내가 처음 파이썬에 접했을 때, 특별한 무언가가 있다는 걸 알았어요. 코드를 읽을 수 있으니까 파이썬으로 코딩을 하는게 즐거웠죠.” 그가 회상했다.

파이썬은 이제 초기 개발자 집단을 넘어 빠르게 확산하고 있다. 몇몇은 파이썬이 곧 세계에서 가장 인기있는 프로그래밍 언어가 되리라고 예측한다. 가장 빠르게 사용자가 늘고 있기 때문이다. 매일 수백만명이 파이썬을 사용하고, 사용자의 지수적인 증가세는 줄어들 기미가 보이질 않는다.

파이썬은 크고 작은 작업에 프로와 아마추어를 가리지 않고 사용되고 있으며 특히 웹 개발자, 데이터 과학자, 시스템 관리자에게 인기가 많다. 올해 초 500,000,000,000,000,000,000 km 떨어진 블랙홀의 사진을 합성할 때 사용된 것도 전 세계의 수많은 데스크탑 컴퓨터에서 실행된 파이썬 스크립트였다.

파이썬은 세계적인 조직들에서 핵심적인 역할을 수행하고 있다. 넷플릭스에서 1억 이상의 가정에서 비디오를 스트리밍하는데, 인스타그램의 사진 공유에, NASA의 우주 탐사에 사용된다.

초창기의 파이썬

어떤 면에서 파이썬의 부상은 그 이름을 따온 영국 코미디 그룹만큼이나 비현실적이고 놀랍다. 이 언어는 자신만의 틈새 영역에서 이와 같은 인기와 영향력을 얻게 되었다.

이 프로그래밍 언어는 네덜란드의 프로그래머 Guido van Rossum의 사이드 프로젝트로 시작되었다. 1980년대 후반 van Rossum은 네덜란드의 수학과 컴퓨터 과학을 연구하는 국립 기관인 Centrum Wiskunde & Informatica (CWI)에서 일하고 있었다. 당시 언어들에 실망한 그는 좀 더 쓰기 쉽고 강력한 새 언어를 만들기로 마음먹었다.

문외한에게 나만의 프로그래밍 언어를 만드는 것이 항공기를 만드는 것처럼 느껴질 지 모르지만 30대의 van Rossum은 그렇지 않았다. 그는 CWI의 한 팀에서 3년간 ABC라는 인터프리터 언어를 만든 경험이 있었기 때문에 프로그램 명령어를 실행시키는 인터프리터를 만드는 데 뭐가 필요한 지, 필요한 문법 블럭은 무엇인지 이미 이해하고 있었다.

van Rossum이 사용한 당시의 프로그래밍 언어는 뭔가를 하기가 매우 어려웠다. 그가 작업하던 Amoeba 분산 컴퓨팅 시스템에서는 C나 Unix shell로 작업을 해야 했는데, 둘 다 심각한 제한이 있었다. C에서는 개발자가 손수 메모리를 관리하면서 복잡함과 씨름해야 할 뿐 아니라 자주 필요한 작업들을 처리할 재사용 가능한 라이브러리가 없어서 프로젝트를 할 때마다 모든 바퀴를 재발명해야 했다. Unix shell은 흔한 작업에 필요한 도구들을 잘 제공했지만, 너무 느려서 복잡한 작업에는 맞지 않았다.

개발자들을 괴롭히는 이런 언어들을 선택하느니 van Rossum은 인터프리터 언어를 새로 만들고 ABC의 기능들을 따오는 것이 최선이라 생각했다.

“나는 그저 ‘그냥 언어를 새로 하나 만들어야겠다’고 생각했을 뿐이에요. ABC에서 내 아이디어들을 가져오고, 3년짜리 프로젝트 대신 나 혼자 끝낼 수 있는 규모로요. 스컹크 웍스의 3개월짜리 프로젝트처럼요.”

van Rossum은 1989년 후반부터 진지하게 일을 하기 시작했고, 그가 제일 좋아하는 코미디 극단인 몬티 파이썬의 비행 서커스에서 이름을 따와서 시간이 날 때마다 프로젝트를 진행시켰다.(뱀이 꼬인 모양의 파이썬 로고는 나중에 만들어졌다)

“당시 난 별로 사교적이지 않았는데요, 그냥 TV나 보는 대신 코딩을 하거나, TV를 보면서 코딩을 했죠.”

원래 파이썬은 업무를 위해 만들었지만, van Rossum은 그만의 언어를 창조하는 도전에서 점점 더 많은 자극을 받았다.

“이걸 만들면서 생산성이 향상될 거라고 얼마나 진지하게 믿었는지는 나도 잘 모르겠어요. 나만의 큰 프로젝트를 시작한다는 생각을 약간은 즐겼던 것 같아요. 내가 빼고 싶은 코드는 빼고, 내가 원하는 대로 디자인하면서요. 프로그래밍이 재미있었거든요.”

그 당시 van Rossum과 비슷한 생각을 한 많은 사람들이 있었다. 1980년대 후반, 많은 주요 언어들이 당시 도구에 실망해서 만들어졌다. Larry Wall은 잘 알려져 있듯이 ‘게으름, 조바심, 오만’1에 충만한 채 코딩을 통해 문제를 해결하는 것이 너무 어려워서 펄을 만들었다. 마찬가지로 John Ousterhout는 IC 회로를 만들기 위한 인터랙티브 툴을 만들기 위해 더 좋은 언어를 찾아 나선 끝에 Tcl을 만들었다.

van Rossum은 그의 말에 따르면 현대적인 기능은 빠져 있지만 원형은 그대로인, 인터프리터 언어 파이썬의 동작하는 프로토타입을 3개월만에 만들어 냈다.

“현재 파이썬은 그때는 없었던 많은 중요한 추상화를 제공하지만 보기에는 비슷합니다. 그 시점에 나는 인터프리터의 모든 기본적인 컴포넌트와 동작하는 언어를 만들어 냈어요. 처음 만든 파이썬 인터프리터로 동작하는 파이썬 프로그램은 아마 지금도 잘 동작할 겁니다.”

그는 함수 정의, 들여쓰기, 딕셔너리, 튜플 모두 지금과 똑같은 문법을 사용하고 입력한 파이썬 코드를 해석하는 익숙한 파이썬 인터랙티브 프롬프트 역시 있었다고 덧붙였다.

그러나 그의 두 동료가 언어를 살펴보고 즉시 사용하기 전까지 van Rossum은 이것이 널리 사용되리라고는 생각하지 않았다. 그는 이미 인터넷 이전 시대에 프로그래밍 언어가 배포되는 것이 얼마나 어려운지를 겪어본 사람이었다.

지금은 몇 번의 클릭만으로 소프트웨어를 공유할 수 있지만 1980년대, van Rossum이 파이썬의 전신인 ABC를 배포했을 때는 전부 손으로 하는 일이었다.

“85년 정도였을 겁니다. 내가 생애 처음으로 미국 여행을 갔을 때, 내 짐에는 자기 테이프가 꽉 차 있었죠.”

그는 미국에 갈 때 당시의 (소스 코드처럼 커다란 것은 보낼 수 없었던) 초보적인 이메일 시스템으로 ABC에 관심있다고 연락한 사람들의 주소와 전화번호들을 모아갔다. 그리고 일일이 그들을 방문해 자기 테이프를 건넸다. 이런 노력에도 불구하고 ABC는 그다지 유행하지 않았다.

“기능은 정말 멋졌지만, ABC를 별로 유행시키지 못했던 게 이상한 일은 아니죠.”

그러나 인터넷 혁명이 끓어오르자, 캐리어 한가득한 자기 테이프 없이도 파이썬을 배포하는 일이 더 쉬워졌다.

van Rossum은 파이썬을 alt.sources라는 뉴스 그룹을 통해, 오픈소스라는 말이 생기기 6년 전인 1991년 일종의 오픈소스 라이센스로 세계에 배포했다. 파이썬 인터프리터는 여전히 21개의 분할압축 파일을 밤새도록 유즈넷 네트워크에서 다운받아야 쓸 수 있었지만, 수년 전처럼 손으로 배달하는 것보다는 훨씬 효율적인 방식이었다.

“이걸로 어떤 종류이든 성공을 거두기를 바랐어요. 나는 이미 최소 한 번 배포하고 실패작으로 끝나는 것을 경험했죠.”

돌이켜보면 van Rossum은 파이썬의 성장하는 유저 베이스를 알아채기까지 꽤 오랜 시간이 걸렸다고 한다. 점차 모멘텀이 만들어지는 것을 깨닫고 몇 차례 파이썬 커뮤니티와 상호작용한 끝에 그는 성공적인 무언가를 만들어 냈다는 것을 알았다.

“알아차리는 게 굉장히 더뎠던 것 같아요. 첫 오픈소스 릴리즈 이후 릴리즈 주기를 만들고 막 생겨난 파이썬 커뮤니티와 상호작용을 했죠. 아주 중요한 일처럼 느껴졌죠.”

파이썬이 승리한 이유

파이썬은 1990년대 초중반부터 인기를 끌기 시작했다.

van Rossum은 개발자들이 그와 같은 이유로 파이썬에 끌렸을 것이라 믿는다. 그들은 사용성과 기능성 사이의 균형을 갖는, 복잡한 로직을 다룰 때의 Unix shell와 같은 제한이 없는 고수준 언어를 원했다. 또 메모리 관리와 기본적인 코드를 다시 구현하도록 강요하는 C를 버리고 싶어했다.

Warsaw는 파이썬이 사용성을 갖추면서도 가능한 것들을 희생시키지 않는 적절한 선의 균형을 찾았다고 말했다. 1990년대 초에는 이런 균형을 갖춘 주류 언어가 없었다. “나는 펄과 Tcl, C 코딩을 정말 많이 했지만 재미를 느낄 수 없었습니다. 파이썬이 뜨면서 나는 ‘와, 이게 프로그래밍을 다시 재미있게 만드는군’ 하고 느꼈죠.”

파이썬은 개발자들이 읽기 쉽도록 코드 블록을 들여쓰기로 구분하는 알기 쉬운 문법을 제공한다.

애널리스트 펌 가트너의 Application Platform Strategies 팀 research director인 Fintan Ryan은 이런 분명함이 1990년대와 현재 모두 개발자들 사이에서 뜨는 이유가 됐다고 말한다. 들여쓰기에 그렇게 중요한 역할을 맡기는 것이 다소 의견이 엇갈릴 수 있음에도 불구하고 말이다. “파이썬은 아주 깨끗한 문법을 제공해요. 다른 언어도 할 수는 있지만 파이썬은 자동으로 이걸 강제하죠. 어떤 프로그래머는 이걸 좋아하고, 몇몇은 싫어하죠.” 그가 말했다.

파이썬이 깨끗하고 읽기 쉬운 코드를 우선시하는 것은 우연이 아니다. 기록에 따르면 van Rossum은 프로그래밍 언어는 컴퓨터에게 무언가를 시키는 수단일 뿐 아니라 개발자들 사이에 생각을 공유하는 매개체임을 강조했다.

이런 가독성과 함께, Ryan은 옛날부터 파이썬이 뛰어난 빌트인 기능을 제공하기 때문에 다른 언어보다 앞서나갔다고 말했다. “처음부터 클래스와 예외 처리가 포함되어 있죠. 파이썬은 또 여러 경우에 유용한 람다, 맵, 필터 기능을 제공합니다.”

80년대의 언어가 조금 더 좋았다면 아마 파이썬은 존재하지도 않았을 것이다. 그가 CWI에서 일할 때 Amoeba 분산 컴퓨팅 시스템에 펄 언어가 호환이 안됐던 것도 van Rossum이 파이썬을 만든 동기 중 하나이다.

“펄을 Amoeba에 포팅할 수 없다는 것이 파이썬에게는 행운이었죠. 포팅이 가능했다면 나는 내 언어를 만들 생각은 안했을 겁니다.”

출시 이후 몇몇 하드코어 팬들을 확보하긴 했지만 1990년대 파이썬은 여전히 마이너였다. van Rossum은 경쟁자인 Tcl/Tk와 펄 모두 파이썬의 쉬운 사용과 상대적인 강력함이라는 목표를 공유했다고 말했다.

“90년대에 최고 언어 3개가 있었는데, 펄, 이 무거운 언어가 단연 1위였죠. Tcl/Tk가 두번째였고, 파이썬은 아주 겸손한 3위였습니다.”

프로그래밍 언어의 현황을 잘 보여주는 스택오버플로우 개발자 설문에 따르면 오늘날 파이썬은 활성 개발자 수가 가장 빠르게 성장하는 언어이다. 반면 펄은 언급되지도 않을 만큼 쪼그라들었다.

이런 폭발적인 성장세는 아래 그래프에 나와있는데, 스택 오버플로우의 질문개수가 다른 언어와 비교해서 얼마나 빨리 성장했는지 보여준다.

javascript, python, java, c#, php, c++ 연도별 스택오버플로우 질문 개수 비교그래프

그래서 파이썬은 어떻게 왕년의 라이벌 펄과 엇갈린 운명이 되었을까? van Rossum은 일정 규모 이상에서의 유지보수성이 그 차이를 만들었다고 믿는다.

“사람들의 경험상 펄은 10줄의 스크립트를 쓰기에는 완벽한 언어입니다. 반면에 몇 천줄 정도의 라이브러리를 포함한 500줄 정도의 코드를 작성할 땐 펄로 유지보수하기 쉬운 코드를 만드는 데 많은 노력이 필요합니다. 파이썬은 별 다른 노력을 들이지 않고도 꽤 가독성있고 유지보수하기 쉬운 코드를 만들어 나갈 수 있죠.

van Rossum은 파이썬의 배우기도 쉬우면서 큰 애플리케이션을 만들기 충분한 견고함의 조합이 1990년대의 초창기 성공 비결이라고 생각한다.

“그때 몇몇 인터넷 개발자들은 (대부분은 초창기 인터넷 작업이었습니다) 점점 더 큰 애플리케이션을 개발하고 싶어했고, 파이썬으로 짜는게 C, C++, 자바로 짜는 것보다 노력을 덜 들인다는 것을 알았죠”

1990년대 파이썬이 확산하는 동안 여전히 CWI에서 일했던 van Rossum은 그의 발명품이 그를 전 세계의 사람들과 이어주는 것을 발견했다.

“내가 만든 뭔가가 나를 전 세계의 사람들과 이어주었죠. 호주, 미국, 유럽 국가들… 나는 인생의 전성기를 누리고 있었습니다.”

파이썬과 웹

1990년대 중반, 파이썬은 새로운 방식으로 사용되기 시작했다. 오디오 녹음 따위를 위한 스크립트에서 웹 개발 분야로 진출하기 시작했다. 그리고 그것은 나중에 파이썬의 주요 사용처가 되었다.

“웹개발은 큰 분야죠. 저도 아주 큰 흥미를 가졌었습니다.” van Rossum이 파이썬이 웹서버의 백엔드 스크립팅에 사용된다고 말하면서 말했다. “파이썬으로 동적 웹 페이지도 만들 수 있어요. 제가 제일 좋아하는 애플리케이션 중 하나였죠.”

가트너의 Ryan은 1990년대의 파이썬의 인기는 빠르게 강력한 스크립트를 짤 때 가장 선호되는 언어가 되었기 때문이라고 말했다. “기능이 강력한 스크립트 언어가 되면서 많은 사용자에게 진입장벽을 낮춰주었죠”

뿐만 아니라 라이언은 언어가 충분히 많은 걸 할 수 있고 기술 전문가를 포함해 다양한 종류의 사용자에게 쉽게 사용될 수 있다고 지적했다. “시스템 관리자는 시스템 자동화를 위해 파이썬을 쓰고, 개발자는 함수형 프로그래밍이나 상속 가능한 클래스 기능때문에 파이썬을 고르죠. 예를 들어 펄은 이런 기능이 많이 부족합니다.” 그가 말했다. “이 언어에 한 번 익숙해지면 학습 곡선이 아주 낮기 때문에 빠르게 생산성있게 사용할 수 있죠.”

1994년 파이썬은 당시 미국 표준원(US National Bureau of Standards, NBS), 현 미국 표준 산업 협회(US National Institute for Standards and Technology, NIST)의 시니어였던 Michael McLay의 눈길을 끌었다. McLay는 사용이 쉬워서 연구자와 과학자의 사랑을 받는 파이썬의 선구자적으로 van Rossum의 말마따나 “상당한 양의 데이터를 처리해야 했지만 그리 좋은 코더는 아니었던” NBS의 과학자들이 어떻게 파이썬을 쓸 수 있을 지 흥미를 가졌다.

기관의 다른 사람들에게 파이썬을 팔아보고자 McLay는 van Rossum을 초빙했다. 당시 그는 여전히 네덜란드의 CWI에서 일하고 있었고 2달동안 NIST에서 게스트 연구자로 일하기로 했다. 이 초빙은 훗날 파이썬이 진화하는 촉매가 되면서 van Rossum의 삶에 큰 변화를 갖는 것으로 밝혀졌다.

NBS의 사무실에서 파이썬의 첫번째 워크샵이 열린 것도 이 때였다. 거기서 van Rossum, Barry Warsaw를 포함해 초기의 파이썬 광들이 모여 파이썬의 사용처와 언어의 미래 방향에 관해 논의했다.

NBS의 사무실에서 van Rossum은 인터넷의 핵심 기술인 TCP/IP 프로토콜 개발에 참여한 것으로 유면한 Bob Kahn과 만난다.

이 만남에서 Kahn은 버지니아의 네트워크 기술의 전략적 개발을 위한 비영리 리서치 그룹인 CNRI(Corporation for National Research Initiatives)에서 같이 일해보지 않겠냐고 제안한다.

파이썬이 새로운 타입의 프로그래밍 언어의 수요를 충족시켜 주었듯이 van Rossum은 그가 CWI에서의 미래에 의문을 품을 무렵 그 제의가 왔다고 말했다.

“CWI는 좀더 학술적인 단체였고 내게 PhD를 따거나 다른 일자리를 찾으라고 슬며시 등을 떠밀고 있었어요. 내 나이가 약 35세 정도였는데 이제와서 PhD를 따는 것은 그다지 끌리지 않았죠. 그 전에도 파이썬 덕분에 다른 길을 제안받았습니다. 그때는 여러 번의 전화 통화와 생각 끝에 가지 않기로 결정했었지만 이번 제의는 그 사람들과 그들이 제공하는 것, 프로젝트가 마음에 들었고 그래서 갔습니다.”

CNRI에서 van Rossum은 동료 파이썬 광들과 함께 파이썬 언어 관리 구조를 집대성했다. 1995년 4월 CNRI에 들어간 van Rossum은 Knowbot 프로그램이라고 불리는, 인터넷 등의 분산 컴퓨터 시스템의 모바일 에이전트 소프트웨어의 개발 팀을 이끌었다.

그 팀은 파이썬으로 작업을 했고, van Rossum은 훗날 모두 파이썬 커뮤니티에서 중요한 역할을 한 Jeremy Hylton, Roger Masse, Barry Warsaw, Ken Manheimer, Fred Drake와 만난다.

“우리는 4명에서 10명 사이의 그룹으로 일했는데 대부분은 CNRI에서 일했고 파이썬 개발의 코어 역할을 했습니다.” van Rossum이 말했다.

van Rossum이 CNRI에 있을 때, 이 팀은 그가 python.org 웹사이트를 만드는 것을 도왔고, 코어 코드 베이스의 CVS 서버를 관리했으며 파이썬 언어의 개선과 유지를 위해 일하는 Python Special Interest Groups 메일링 리스트를 관리했다.

1991년 퍼블릭 릴리즈 이후 파이썬 사용자 커뮤니티의 규모는 크게 늘어났고 90년대 후반에는 세계적인 규모의 유저 베이스를 모을 수 있었다. 그 기간동안 언어의 관리가 절차화되었고, 2001년 세워진 파이썬 소프트웨어 재단(PSF)의 전신이 되는 단체가 만들어진다. 커뮤니티가 커져가면서 격년마다 개최된 파이썬 워크샵은 1994년부터 매년 열리는 큰 행사가 되었고, 마침내 PSF의 연례 행사이며 지금까지 큰 영향력을 갖고 있는 PyCon이 되었다.

21세기에 들어서면서 1994년 여름 초창기 파이썬 사용자들이 ‘귀도가 버스에 치이면 어떻게 되지?’라며 걱정했던 것과는 달리 언어의 개발에 커뮤니티가 왕성한 역할을 하면서 한 사람이 주도하는 범위를 넘어서게 되었다.

그러나 van Rossum은 여전히 핵심적인 역할을 맡고 있으며 언어의 중추가 된 그의 사상은 없어지지 않을 것이다. 그가 “자비로운 종신 독재자”(Benevolent dictator for life, BDFL)로 장난스럽게 불리고 있는 것이 그 증거이다.

“나는 꽤 오래 이런 압박감을 잘 소화해 왔고 다른 사람들에게 많은 것들을 위임할 수 있도록 프로젝트 관리에도 실력이 붙었습니다.”

가트너의 라이언은 언어를 만든 사람이 이런 관리자 역할을 맡는 것이 흔한 경우라고 지적하며 펄의 Larry Wall과 자바스크립트 런타임인 Node.js의 Ryan Dahl을 언급했다. 그러나 van Rossum은 파이썬의 관리에 공정한 것으로 유명하다고 언급했다.

“그는 프로젝트의 방향과 그의 관리에 관해 대체로 아주 균형적으로 알려져 있습니다.”

실제로 van Rossum이 파이썬의 성공 비결로 꼽은, 코어 개발자들의 커뮤니티에서의 공개 토론은 파이썬 개발에서 자연스러운 문화다.

파이썬의 진화

그동안 파이썬에는 몇 가지 급격한 변화가 있었다. 2008년 언어를 현대화하는 파이썬 3.0이 소개되었고, 최근에는 언어가 관리되는 방법에 큰 변화가 있었다.

이 변화는 작년 할당문을 표현식으로 간주하도록 한다는 내용의 파이썬 개선 제안서(Python Enhancement Proposal) PEP572에 관한 의견 불일치를 둘러싸고 van Rossum이 BDFL로서의 자리를 내려놓는다고 발표한 것을 계기로 촉발되었다.

이를 도입하면 코드를 좀더 효율적으로 쓸 수 있지만 van Rossum은 온라인에서 심한 반대에 부딪혔다. 몇몇은 이 문법을 사용하면 코드가 더 읽기 어렵고 유지하기 힘들어진다고 주장했다.

van Rossum은 그가 이런 신기능에 관한 토론에는 익숙했지만 반대론자의 비타협적인 태도와 그런 공격들에 대한 개인적인 감정 때문에 사임할 마음이 굳어졌다고 말했다.

“기술적으로 동의하지 않는 사람들이 소셜 미디어에서 의사 결정 프로세스가 망가졌다며 폭언하거나 내가 미친 실수를 하고 있다고 말하는 것에 실망했습니다. 뒤통수를 맞은 느낌이에요. 과거에는 언어나 기능상의 발전에 변화를 내려야 할 때 모든 코어 개발자들이 투명하게 장단점을 토론하곤 했죠. 명확한 합의가 있든 없든 나는 그 내용을 머리속에서 되새겨본 다음에 결정을 하곤 했습니다. PEP572는 물론 논쟁적이긴 하지만 나는 ‘하면 좋을 것 같다’고 결정했는데 사람들은 차이를 인정하고 끝내려고 하지 않아요.”

“반감 같은 것은 아니지만, 나는 코어 개발자 커뮤니티에 일을 맡길 만한 충분한 신뢰가 가지 않아요.”

그는 언어에 관한 협의 과정이 바뀌는 것은 파이썬 사용자가 늘어난 탓도 있다고 생각한다.

“파이썬 커뮤니티가 정말 커졌다는건 사실이죠. 어떤 형태로든 합의에 도달하는 것도 당연히 더 어려워졌구요. 어떻게 결정하든 의견이 다른 누군가가 있을 테니까요.”

올 초 파이썬 코어 개발자들, 즉 파이썬의 리퍼런스인 CPython의 유지보수와 업데이트를 하는 사람들은 언어의 미래를 위해 운영 위원회를 선출했다. van Rossum이 Warsaw와 동료 코어 개발자인 Brett Cannon, Carol Willing, Nick Coghlan 등과 함께 뽑혔다.

Warsaw는 이렇게 빠르게 유저 베이스가 성장하는 언어를 관리한다면 변화는 필수적이라고 말했다.

“Guido에게는 온 세상을 떠받들고 있는 것처럼 느껴질 거에요. 25년 전 파이썬이 훨씬 작은 커뮤니티였고, 작은 언어였을 때는 괜찮았지만, 이제 한 사람이 짊어지기는 너무 무거운 짐이죠. 그의 건강과 커뮤니티에 미치는 영향력을 생각해서라도 그 짐을 다섯이서 나눠 들 수 있다면 좋을거에요.”

운영 위원회의 선출은 파이썬의 새로운 기능이 릴리즈 될 때마다 있을 것이다. Warsaw 말마따나 언어의 차세대 리더십을 위해 길을 닦아놓는 것이다.

“파이썬이 앞으로 25년 후에도 여전히 건강하다면 Guido와 내가 그걸 관리할 수는 없겠죠.” 그가 말했다.

운영 위원회의 조직은 더 넓은 파이썬 코어 개발자 커뮤니티로부터도 환영받았다. 코어 개발자 Mariatta Wijaya는 이것이 맞는 방향이라고 말했다. “나는 한 사람이 모든 걸 결정하는 것보다 운영 위원회를 더 선호합니다. 한 명에게는 너무 큰 책임이고 짐이죠. 좋은 신호이고, 커뮤니티가 더 많은 인풋을 받을 수 있도록 해줄 겁니다.”

파이썬의 미래

파이썬은 계속해서 큰 비율로 신규 사용자를 끌어오겠지만 커뮤니티의 일부는 이 성장을 유지하고 파이썬이 더 진화하기 위한 도전에 직면해 있다고 본다.

올해 파이썬 언어 회의에서 BeeWare의 코파운더 Russell Keith-Magee는 파이썬의 모바일과 새 웹 플랫폼 지원이 나아지지 않으면 “실존하는 리스크”에 직면할 것이라 경고했다.

“폰과 태블릿은 데스크탑과 랩탑이 일찍이 도달하지 못한 시장 침투력을 달성했습니다. 하지만 커뮤니티에서 이 디바이스에 파이썬을 활용할 시나리오를 만들지 못하고 있습니다.” 그는 아들이 학교에서 아이패드를 활용하고 있다며 말했다. “랩탑이 틈새 시장 디바이스가 되면 파이썬은 어떻게 되는걸까요?”

Keith-Magee의 BeeWare 프로젝트는 파이썬 애플리케이션을 어디서든 구동할 수 있도록 하는 것을 목적으로 하고 있다. 그는 파이썬이 표준 x86 PC 이외의 플랫폼에서 구동될 때의 문제점을 적은 기나긴 리스트를 나열했다.

그는 다음과 같은 것들을 지적했다. x86이 아닌 보다 새로운 하드웨어 플랫폼에서 코드를 컴파일하기 위한 더 나은 지원이 필요하다. 파이썬의 테스트들이 모바일과 웹 플랫폼에서 깨지는 경향이 있다. 파이썬 앱의 사이즈가 실제 하는 일에 비해 지나치게 크고 더 작은 단위의 의존성으로 분리할 수가 없다. 안드로이드, 윈도우, 웹의 GUI 코드를 짤 때 각각 asyncio 라이브러리를 사용하려면 큰 노력이 든다. 표준 라이브러리의 모듈 개수가 CPython 이외의 인터프리터에서 호환이 안된다.

Warsaw는 Keith-Magee가 여러 부분을 잘 지적했으며 폰, 태블릿, 웹어셈블리 등의 새로운 플랫폼에 파이썬이 어떻게 참여할 것인지 중요하다고 믿는다고 말했다.

“파이썬은 아직 새로운 플랫폼에 좋은 선례를 만들지 못했습니다.” Warsaw가 사용자가 아이폰이나 안드로이드 앱이 “파이썬으로 쓰였는지 눈치채지 못하게 하겠다”는 야망을 이야기하며 말했다.

최근 칩 안에 들어있는 프로세서 코어 개수가 늘어나면서(인텔의 최근 서버 제품에 48코어까지 등장했다) Warsaw는 파이썬이 이런 멀티 코어를 더 잘 지원하는 데 또한 관심이 있었다.

그는 Eric Snow의 sub-interpreter의 잠재성과 함께 이를 파이썬 코드 동시성 개선으로 확장시키는 데 흥미를 보였다. “더 많은 작업들이 멀티 코어의 이점을 누리는 것을 보고싶어요.”

Snow는 파이썬에서 효율적으로 태스크를 멀티 프로세서에 할당하는 장기 프로젝트에 참여했었고 그 중 파이썬에 있는 sub-interpreter를 개조해서 이것이 언어의 전역 인터프리터 락(global interpreter lock, GIL)과 상호작용하는 부분을 개선하는 데 집중했다.

“아직 파이썬 3.8이나 3.9에 들어가기에는 준비가 안되었습니다.” Warsaw가 말했다. “아마 2년이나 2년 반쯤 걸릴 것 같습니다. 나는 꽤 긍정적이에요. 전 이걸 중요하게 생각해서 Eric이 이 작업을 계속 해주는 것이 아주 기쁩니다.”

Gillectomy처럼 멀티 스레드 파이썬 앱을 시도하다 실패한 프로젝트도 파이썬 멀티코어 작업에 흥미로운 시사점들을 남겼다고 그는 말했다.

파이썬 커뮤니티는 또한 파이썬의 빌트인 표준 라이브러리를 현대화하려고 하고 있으며 최근 라이브러리의 버려진 모듈들을 가지치기하는 제안서를 내놓았다. 그와 함께 파이썬 표준 라이브러리에 관한 최근의 비판들을 언급했다. 파이썬의 표준 라이브러리는 다양한 작업을 처리할 수 있게 되어 있어 파이썬의 강점 중 하나로 여겨지고, 그게 파이썬이 ‘배터리 포함’2이라고 불리는 이유였다. 그러나 올해의 파이썬 언어 회의에서는 사용자가 표준 라이브러리를 사용하는 것이 PyPI 리포지터리에서 직접 라이브러리를 선택하는 것보다 더 나은 것인가 하는 의문이 제기되었다.

또, 몇몇 사람들로 이루어진 집단, 즉 파이썬 코어 개발자들과 파이썬 운영 위원회가 언어의 개발 전체를 조망하는 것이 2019년 파이썬 사용자의 다양성을 잘 반영할 수 있을까 하는 의문도 제기되었다.

“나는 젠더 밸런스와 인종을 포함한 모든 다양성 지표를 아우를 수 있는 대표를 보고싶습니다.” Wijaya가 말했다.

“PyCon에서 나는 인도와 아프리카의 PyLadies 멤버와 대화했습니다. 그들은 ‘파이썬이나 PyLadies에서 우리는 북미나 캐나다에 있는 사람들을 연상합니다. 세계의 나머지 부분에도 많은 사용자가 있는데도요. 왜 우리는 이들을 잘 못볼까요?’라고 지적했습니다. 그 말에 매우 공감하며, 그렇게 되기를 기대하고 있고 그를 위해 우리 모두 노력해야 할 겁니다.”

모든 것을 운영하는 소위 ‘자비로운 독재자’ 모델에도 불구하고 결국 최근 파이썬을 구성하는 많은 아이디어는 커뮤니티, Warsaw 말마따나 파이썬의 새로운 용도를 위한 문을 여는 사람들에게서 나왔다.

“탑 다운으로 내려오는 것보다 정말 많은 아이디어가 커뮤니티에서 솟구쳐 올라옵니다.” 그가 말했다.

간단한 커뮤니티 프로젝트가 큰 영향을 줄 수 있는 예가 Python 3.5에서 추가된 타입 힌트이다. 한 PhD 학생이 2012년 시작한 mypy 프로젝트에서 영감을 받았다. 타입 체킹을 도입할 수 있도록 해서 자칫 생겨날 수 있는 많은 버그를 막아준다.

이런 안전망을 덧붙이는 것은 여러 사람이 큰 코드베이스에서 작업할 때는 아주 중요하다. 코드가 해야 할 일과 하지 말아야 할 일을 구분하는 것은 큰 차이를 낳을 수 있다.

“나에게는 이런 장치 덕분에 인스타그램처럼 큰 회사에도 파이썬을 도입할 수 있다는 것이 정말 중요합니다.” Warsaw가 말했다. 그는 커뮤니티에서 나온 아이디어가 언어에 큰 영향을 미칠 수 있는 다른 예로 asyncio를 들었다.

운영 위원회가 만들어지고 전에 없던 규모의 사용자가 생기면서 van Rossum은 “언어의 커뮤니티 주도 개발”이 계속해서 “믿을 수 없이 성공적”일 것이라 낙관했다.

“우리에겐 새로운 거버넌스 시스템을 갖춘 튼튼한 코어 개발자 커뮤니티가 있죠. 우린 이제 언어가 진화하는 데 필요한 어떤 것도 할 준비가 되었습니다.” 그는 커뮤니티의 파이썬에 관한 깊은 이해를 호평하며 말했다.

아직도 파이썬 커뮤니티가 새로운 사용처를 발굴하는 능력을 의심하는 사람이 있다면 최초의 블랙홀 사진을 합성하는데 파이썬의 역할을 보여주는 것으로 충분하다고 Warsaw가 말했다.

“그건 날 완전히 날려버렸어요. 파이썬 커뮤니티에는 내가 볼때 파이썬에 미친 과학자처럼 보이는 사람들이 있죠. 그들은 항상 이런 걸 생각하죠. 음, 지금은 이런 걸 할 수 있군. 얼마나 더 많은 걸 할 수 있을까?”