파이썬 코드를 곧 웹브라우저에서 실행할 수 있게 된다. 파이썬 커뮤니티의 웹어셈블리 런타임의 컴파일 프로젝트가 기본 완성을 앞둔 덕분이다.
최근 미국 지디넷에 따르면, 최근 개최된 파이콘2022에서 C파이썬 개발자 크리스티안 하임과 에단 스미스는 C파이썬 메인 브랜치를 웹어셈블리로 컴파일하는 방법을 발표했다.
현재 파이썬은 브라우저에서 코드를 실행할 수 없다. 러스트, C, C++, 고 등의 언어는 웹어셈블리 런타임 컴파일을 지원에 브라우저에서 실행할 수 있다. 지금의 파이썬 코드는 사실상 데스크톱 애플리케이션과 같다.
그동안 파이썬 커뮤니티는 웹브라우저 실행을 위한 아이디어를 검토해왔다. 코어파이썬(Core Python)의 약자인 C파이썬은 다른 파이썬 배포판에서 파생된 참조 구현이다.
C파이썬은 Emscripten을 사용해 웹어셈블리에서 교차 컴파일한다. Emscripten은 C, C++로 작성된 프로젝트를 노드JS나 웹어셈블리 런타임으로 컴파일하는 툴체인이다.
파이썬소프트웨어재단은 블로그에서 "파이썬은 리눅스, 윈도, 애플 맥, 마이크로컴퓨터, 안드로이드 등 다양한 플랫폼에서 실행할 수 있다'며 "그러나 브라우저에서 파이썬 코드를 실행하려면 자바스크립트로 전환해야 한다"고 설명했다.
이어 "이제 곧 바뀔 수 있다"며 C파이썬의 작업을 강조했다.
파이콘2022에서 C파이썬의 웹어셈블리 컴파일 방안은 완벽하지 않아 '매우 실험적'이란 평가를 받았지만 많은 주목을 끌었다.
파이썬은 데이터 사이언스 분야에서 활발히 쓰이는 개발 언어다. 반면, 범용 프로그래밍 언어로서 주목도는 높지 않다. 파이썬은 브라우저에서 실행할 수 없다는 점 외에도 모바일이나 데스크톱에서 실행할 때 GUI가 필요하다는 약점도 가졌다.
데이터 사이언스 영역에서도 파이썬 코드의 브라우저 실행 방법을 선보였다. 아나콘다 파이썬 배포판 제조사 '아나콘다'의 피터 왕 CEO는 "파이썬을 사용해 GUI가 있는 애플리케이션을 빌드하고 배포하는 것이 매우 어색하다"고 밝혔었다.
아나콘다는 데이터 사이언스용 파이썬을 브라우저에 제공하기 위해 새로운 도구로 '파이스크립트(Pyscript)'를 공개했다.
피터 왕은 파이콘2022에서 파이스크립트에 대해 "HTML에 파이썬을 교차배치(interleave)하기 위한 시스템"이라고 설명했다.
개발자는 파이스크립트를 이용해 HTML로 파이썬 코드를 작성하고 실행할 수 있으며, 파이스크립트에서 자바스크립트 라이브러리를 호출할 수 있다. 이 시스템을 이용하면 웹사이트를 파이썬만으로 작성할 수 있게 된다.
파이스크립트는 C파이썬 포트인 Pyodide나 웹어셈블리, Emscripten을 기반으로 하는 브라우저, 노드JS용 파이썬 배포판을 기반으로 만들어졌다.
Pyodide는 모질라 Iodide 프로젝트의 일부로 마이클 드로엣붐이 2018년 만들었다. 현재 Pyodide는 독립 오픈소스 프로젝트다. 데이터 사이언스 사용자를 대상으로 넘피, 판다스, Matplotlib 같은 주요 파이썬 데이터 사이언스 라이브러리를 사용해 브라우저에서 통계 및 시각적 모델링 작업을 수행할 수 있다. 기본적으로 Emscripten을 사용해 파이썬 코드와 라이브러리를 웹어셈블리로 컴파일한다. 한달전 Pyodide 0.20 버전이 출시됐다.
파이썬 소프트웨어 재단은 "파이스크립트는 현재 파이썬을 브라우저로 가져오는 Pyodide를 기반으로 구축됐으며, 하임의 C파이썬 메인 브랜치 작업 전에 시작됐다"며 "파이썬 3.11에 대한 하임의 수정으로 이 노력은 더 쉬워질 것"이라고 언급했다.
관련기사
- 파이썬, 메모리 누수 해결 위한 긴급 업데이트2022.01.18
- 파이썬, 2년 연속 티오베 올해의 프로그래밍 언어 선정2022.01.19
- 파이썬 창시자 귀도 반 로섬 "최대 약점인 속도 4년 내 최대 5배 향상 예정"2021.05.16
- AWS, 파이썬 코드 자동으로 최적화한다2021.04.09
파이썬 창시자인 귀도 반 로섬은 브라우저에서 파이썬 실행에 크게 신경쓰지 않는 입장이다.
귀도 반 로섬은 작년 열린 파이콘2021에서 "여러 언어가 다른 목표를 가져야 한다는 것에 신경쓰지 않는다"며 "파이썬은 백엔드 웹과 과학적 데이터 처리에 좋은 애플리케이션 영역에 초점을 맞춰야 한다"고 말했다.