6월 초, 오늘 열린 PyCon US 컨퍼런스에서 Python의 아버지인 Guido van Rossum이 "Python Language"라는 제목으로 연설을 했습니다. 최근에는 IT 매체인 인포월드와의 인터뷰에 응해 파이썬의 미래에 대해 이야기했다. 귀도 신부가 파이썬의 미래에 대해 어떻게 생각하는지 살펴보겠습니다.
모바일 컴퓨팅 분야에서 Python의 적용
귀도: 모바일은 여전히 Python에게는 어려운 플랫폼이지만 Python이 실제로 실행될 수 있기 때문에 브라우저 플랫폼만큼 어렵지는 않습니다. 모든 브랜드의 스마트폰에 적용됩니다. Python의 모바일 버전을 구축하는 방법을 아는 사람을 찾으면 됩니다.
표준 CPython 소스 코드는 Android 및 Apple 휴대폰에서 실행할 수 있는 바이너리로 거의 컴파일될 수 있습니다. 이 분야에서 열심히 일하고 패치 패키지를 지속적으로 제공하는 사람들이 많이 있습니다. 그러나 내가 원했던 것보다 진행 속도가 더뎠습니다. 그런데 저는 모바일 앱을 직접 개발하지 않아서 직접 참여할 의욕이 별로 없어요. 그러나 나는 이것에 대한 진전을 보고 싶습니다.
파이썬이 자바스크립트를 대체한다?
귀도: 이것은 우리의 목표가 아닙니다. 브라우저 플랫폼의 구조적 문제로 인해 우리가 할 수 있는 것은 Python을 JavaScript로 변환하는 것뿐입니다. 그러나 일반적으로 번역된 프로그램은 기본 Python 프로그램보다 느리게 실행되고 JavaScript로 작성된 유사한 프로그램보다 느리게 실행됩니다. 이제 어떤 사람들은 Python을 JavaScript로 번역하고 브라우저에서 Python을 실행하려고 합니다.
WebAssembly에 대한 생각
이렇게 하면 브라우저에서 Python을 실행할 수 있게 될 수도 있습니다. asm.js를 대체한다는 것은 기본적으로 JavaScript가 더 이상 웹 플랫폼에서 사용되는 유일한 언어가 아니라 어셈블리 언어와 유사해진다는 것을 의미합니다. 이는 Python과 약간 비슷합니다. 여러분이 작성하는 Python 코드의 기본 Python 인터프리터는 실제로 C 언어로 작성됩니다. 컴파일하는 동안 Python 코드는 기계어 코드로 변환되며 일종의 어셈블리 언어도 포함됩니다.
브라우저에서 JavaScript를 죽일 수 없다면 JavaScript를 브라우저에서 실행하려는 모든 언어에 대한 통합 번역 개체로 만들 수 있습니다. 이 경우 Python과 Ruby 및 PHP와 같은 다른 언어를 기본 JavaScript로 효율적으로 변환할 수 있습니다.
WebAssembly는 실제로 Python 개발자에게 기회입니다. 저는 개발 도구를 선호하는 사람들이 WebAssembly 위에서 Python을 실행하는 가장 좋은 방법을 탐색할 수 있는 기회를 가질 수 있는 시험 기간이 있을 것이라고 믿습니다. 실험이 성공하고 이를 홍보하기 시작하면 Python 개발자에게 "이제 Python으로 브라우저 클라이언트 앱을 작성할 수 있습니다."라고 말할 수 있습니다. 하지만 지금은 그럴 때가 아니다.
Python 성능 개선
귀도: Python 3의 성능이 2012년에 비해 훨씬 빨라졌습니다. 또는 PyPy와 같은 Python 구현이 있습니다. 속도를 향상시키려는 Python 인터프리터의 새로운 버전도 있습니다.
사실 파이썬의 성능은 사람들이 말하는 것만큼 나쁘지 않고, 파이썬은 대부분 C언어로 구현되기 때문에 많은 일을 C언어만큼 빠르게 할 수 있습니다. 나는 아직도 Python이 대부분의 작업에 충분히 빠르다고 생각합니다.
Python 3에는 속도를 향상시키는 새로운 기능이 없지만 언어의 여러 측면을 더 빠르게 만들었습니다. 예를 들어 참조 카운팅이 이전보다 빠릅니다. 기존 코드를 최적화하는 것이 가장 중요한데, 사용자로서는 차이점을 느끼기 어렵습니다.
Python 프로그램의 속도를 긴급하게 높여야 한다면 PyPy를 사용해 보세요. 시도해 볼 가치가 있을 만큼 성숙해졌습니다.
파이썬이 왜 인기가 있나요?
귀도: 주로 배우고 사용하기 쉽고 커뮤니티가 개방적이며 개발자가 활발하고 도움이 되기 때문입니다.
파이썬 개발은 현재와 미래에 어떤가요? 계획은 무엇입니까?
귀도: 현재 그리고 지난 5년 정도 동안 Python 개발을 주도한 것은 주로 다른 사람들이었습니다. 나는 종종 새로운 구문을 추가하기 위해 디자인할 때 새로운 아이디어를 받아들일 가치가 있는지에 대한 지침을 제공합니다. 나는 표준 라이브러리 개발에 거의 간섭하지 않습니다. 때로는 모든 사람에게 토론과 타협을 중단하라고 요청해야 할 때도 있습니다.
저의 생각은 제가 결국 은퇴하거나 적어도 긴 휴가를 가질 수 있도록 커뮤니티를 스스로 영속시키는 것입니다. 앞으로는 이 언어가 다른 언어나 다른 분야의 새로운 아이디어를 흡수하게 되기를 바랍니다.
마지막으로 SciPy와 NumPy에 대해 이야기하고 싶습니다. 이 두 팀은 Matlab의 대안으로 Python 사용을 장려하고 있습니다. 우리의 대안은 오픈 소스이며 더 나은 결과를 얻을 수 있습니다. 그들은 내가 이전에 상상하지 못했던 영역으로 Python을 사용하고 있습니다. 그들은 브라우저에서 대화형 Python을 사용하기 위해 Jupyter Notebook과 같은 것을 개발했습니다.