Комментарии 25
Какой адский нейрослоп...
Никогда не понимал причем тут сам язык. Все дело в компиляторе.. или в не-компиляторе.
Тормозит-то бинарник, который (грубо) из исходника создал компилятор.
А на каком языке написан исходник рояли не играет.
Согласен, тормозит бинарник, а не синтаксис. Но язык задаёт компилятору потолок: пока спецификация разрешает в рантайме переопределить любой метод и атрибут, компилятор обязан оставлять динамический диспатч. Поэтому 30 лет и миллиарды в PyPy/Faster CPython дали ~1.4x. А раздел 3 как раз о том, что в ИИ быстрый бинарник и так на C++/CUDA; вопрос лишь, почему исходник над ним обязан быть именно на Python. И ответ не технический, а социальный.
Все скоростные алгоритмы, в т.ч. перемножение матриц, выполняются не на чистом python, а в библиотеках, которые как раз и написаны на быстрых энергоэффективных языках.
На чистом python выполняются лишь небольшие по объему эксперименты, на домашних х компьютерах, которые если и увеличивают потребление, то на мизерные доли по сравнению с просмотром видео или видеоиграми...
Вот вам код llm на чистом python: https://habr.com/ru/articles/996404/
Те, кто занимался оптимизацией систем в один голос скажут, что не существует одного-двух узких мест.
Быстродействие это культура производства, здесь нет мелочей.
Python очень медленный язык; сколько его не ускоряй - ничего не получится, зависимости вмешаются. Типизация вообще загадочная.
Только куда не ткнись, язык python не обойти.
Согласен по всем пунктам, кроме "не обойти" - это верно там, где Python держится на инерции экосистемы. А на новых территориях его уже обошли, даже HuggingFace пишет ядро на Rust. Так что да — вниманием стоит не обходить и Swift, и Rust, и Mojo. Победа любого из них лечит главную болезнь: привычку писать всё на двух языках сразу.
его уже обошли, даже HuggingFace пишет
Пожелаем им удачи.
Нейронные модели сильно облегчили написание кода, только учитываем что Rust разработчик дороже в деньгах и rust сложнее в разработке и в менеджменте.
И второе - переписать программный код на другой язык - это на порядки раз проще и понятнее чем написать с нуля, потому что весь путь уже пройден, уже знаем что нужно делать.
Для языка python даже не очень современные модели выдают безупречный код, по цене "почти бесплатно". Для прототипа хватит, а без прототипа ничего не получится.
Разработка на python на порядок быстрее и проще (сравнивая с Rust, Go, C, C++) - по времени, по деньгам, по ошибкам, по рефакторингу. То есть для прототипов других вариантов почти нет. На практике новый проект пишем на python, а уже потом, через года, если проект взлетит, если будет бюджет - перепишем на компилируемый язык.
"Медленность" питона никак не мешает ИИ задачам. Все тяжёлые и массовые операции, типа перемножения тензоров (основная операция для ИИ) давно реализованы в идеально оптимизированных сишных библиотеках, а питоновские скрипты просто позволяют удобно склеивать логику. Перевод этой логики на компилированные языки мало что добавит скорости, но повредит гибкости.
"На C можно написать все что угодно, но жизнь слишком коротка", уже не помню откуда в голове у меня эта фраза, но в целом я потратил 6 лет жизни на этот язык, сейчас работаю на питоне и js, ну и на Rust чучуть и я пипец как этому рад, терпеть не могу C++ и C.
В целом бизнесу не важно на чем ты пишешь проект и быстрый ли он, это наш инженерский прикол, важна лишь скорость доставки фичей и скорейший запуск продукта, остальное издержки... Так что пишите на чем нравится, а пару сэкономленных мс, ни кто не заметит, а вот пару дополнительных месяцев работы дорогого разраба бизнес очень сильно ощутит
В статье подчёркивается применение python для ИИ. Тут уже важно на чём написан проект, python на минимально реальных датасетах настолько медленный, что кажется выполнение зависло.
Согласен. После C/C++ Python и JS — это действительно облегчение, и бизнесу важнее всего скорость вывода фичей, а не пара миллисекунд.
Просто в on-device AI эти миллисекунды уже заметно влияют на батарею и стоимость серверов. Поэтому и предлагают Swift - удобство почти как у Python, но без сильного налога на производительность.
Вот вообще не универсально.
Попробуйте бизнесу предложить, например, HTTP-сервер на Python.
А что не так с HTTP сервером на питоне? Почему то все говорят про нагрузку фрейм ворка языка, но про нагрузку на все остальное рядом все молчат. У вас быстрее база данных захлебнется в нагрузке чем приложение на питоне или вообще на чем угодно, + вашему приложению еще дорасти надо до такой нагрузки, не у всех и будет такая нагрузка хоть когда нибудь что бы хоть какой-то смысл имело писать дольше на более производительном языке
Интересно, иногда считаешь, что есть вещи, которые известны всем, а потом понимаешь, что в статье и в комментариях уже раз 10 в разных формулировках упомянуто, что «все ключевое в питоне написано на C/C++”.
А еще, я может и не прав, но чтобы заменить собой питон, даже если язык справится с его требованиями на простоту использования и порог входа, то столкнется с тем, что мегатонны кода уже написаны на питон, и должны пройти многие годы нереального превосходства, чтобы люди перешли на другой язык.
Питон в топку, разумеется.
Но Swift - это же apple-only язык?
Python очень не хватает нормальной имплементации - JIT или компилятора в стиле SBCL. Да, конечно, есть PyPy...
Даааа, статью наверное блокнут за ллм
Но блин, вот точно такая же ситуация с react и $mol'om )
Питон на реакт заменить а всё остальное на мол)
Спросите меня, что будут обсуждать на Хабре через двадцать лет? Правильно. Ругать пайтон за медлительность и удивляться, почему это до сих пор самый востребованный язык во всём мире.
Через 20 лет он вряд ли будет востребованным )
Вообще, популярность питона обусловлена другой причиной. Нейросетями сначала занимались математики. Не являясь программистами, они лабали свои наброски на максимально легком для входа языке - питоне. И получилось, что множество библиотек для ML написано на нем. Автоматически, те, кто присоединялся к ML\LLM тематике, были вынуждены использовать питон.
Но думаю, с массовым распространением LLM, ситуация измениться в правильное русло. Пример - llama.cpp.

Переоценённый король