mojo
란
mojo
는 python
의 슈퍼셋을 목표로 하는, 새롭게 개발중인 프로그래밍 언어다.
python
의 풍부한 생태계를 그대로 사용하면서, python
의 태생적인 한계인 부족한 성능을 대폭 계선하고자 한다.
현재 개발진의 목표는 마치 js
와 ts
와 같이, mojo
가 python
의 완전한 슈퍼셋이 되는 것이다. 따라서 개발이 정상적으로 진행된다면, 기존의 코드를 그대로 실행할 수 있을 것이다.
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
처럼 관심을 갖고 꾸준히 지켜보자.