이번 달 3일에 등장한 새로운 프로그래밍 언어, Mojo를 소개합니다!
🧑💻 개발자: Chris Lattner와 팀원들
🏢 개발사: Modular
Mojo는 사람들이 개발과 배포를 덜 복잡하게, 더 빠르게 하는 것을 목표로 탄생했습니다.
다르게 말하면 모조는 Python을 대체하기 위해 등장했습니다.
이를 구체적으로 설명드리겠습니다.
👍 Python은 다양한 장점을 가지고 있으며, 특히 AI 분야에서 많이 사용됩니다.
👎 그렇다면 파이썬은 어떤 단점이 있길래 대체 언어가 등장했을까요?
🎉 그래서 이 성능 이슈의 해결책으로 Mojo가 등장했습니다! 🎊
이제 Mojo에 대해 자세히 알아보겠습니다~
성능은 아래 표 하나로 설명을 끝낼 수 있다고 느꼈습니다.
*자료는 공식 홈페이지에 제공되어 있습니다.
같은 알고리즘을 실행했을 때 1027초가 걸린 python에 비해, mojo는 0.03초가 걸렸습니다!
⚡무려 35,000배 빠른 속도를 보였습니다.
이 표를 보고 mojo의 성능에도 감탄했지만, 그것보다 오히려 4가지 언어 중 가장 느린 python이 가장 인기있다는 점이 더 놀라웠습니다. 그만큼 python의 장점이 강력한 것 같습니다!
🔻 일부 기능을 정리하였습니다!
Mojo는 AI를 위한 프로그래밍 언어라고 소개되어있습니다.
이는 가장 진보된 컴파일러와 이기종 런타임으로 하드웨어의 모든 성능을 활용할 수 있다고 합니다. 특히, '언어 통합 자동 튜닝'이라는 기능을 통해 매개변수에 대한 최적의 값을 자동으로 찾아주는 기능이 있기 때문에 ai 모델 개발에 탁월할 것이라 생각합니다.
📍 [참고] 이기종 런타임
- 서로 다른 종류의 장치에서 실행되는 소프트웨어 관리 및 조정을 수행하는 환경
- 다양한 아키텍처와 특성을 가진 장치들의 상호작용을 지원
코드를 분석하여 잠재적 오류, 보안 취약점, 코딩 규칙 위반을 탐지하는 정적 분석기가 강화되어 안정적인 라이브러리를 만들 수 있어 성능이 향상될 수 있습니다.
기존 언어 외에 새로운 언어를 배워야한다는 부담이 있을 수 있지만, 다행히 mojo는 python과 유사한 문법을 사용하여 기존 python 사용자라면 쉽게 익힐 수 있습니다.
python과 C언어의 성능을 결합해 보다 매우 빠른 속도를 자랑합니다.
# a와 b가 다른 값이면 b를 출력하시오.
def your_function(a, b):
# let: 해당 블록 내에서만 변수가 유효하도록 사용
let c = a
if c != b:
let d = b
print(d)
your_function(2, 3)
위 코드는 mojo가 jupyter notebook에서 제공한 코드입니다.
파이썬과 동일한 문법을 사용하는 것을 알 수 있습니다.
위와 같이 올바른 결과가 나온 것을 확인할 수 있습니다
mojo는 확장자로 .mojo 뿐만 아니라 .🔥도 가능하다고 합니다.
이게 무슨말인가 했더니
확장자를 이모지로 표시해도 mojo파일로 잘 설정되는 것을 볼 수 있습니다!
서비스를 유지하는데 있어 중요한 것에는 성능이나 사용 난이도, 요금제 등이 있겠지만 무엇보다 유저의 수가 확보되어야 한다고 생각합니다.
아무리 성능이 좋아도 해당 서비스를 아는 사람이 한명도 없다면 그 서비스는 존재하지 않는 것이나 마찬가지이기 때문입니다.
그런데 이 Mojo는 본격적인 등장 전, 실험 버전이 풀렸을 때부터 사람들에게 많은 관심을 얻었고 mojo가 미래에 대표적인 ai 개발 언어가 될 것 같다는 평도 있었습니다. 속도가 느리다는 파이썬을 사용한 인공지능의 발전도 충분히 빠른데, mojo를 이용하여 개발과 배포가 더욱 빨라지게 되면 이 분야가 얼마나 발전하게될지 궁금해지는 이번 주제였습니다!
들어주셔서 감사합니다:)
[출처] https://www.modular.com/
[공식 문서] https://docs.modular.com/mojo/