python보다 3만배 빠른 mojo?

정말 슈퍼셋이라면 기대해볼만 하다

created at: 2023-05-17


mojo

mojopython의 슈퍼셋을 목표로 하는, 새롭게 개발중인 프로그래밍 언어다. python의 풍부한 생태계를 그대로 사용하면서, python의 태생적인 한계인 부족한 성능을 대폭 계선하고자 한다.

현재 개발진의 목표는 마치 jsts와 같이, mojopython의 완전한 슈퍼셋이 되는 것이다. 따라서 개발이 정상적으로 진행된다면, 기존의 코드를 그대로 실행할 수 있을 것이다.

NOTE

다만 이 경우 CPython으로 실행되고, 약간의 성능개선만 있다.

Modular의 최종 목표는

  • python와 완전한 호환성을 보장하고
  • c 또는 c++과 같은 다른 언어를 사용할 필요가 없는

간편하고 강력한 언어를 개발하는 것이다.

python인가

python은 ML/AI분야에서 지배적인 위치를 가지고 있다. ML/AI와 관련된 솔루션 또는 서비스를 제공한다면, python api를 지원하는 것은 선택사항이 아니다.

호환성 목표 상세

mojo는 상호 운용성을 위해 CPython을 사용하므로, 기존 코드에 대한 완전한 호환성을 제공한다. 따라서 점진적 마이그레이션 접근 방식을 가능하게 한다.

또한 gcc, msvc 등 기존의 컴파일러를 대체할 clang 컴파일러에 대한 호환을 확보하고자 하며, objective-c, swift에 대한 런타임 호환 또한 시도하고 있다.

그래서 지금 사용 가능한가?

아쉽게도 지금은 정상적으로 사용할 수 없다.

기존의 python 기능에 대한 것도 많이 누락되어 있다.

yield, async with, comprehension, lambda

특히 마음대로 설치해서 사용해볼 수 있는 것이 아니고, 현재는 신청자에 한해서, Modular가 제공하는 Jupyter notebook 페이지에서만 체험해볼 수 있다.

여담

아직 완전히 개발되지도 않은 언어이기에, 어떻게 평가하기 어렵다.

다만 개발진이 제시하는 로드맵만 충실하게 잘 지켜준다면, python 대신 mojo를 쓰지 않을 이유가 없어 보인다.

polars처럼 관심을 갖고 꾸준히 지켜보자.