1. Python의 상위 호환(superset)이다. 2. AI 프로그래밍의 불편함을 해소하고자 시작된 프로젝트이다. 3. C++, Rust 등 low 언어 문법과 (high) Python 문법이 혼합되어 있으며(let, var, struct, 메모리 관리 기법 등), 아직 Python 문법을 100% 지원하지는 않는다. 4. Python에서 함수 정의를 위해 사용하는 def 대신 좀더 strict한 fn을 제공한다. 서로 기능은 동일하나, fn 이 def보다 좀 더 limited, controlled 하다고 한다. input, output의 타입은 필수로 명시하는 등.
struct Complex:
var re: Float32
var im: Float32
fn __init__(inout self, x: Float32):
"""Construct a complex number given a real number."""
self.re = x
self.im = 0.0
fn __init__(inout self, r: Float32, i: Float32):
"""Construct a complex number given its real and imaginary components."""
self.re = r
self.im = i
5. Python 대표 모듈은 당연히 사용가능하게끔 지원한다. NumPy, Pandas 등
문서에 나온 예제를 보면 언뜻 다음 느낌을 받을 수 있는데, 물론 자세한 것은 아니고 느낌이 그렇다는 ㅇ 파이썬이 가지고 있는 강점은 살리면서, - 쉬운 문법, 사용자를 바라보는 철학, 다른 라이브러리와의 비교적 쉬운 혼합(binding) ㅇ 파이썬에 존재하는 본질적인 단점을 해결하는 느낌이다. - 시스템 프로그래밍, 타언어에 비해 불안정적인 배포
Docs에 매우 자세하게 많은 것들이 설명돼있으니 시간을 가지고 천천히 전부 읽어보면 도움이 많이 될 것 같다.
물론 아직 신규 언어라 다른 언어 문서에 비하면 내용이 적다고 생각할 수 있지만 기본적으로 파이썬과 C 언어를 읽을 수 있으면, 전부 이해할 수 있을정도로 쉽게 설명해놓았다.
뭔가 다른 언어에 파이썬이 겹쳐있는 느낌이라 매우 흥미롭게 느껴진다. 시간이 지날수록 Mojo가 어떻게 될지, Python은 어떻게 반응할지 엄청 궁금해지는 바이다.