Найти в Дзене

Mojo🔥: замена Python? Или очередная безуспешная попытка его заменить? Python-программисты больше не нужны?!😥🧐

Всем доброго времени суток, дорогие друзья!😊 Сегодня наша с вами тема будет о накричавшем языке Mojo. Давайте разберемся в чем причина такого шума. 1. Кто вообще такой этот ваш Mojo? Давайте для начала погрузимся в историю этого языка, хоть она и крайне мала. В сентябре 2022 года Mojo был официально анонсирован компанией Modular. Существующие языки программирования были достаточно медленными для задач компании, поэтому разработчики решали создать собственный. Главной целью было создание языка, похожего на Python и способного с невероятной скоростью обрабатывать запросы, что помогло бы в развитии ИИ. И также он должен решать его главную проблему - Скорость работы. Почему же Python такой медленный? Python - это достаточно медленный язык. Есть много разных причин, но основные из них следующие: Из-за этого в некоторых задачах, требующих скорости работы, предпочтение отдают другим более быстрым языкам таким как C++, C# и др. А это требует уже других специалистов, знающих эти языки или прог
Оглавление

Всем доброго времени суток, дорогие друзья!😊 Сегодня наша с вами тема будет о накричавшем языке Mojo. Давайте разберемся в чем причина такого шума.

#mojo #python #future #programming
#mojo #python #future #programming

1. Кто вообще такой этот ваш Mojo?

Давайте для начала погрузимся в историю этого языка, хоть она и крайне мала. В сентябре 2022 года Mojo был официально анонсирован компанией Modular. Существующие языки программирования были достаточно медленными для задач компании, поэтому разработчики решали создать собственный. Главной целью было создание языка, похожего на Python и способного с невероятной скоростью обрабатывать запросы, что помогло бы в развитии ИИ. И также он должен решать его главную проблему - Скорость работы.

Почему же Python такой медленный?

Python - это достаточно медленный язык. Есть много разных причин, но основные из них следующие:

  • Язык интерпретируемый, а не компилируемый, т.е. весь код читается построчно, а компиляция и перевод кода в байт-код происходят последовательно, а не параллельно, как это делает Java или языки семейства C
  • Динамическая типизация: В языках со статичной типизацией вы всегда, когда задаете переменную, присваиваете ей тип, который нельзя поменять. Python использует переменные с динамической типизацией, и, когда вы меняете тип переменной, он создает дополнительную переменную с новым типом и отделяет ей место в памяти, что занимает много времени
  • Однопоточное программирование: Кто бы, что ни говорил, но Python - язык однопоточный, а значит совершает действия последовательно и задействует только одно ядро вашего компьютера, а не несколько, как это делают многопоточные языки, что также негативно влияет на время работы

Из-за этого в некоторых задачах, требующих скорости работы, предпочтение отдают другим более быстрым языкам таким как C++, C# и др. А это требует уже других специалистов, знающих эти языки или программистов уровнем выше.

У вас возможно возник следующий вопрос: "А почему так сложно создать быстрый и простой язык программирования?". Давайте я вам попробую объяснить.

Почему так сложно создать быстрый и простой язык программирования?

Основная проблема заключается в существующих компиляторах. До компании Modular большинство компаний создавали языки на компиляторах LLVM и GCC. Эти компиляторы отлично выполняют свои функции, но они были разработаны несколько десятилетий назад и не имеют современных функций, поэтому не могут оптимально использовать ядра и процессы современных архитектурных чипов.

Поэтому компания решила использовать достаточно новый компилятор, разработанный Google - MLIR. Этот компилятор широко распространен в сообществе акселераторов машинного обучения, поэтому Modular и решили его использовать. Но этот компилятор имел свои баги и проблемы, поэтому одной из подзадач компании являлась доработка компилятора MLIR. Данный компилятор они внесли в ряд своих инфраструктур и задумались о создании нового языка на базе данного компилятора. Так и возник язык Mojo

Теперь немного поговорим о плюсах Mojo и его преимуществах над Python:

  1. Скорость работы: Как рассказывают разработчики, Mojo в 35000 раз быстрее Python и даже в 7 раз быстрее C++, что является огромным плюсом языка
-2

2. Многопоточость: В отличие от Python, Mojo использует сразу несколько ядер и потоков компьютера, что позволяет ему выполнять код гораздо быстрее Python

-3

3. Динамические и статичные переменные: Mojo, в отличие от других языков не использует только статичные или только динамические переменные. Вы можете сами выбирать какой вид переменных хотите использовать, что позволяет вам экономить память и время.

Учить ли мне Mojo и нужно ли учить Python?

Вот мы с вами плавно и подошли к главной теме нашей статьи: "Что мне учить: Python или Mojo и что делать, если я Python-программист?"

Ответ: учите Python и не спешите учить Mojo, если вы Python-программист

Объясню свою точку зрения:

Пока Mojo еще молодой язык в нем еще нет большинства библиотек, которые есть в Python. Также, ни смотря на всю скорость Mojo, он еще не до конца оптимизирован и может работать медленно ожидаемого. Поэтому, как и любому проекту, Mojo нужно время, что набрать аудиторию и количество библиотек для работы. Также разработчики сами написали на своем сайте о том, что их язык максимально похож на Python за рядом небольших исключений, чтобы уж была какая-то разница :)). Также они хотят добавить возможность конвертирования файлов питона, т.е. преобразовывать расширение .py в .mojo

Поэтому разработчикам Python беспокоиться не стоит, по-скольку Mojo еще несколько лет не будет настолько или даже близко популярен, как Python и использован в промышленных масштабах.

На этом наша статья завершается. Не забудьте поставить лайк, подписаться на канал и написать комментарий: так вы гораздо больше замотивируйте меня на создание контента.