Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз языка программирования Mojo 1.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз языка программирования Mojo 1.0"  +/
Сообщение от opennews (??), 12-Авг-26, 00:16 
Представлен стабильный релиз языка программирования Mojo 1.0, который ознаменовал стабилизацию языка и реализацию всех базовых возможностей. Выпуск оценивается как готовый к повсеместному использованию и позволяющий начать разрабатывать  крупные проекты, не опасаясь появления в языке изменений, нарушающих совместимость...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=66066

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 12-Авг-26, 00:16   +6 +/
> создателя языка программирования Swift
> использованию привычного синтаксиса языка Python
> напоминающие возможности языка Rust

мутант

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #7, #32

3. Сообщение от Ivan_83 (ok), 12-Авг-26, 00:29   +3 +/
И в питона и в кресты смог:
> Синтаксис Mojo основан на языке Python, а система типов близка к C/C++.

реально мутант :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

4. Сообщение от Аноним (4), 12-Авг-26, 00:35   +2 +/
> например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer

Может быть на этом языке ещё и некорректный код с неопределенным поведением можно написать?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34

5. Сообщение от Аноним (5), 12-Авг-26, 00:41    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору

6. Сообщение от Аноним (7), 12-Авг-26, 00:44   –2 +/
> распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++

Дальше можно не читать. Почему автор считает, что на Си/Си++ нельзя создавать программы, использующие GPU и пр. железо?!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #16, #17, #21, #58

7. Сообщение от Аноним (7), 12-Авг-26, 00:46   +/
> с использованием типа Pointer

А вот и Паскаль подъехал :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #26, #28

9. Сообщение от Ivan_83 (ok), 12-Авг-26, 00:48   +/
Обычно такое следует читать как: там под капотом волшебная либа типа OpenMP и вот тому подобного и оно без заморочек с оптимизацией - в PoC коде будет работать быстрее чем тяп-ляп реализация на С/С++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #12

11. Сообщение от aname (ok), 12-Авг-26, 01:03   +/
Но зачем?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36

12. Сообщение от Аноним (7), 12-Авг-26, 01:19   +/
на С/С++ запрещено использовать OpenMP?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #14

14. Сообщение от Ivan_83 (ok), 12-Авг-26, 01:29   +/
Перечитайте предложение целиком.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #43, #98

16. Сообщение от Джон Титор (ok), 12-Авг-26, 02:05   +1 +/
В статье ясно написано что в С++ ты какой-нибудь OpenMP, OpenCL, OpenACC или напрямую чет подключаешь. А там просто пишешь код и не контролируешь что на чем - оно само распределит более эффективное использование ресурсов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #90

17. Сообщение от Джон Титор (ok), 12-Авг-26, 02:12   +2 +/
В языке [Mojo](https://docs.modular.com/mojo/) распределение вычислений между CPU, GPU и векторизацией SIMD строится на концепции единого оборудования с явным управлением через метапрограммирование, параметры и модули компилятора [MLIR](https://docs.modular.com/mojo/manual/metaprogramming/comptim.../), позволяя писать кросс-аппаратный код для разных типов вычислителей из одной функции. [1, 2]
## CPU и SIMD (Векторизация)
На центральном процессоре Mojo задействует векторные регистры и параллелизм на уровне потоков через встроенные абстракции: [3, 4]

* Тип SIMD: Является базовым строительным блоком. Позволяет упаковывать несколько скалярных значений (например, 4, 8 или 16 элементов Float32) в один вектор и применять к ним единую инструкцию за такт. [5, 6]
* Автоматическая векторизация и циклы: Компилятор умеет разворачивать и векторизировать код, а алгоритмические примитивы (например, vectorize) явно указывают размер шага вектора для конкретной архитектуры CPU (x86, ARM). [5, 7]
* Многоядерность: Модуль задач распределяет потоки выполнения по ядрам CPU с помощью функции parallelize, задействуя всю многоядерную мощность процессора. [4]

## GPU (Ускорители)
Для графических чипов (NVIDIA, AMD) модель распределения похожа на CUDA/HIP, но выражена в более чистом синтаксисе Mojo: [2]

* Разделение Host / Device: CPU выступает в роли хоста (управляет логикой и памятью), а GPU — в роли устройства (выполняет параллельные ядра — kernels). [8]
* Иерархия потоков: Вычисления разбиваются на сетки (grids), блоки (blocks) и потоки (threads), где каждый поток обрабатывает свою порцию данных. [9]
* SIMT-модель: На GPU применяется подход Single Instruction, Multiple Threads, когда потоки внутри варпа (warp) выполняют общие команды параллельно. При этом доступны низкоуровневые оптимизации через общую (shared) память и варп-примитивы (block_reduce). [10, 11]

## Универсальность (Target-agnostic код)
Главная особенность Mojo — возможность писать единый алгоритм (через параметризацию и декораторы с параметром target="cpu" или "gpu"), который компилируется и подстраивается под конкретное «железо» без дублирования бизнес-логики. [1]
Если вы хотите углубиться в конкретный сценарий, уточните:

* Вы планируете оптимизировать код под CPU (AVX-512/Neon) или под GPU (CUDA)?
* Какая у вас задача (например, умножение матриц, обработка изображений или кастомный ИИ-опер)?


[1] [https://docs.modular.com](https://docs.modular.com/deve.../)
[2] [https://arxiv.org](https://arxiv.org/html/2509.21039v1)
[3] [https://mojolang.org](https://mojolang.org/docs/std/bui.../)
[4] [https://deepengineering.net](https://deepengineering.ne...)
[5] [https://mojolang.org](https://mojolang.org/docs/std/bui.../)
[6] [https://mojolang.org](https://mojolang.org/docs/manual/.../)
[7] [https://deepengineering.net](https://deepengineering.ne...)
[8] [https://mojolang.org](https://mojolang.org/docs/manual/.../)
[9] [https://shubhamg.in](https://shubhamg.in/posts/2025-07-...)
[10] [https://mojolang.org](https://mojolang.org/docs/std/alg.../)
[11] [https://docs.modular.com](https://docs.modular.com/mojo.../)
Поддержка NPU (Neural Processing Unit) — одна из ключевых точек роста для экосистемы Mojo и фреймворка [Modular MAX](https://www.modular.com/open-source/max). Стратегическая важность этого направления кратно возросла после того, как летом 2026 года технологический гигант Qualcomm завершил сделку по приобретению компании Modular. Теперь создатель Mojo Крис Латтнер отвечает за передовое ИИ-ПО во всей экосистеме чипов Qualcomm (от мобильных Snapdragon до серверных ускорителей). [1, 2]
Распределение ресурсов и запуск кода на NPU в рамках этой экосистемы подчиняются следующим принципам:
## 1. Драйвер абстракции ускорителя (Accelerator API)
В экосистеме [Modular MAX API](https://docs.modular.com/max/api/python/generated/max.driver.../) класс NPU является подклассом базового класса Accelerator. Инициализация и выделение контекста устройства под NPU выполняются через драйвер: [3]

from max import driver
# Выбор первого доступного NPU устройстваdevice = driver.NPU(id=0)

Диспетчер графа компиляции считывает этот контекст, ставит метку устройства "npu", генерирует соответствующие ядра сборки и перенаправляет поток выполнения в специализированный плагин-хук (NPU dispatch path) вместо стандартного конвейера GPU или CPU. [3]
## 2. Компиляция под гетерогенную архитектуру (MLIR)
Как и в случае с CPU/GPU, компилятор Mojo не пишет машинный код под конкретный NPU напрямую. Он преобразует высокоуровневый код в промежуточное представление MLIR (Multi-Level Intermediate Representation). [4, 5, 6]

* Граф вычислений нейросети автоматически квантуется (например, переводится из Float32 в INT8 или FP16), так как большинство NPU аппаратно оптимизированы под низкоточную целочисленную математику.
* На уровне генерации низкоуровневого кода (target="npu") MLIR-компилятор задействует специфичные для конкретного NPU векторные и матричные движки (например, тензорные процессоры Hexagon в чипах Qualcomm). [3]

## 3. Интеграция через партнерские экосистемы (Пример: ATOM-MAX)
Разработчики NPU-чипов создают специализированные программные прослойки для бесшовного выполнения Mojo-кода на своем «железе». Ярким примером служит проект ATOM-MAX (совместная разработка компаний Rebellions и SqueezeBits). Архитектура их NPU спроектирована так, чтобы разработчики могли писать, отлаживать и профилировать кастомные ядра на Mojo с тем же уровнем удобства и предсказуемости памяти, который они ожидают от классических GPU. [7]
## 4. Роль фреймворка MAX (Inference Engine)
Вместо того чтобы вручную писать низкоуровневые регистровые команды для NPU, экосистема предлагает использовать MAX Inference Engine. Фреймворк принимает готовую модель (например, DeepSeek, Llama или Qwen) и берет на себя всю рутину распределения: [8, 9]

* Разделяет граф модели на блоки вычислений.
* Отправляет тяжелые тензорные операции (свертки, умножения матриц Attention) на NPU.
* Оставляет последовательную логику управления и сбор данных на CPU. [5]

Если вы планируете тестировать работу с NPU, подскажите:

* Под какую архитектуру или чип ведется разработка (смартфоны/ноутбуки на Qualcomm Snapdragon X, процессоры AMD Ryzen AI, Intel Core Ultra или специализированные серверные NPU)?
* Вы хотите запускать на NPU готовую открытую модель через MAX Serving или писать собственные математические операции (kernels) на Mojo? [9]


[1] [https://www.unite.ai](https://www.unite.ai/ru/qualcomm-.../)
[2] [https://techora.ru](https://techora.ru/news/glava-qualc...)
[3] [https://docs.modular.com](https://docs.modular.com/max/.../)
[4] [https://arxiv.org](https://arxiv.org/html/2509.21039v1)
[5] [https://www.reddit.com](https://www.reddit.com/r/golang...)
[6] [https://www.birjob.com](https://www.birjob.com/blog/moj...)
[7] [https://blog.squeezebits.com](https://blog.squeezebits....)
[8] [https://www.modular.com](https://www.modular.com/open-s...)
[9] https://www.modular.com

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

18. Сообщение от Джон Титор (ok), 12-Авг-26, 02:15   +6 +/
С одной стороны это кажется не нужным, но с другой стороны это питон который можно компилировать в родной код. А вот это нужно - чтобы работало быстрее питона. Это своеобразный раст для питона. Может и взлететь
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35, #40

20. Сообщение от Аноним (21), 12-Авг-26, 03:15   +/
> Представлен стабильный релиз языка программирования
>  готовый к повсеместному использованию и позволяющий начать разрабатывать крупные проекты, не опасаясь появления в языке изменений, нарушающих совместимость.

И тут же:

> Исходный код компилятора планируют открыть после завершения стабилизации внутренней архитектуры.

То есть ребята еще не определились со внутренней архитектурой компилятора, но уже предлагают писать на нем крупные проекты?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

21. Сообщение от Аноним (21), 12-Авг-26, 03:28   +/
>> распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++
> Дальше можно не читать. Почему автор считает, что на Си/Си++ нельзя создавать программы, использующие GPU и пр. железо?!

А где конкретно ты прочел, что автор так считает?

Про конкретно ситуацию с C/С++: юзать GPU  и прочее железо ты, конечно можешь, но только если явно ручками это напишешь. CUDA, там, OpenMP, SIMD-вставки для конкретного CPU - вот это вот все. Без "ручной" работы копролиты из 70-80 к этому не приспособлены, потому что у них прямо в стандарты зашиты жесткие требования к memory layout и правилам выравнивания времен PDP-11, которые компилятор не в праве нарушать. Поэтому автоматически векторизовать твой код SIMD-вставками и делать для этого банальные оптимизации типа SROA компилятор не может. Про то, чтобы еще хлеще перелопатить инструкции под GPU и говорить нечего...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #22

22. Сообщение от Аноним (22), 12-Авг-26, 03:42   +/
> Поэтому автоматически векторизовать твой код SIMD-вставками [...] компилятор не может.

Естественно, я имею в виду, что он не может это делать в большинстве общих случаев. А так на С/C++ приходится всегда писать с учетом работы именно CPU и всячески "помогать" ему в потенциальной векторизации прописыванием restrict, заменой целочисленного деления умножением, перелопачиваем структур/циклов для оптимального использования кеша, написанием того самого SROA рачками (рабивать struct на массивы из базовых типов данных) и прочей фигней.

И после таких вот CPU-специфичных "оптимизаций" можно сразу забыть о том, что такойц код хоть сколь-нибудь эффективно ляжет на архитектуру GPU, в котором распараллеливание происходит на несоизмеримо более продвинутом уровне по сравнению с CPU-шым "перемножь мне 4 float вместо одного".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #23, #25

23. Сообщение от Ivan_83 (ok), 12-Авг-26, 03:59   +/
Зависит от области в которой пишется код.

У меня код реже про обработку данных и чаще про перекладывание между сисколами и либами.

Для обработки тоже ситации сильно разные бывают, та же крипта не очень хорошо параллелится, особенно хэши, максимум в пределах одного блока можно SIMD~ами поколдовать.
Из того что совсем хорошо параллелилось (и с чем я работал) помню только обработку изображений в OpenCV или вокруг него.

А так, в большинстве кода на векторизацию пофик, оно там даст незаметные или отрицательные приросты.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #30

24. Сообщение от Норм (?), 12-Авг-26, 04:06   –6 +/
В С/С++ нет системы типов.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31, #88

25. Сообщение от Норм (?), 12-Авг-26, 04:08   +/
> GPU, в котором распараллеливание происходит на несоизмеримо более продвинутом уровне по сравнению с CPU-шым "перемножь мне 4 float вместо одного".

У меня для вас плохие новости.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #29

26. Сообщение от Норм (?), 12-Авг-26, 04:10   +3 +/
Колесо сансары совершило оборот.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

27. Сообщение от Анонимemail (27), 12-Авг-26, 04:12   +/
Да какая разница на чем вейбкодить
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38

28. Сообщение от Аноним (28), 12-Авг-26, 06:04   –2 +/
Странно что Вирт в своё время придумывал для указателя специальный тип.  В сишке это просто знак звёздочка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #33, #93

29. Сообщение от Аноним (22), 12-Авг-26, 06:10   +/
>> GPU, в котором распараллеливание происходит на несоизмеримо более продвинутом уровне по сравнению с CPU-шым "перемножь мне 4 float вместо одного".
> У меня для вас плохие новости.

Я готов - сообщай.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #68

30. Сообщение от Аноним (22), 12-Авг-26, 06:18   +/
> У меня код реже про обработку данных и чаще про перекладывание между сисколами и либами.

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

> та же крипта не очень хорошо параллелится, особенно хэши, максимум в пределах одного блока можно SIMD~ами поколдовать.

В общем случае это заявление справедливо для любого алгоритма на уровне CPU. А так даже в x86 есть SHA расширения, не говоря уж о ARM.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #83

31. Сообщение от Sm0ke85 (ok), 12-Авг-26, 07:38   +1 +/
>В С/С++ нет системы типов.

```
Система типов в C/C++ — это набор правил и механизмов, которые определяют:

    какие значения можно хранить в переменной/выражении (тип),
    какие операции допустимы между типами (совместимость, перегрузки, преобразования),
    как именно компилятор проверяет корректность программы на этапе компиляции,
    какие преобразования выполняются автоматически (implicit conversions, promotions) или требуют явного приведения (casts),
    как устроены типы на уровне компилятора: базовые (int, double), указатели (T*), массивы, ссылки, классы/структуры, шаблоны и т.д*

```

Дай "голову на отсечение", ибо ты в нее похоже просто ешь... аахахах

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #52, #69

32. Сообщение от Брат Анон (ok), 12-Авг-26, 08:11   +1 +/
Мутация -- это непрерывный процесс. И единственный способ эволюции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #39

33. Сообщение от Брат Анон (ok), 12-Авг-26, 08:13   +1 +/
Как раз ожидаемо. Сейчас во всех языках есть идеи Вирта.  В частности, типизированные ссылка (в больных языках -- типизированный указатель)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

34. Сообщение от Брат Анон (ok), 12-Авг-26, 08:14   +3 +/
Этот язык полный по Тьюрингу. Поверх LLVM полным по Тьюрингу. Поверх нескольких типов железа полных по Тьюрингу. А значит можно. Неизбежное следствие из теорем Гёделя о неполноте. Это неизбежно.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

35. Сообщение от Axonic (ok), 12-Авг-26, 08:21   +/
Особенность Modjo — в ориентации на разработку LLM-систем. А компилируемая замена Python — это Nim.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #45, #73, #103

36. Сообщение от Брат Анон (ok), 12-Авг-26, 08:22   +1 +/
Для повышения эффективности разработки и эксплуатации?
Чукча не читатель, чукча писатель?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #44, #67

37. Сообщение от Брат Анон (ok), 12-Авг-26, 08:24   +1 +/
Ребята давно определились -- надо было блог читать. Закроют все ошибки, перепишут под другой лицензией несколько компонентов и тогда откроют. Клятвенно обещали, и пока обещания выполняют. Работают очень бодро. Вплоть до того, что в своё время приняли правильное решение и сильно изменили структуру языка (считаю, в этом была объективная необходимость).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #79

38. Сообщение от Брат Анон (ok), 12-Авг-26, 08:25   +/
Если ты вайбеодер, тогда да. А если у тебя нет лишнего лярда на толстую железку -- тогда разница есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #42

39. Сообщение от Jff (?), 12-Авг-26, 08:38   –5 +/
К сожалению обезьяна до сих пор не стала человеком.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #41, #50, #75

40. Сообщение от Аноним (40), 12-Авг-26, 08:45   –1 +/
Несмотря на питонообразный синтаксис, mojo больше похож на rust, только с человеческим лицом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #48, #92

41. Сообщение от ИмяХ (ok), 12-Авг-26, 09:08   +/
А человек до сих пор не стал обезьяной
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #56

42. Сообщение от User (??), 12-Авг-26, 09:45   +/
Не, ну с точки зрения программиста идея "потратить ярд на зряплату" вместо "ярда на железку" выглядит конечно ничего так, ага. Но с точки зрения конкретного вот бизнеса - "есть нюансы"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #46

43. Сообщение от опеншлёпивпродакшн (?), 12-Авг-26, 09:45   +1 +/
То есть ту же реализацию нельзя воспроизвести на другом языке?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #84

44. Сообщение от Аноним (44), 12-Авг-26, 09:50   +/
> Чукча не читатель, чукча писатель?

Сложно сказать это про автора языка. Но да, он опоздал. Появление LLM сделало питоноподобный синтаксис ненужным. В сущности, сейчас вообще стало не важно на чём писать с точки зрения, лишь бы LLM понимала, а целевой код эффективно исполнялся.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

45. Сообщение от Hack3r (?), 12-Авг-26, 09:51   +2 +/
Nim совсем другой синтакс
Mojo python-family язык
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

46. Сообщение от Аноним (44), 12-Авг-26, 09:52   +/
Если у вас нет лярда, то на питоне разрабатывать вы точно не будете. Зависит, конечно, от бизнеса. Но там, где нужна эффективность использования оборудования, питон не используют. А значит и язык ему подобный, знать там некому.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #53

47. Сообщение от здравствуйте_я_ваша_тётя (?), 12-Авг-26, 10:03   +2 +/
goto нету.
язык без goto - сразу понятно, что язык и его разработчики пытаются быть умнее программиста.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #60

48. Сообщение от здравствуйте_я_ваша_тётя (?), 12-Авг-26, 10:05   –1 +/
а раст с чьим лицом?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #49

49. Сообщение от Аноним (49), 12-Авг-26, 10:13   +3 +/
Думаю, что личо там как у разработчиков - рептилойдов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

50. Сообщение от Аноним (49), 12-Авг-26, 10:16    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

51. Сообщение от Аноним (51), 12-Авг-26, 10:16   +2 +/
Остин Пауэрс одобряет. Yeah, baby!
Ответить | Правка | Наверх | Cообщить модератору

52. Сообщение от Аноним (52), 12-Авг-26, 10:24   +2 +/
https://godbolt.org/z/Ga8o71zjn

#include <iostream>
using namespace std;

void print(int x) {
    cout << "int: " << x << '\n';
}

int main() {
    print(true);
    print(3.14);
    print('A');
    print("A");
    print(new runtime_error("A"));
}

Что не смеетесь?
Не смешно?
Не поняли?
ЭТО СИСТЕМА ТИПОВ СИ/СИ ++!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #55, #66, #78, #86

53. Сообщение от User (??), 12-Авг-26, 10:35   +/
> Если у вас нет лярда, то на питоне разрабатывать вы точно не
> будете. Зависит, конечно, от бизнеса. Но там, где нужна эффективность использования
> оборудования, питон не используют. А значит и язык ему подобный, знать
> там некому.

\Записывает\ Да что вы говорите? Дааа? А мужики-то не знают!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

54. Сообщение от Аноним (54), 12-Авг-26, 10:43   +/
MAXы. Они идут.
Ответить | Правка | Наверх | Cообщить модератору

55. Сообщение от Archer73 (ok), 12-Авг-26, 10:49   +1 +/
-fpermissive?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

56. Сообщение от Аноним (56), 12-Авг-26, 10:49   +/
Уже давно стал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

57. Сообщение от Аноним1234 (?), 12-Авг-26, 10:53   +/
По описанию не понял. Как там освобождают память? Там сборщик мусора, ручное управление или время жизни?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #59

58. Сообщение от Аноним (58), 12-Авг-26, 11:13    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

59. Сообщение от Hack3r (?), 12-Авг-26, 11:52   +/
ownership/lifetime + manual
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #100

60. Сообщение от User (??), 12-Авг-26, 11:54   +2 +/
> goto нету.
> язык без goto - сразу понятно, что язык и его разработчики пытаются
> быть умнее программиста.

По этому комментарию сразу понятно: у них получилось!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #81

61. Сообщение от corvuscor (ok), 12-Авг-26, 12:39   +1 +/
Вроде бы хорошо, но компилятор по-прежнему закрыт?
емнип, обещали к релизу, и теперь опять обещают?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63

63. Сообщение от Hack3r (?), 12-Авг-26, 12:50   +/
они вроде и говорили что первый этап это стандартная библиотека
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

64. Сообщение от Аноним (64), 12-Авг-26, 13:06   +/
"The systems language for the AI era.". Спасибо, что сразу предупредили
Ответить | Правка | Наверх | Cообщить модератору

65. Сообщение от Аноним (65), 12-Авг-26, 13:28    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору

66. Сообщение от Аноним (66), 12-Авг-26, 13:38   +/
неявное приведение к int в чем проблема?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #70, #82

67. Сообщение от aname (ok), 12-Авг-26, 13:49   +/
> Для повышения эффективности разработки и эксплуатации?
> Чукча не читатель, чукча писатель?

Ну и, как, повысил?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

68. Сообщение от Норм (?), 12-Авг-26, 13:53   +/
Именно что перемножить 4 флота вместо одного.
Там те-же самые вне очереди риск ядра с "avx" что и в цп.
Никакой волшебной супер техноложии распараллеливания.

Разница в модели памяти. ЖПУ читает и пишет большими кусками. И чтобы оно работало быстро и параллельно доступ к памяти во всех "потоках" должен быть синхронизирован. В идеале прочитать из одного массива и записать в один массив по окончании вычислений.

Между доступном к памяти код в потоках по большому счету каким угодно может быть и делать чего угодно. Но лучше чтобы схлопывался к 4 флота за раз если явно не указано вектора дробить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #77

69. Сообщение от Норм (?), 12-Авг-26, 14:02   +/
Все что угодно можно назвать системой типов конечно.
Типы в сишке указывают на то как компилятору интерптиривать кусок памяти (и то не всегда, смотрим описание типа int)

Есть ли какая-то в них система? Ну, если вы мухомором наелись, то можно найти, а так это бред просто.

С++ делает этот бред настолько запутанным, с описанием на 2 тысячи страниц, что сможет показаться что там есть какая-то симтема.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #71, #74

70. Сообщение от Норм (?), 12-Авг-26, 14:03   +/
В разименовании указателя на void.

Теперь можно смеяться 👍

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #72

71. Сообщение от Аноним (66), 12-Авг-26, 14:04   +/
а ты походу очередной ЫЫ бот!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

72. Сообщение от Аноним (66), 12-Авг-26, 14:07   +/
> В разименовании указателя на void.

где там разименовании?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

73. Сообщение от Xurxor (?), 12-Авг-26, 14:17   +2 +/
Вы слишком узко смотрите — LLM частный кейс применения Mojo, одна из ключевых фичей которого в том, что он позволяет выполнять на код GPU без CUDA.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #76

74. Сообщение от Sm0ke85 (ok), 12-Авг-26, 14:23   +/
>Все что угодно можно назвать системой типов конечно.

мимо

>Есть ли какая-то в них система?

есть

>С++ делает этот бред настолько запутанным, с описанием на 2 тысячи страниц, что сможет показаться что там есть какая-то симтема.

Короче, я так понял ты "брякнул не подумавши"... И разговор был о С/С++, если что...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

75. Сообщение от funny.falcon (?), 12-Авг-26, 14:26   +/
Как же не стала, если стала: человеки есть и они произошли от обезьяны (от общего предка)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

76. Сообщение от Axonic (ok), 12-Авг-26, 14:29   +/
Да, я это имел в виду. С замечанием согласен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

77. Сообщение от Аноним (22), 12-Авг-26, 15:16    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68

78. Сообщение от Sm0ke85 (ok), 12-Авг-26, 15:16   –1 +/
>Что не смеетесь?
>Не смешно?
>Не поняли?
>ЭТО СИСТЕМА ТИПОВ СИ/СИ ++!

Во-первых это таки С++, а во-вторых: Что ты доказал? Что cout работает с разными типами и вполне удачно конвертирует это все в строку? Что за бредовый пример? Ну склеил ты строку  "int: " с конвертированными в строки другими типами приведенными к инту, и что дальше? Проблема где? А то, что компилятор скорее всего тебе говорил, что беда с неявным преобразованием в инт тебя не беспокоило, ты наверное еще и флаги специальные использовал?

Там же все просто, ты даешь функции константу неопределенного типа под видом инта, а далее все это cout склеивает с твоей строкой "инт: ", а вот попробовал бы завести переменные и так подсунуть, то без шаманства оно бы уже неоткомпилировалось бы даже, ибо в этом отношении компилятор С++ пожестче будет чем у каноничного Си....

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #80

79. Сообщение от Аноним (22), 12-Авг-26, 15:19   +/
> Ребята давно определились -- надо было блог читать. Закроют все ошибки, перепишут под другой лицензией несколько компонентов и тогда откроют.

Мой вопрос был не о том, когда завершится "перепишут и закроют ошибки". Вопрос был в том, почему песни о "стабильности" начали петь ДО МОМЕНТА окончания этого процесса.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

80. Сообщение от Аноним (22), 12-Авг-26, 15:25   +/
> Что ты доказал?

Что "система типов" в С/С++ - неудачная шутка.

> Что cout работает с разными типами и вполне удачно конвертирует это все в строку?
> Проблема где?

Ты ведь ничего не понял, не так ли? Код вообще не о cout, а о том, что у тебя куча неявных преобразований в int на уровне той самой системы типов. Включая преобразование строки в int.

Можешь еще даже писать "1" + 1, прямо как в JavaScript.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #85

81. Сообщение от Ivan_83 (ok), 12-Авг-26, 15:28   –1 +/
Не получилось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #94

82. Сообщение от Аноним (22), 12-Авг-26, 15:28   +/
> неявное приведение к int в чем проблема?

В неявном приведении к int.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #87

83. Сообщение от Ivan_83 (ok), 12-Авг-26, 15:29   +/
К тому что ситуация когда векторизация и распараллеливание даёт профит встречается редко в обычных программах, и замена С/С++ на что то другое - не даст ничего в плане производительности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #95

84. Сообщение от Ivan_83 (ok), 12-Авг-26, 15:33   +/
Можно, но обычно реализации с SIMD, распараллеливанием и прочим это ручные реализации в С/С++ которые делаются уже после профилирования кода и понимания что оно даст прирост.
В сабжевом же языке типа оно делается само на автомате под капотом и поэтому авторы сабжа сравнили такую автовекторизацию с обычной реализацией и типа победили по скорости.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #96, #97

85. Сообщение от Sm0ke85 (ok), 12-Авг-26, 15:43   +/
>Что "система типов" в С/С++ - неудачная шутка.

Где? В неявном приведении? Или не понятно как твой фокус компилятор пропустил (а это именно что фокус)?

>Ты ведь ничего не понял, не так ли? Код вообще не о cout, а о том, что у тебя куча неявных преобразований в int на уровне той самой системы типов. Включая преобразование строки в int.

Я свой ответ поправил уже, а твои "куча неявных преобразований" не сработают, если ты заведешь переменные, фокусник (Ты б еще б тип #define 77 проверил бы на char'ность, ахахах, при чем тут Система типов, когда ты сырую дату подсовываешь, для которой выделено место в памяти, чтоб оно просто поместилось)...

А может ты "боевой" код покажешь, где твой фокус вдруг сработает...? Есть такой? ахахах

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #89, #91

86. Сообщение от Sm0ke85 (ok), 12-Авг-26, 15:53   +1 +/
>[оверквотинг удален]
>     print(true);
>     print(3.14);
>     print('A');
>     print("A");
>     print(new runtime_error("A"));
> }
> Что не смеетесь?
> Не смешно?
> Не поняли?
> ЭТО СИСТЕМА ТИПОВ СИ/СИ ++!

Убрал твои флаги, Фокусник, не благодари:

```
<source>: In function 'int main()':
<source>:12:11: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   12 |     print("A");
      |           ^~~
      |           |
      |           const char*
<source>:4:16: note: initializing argument 1 of 'void print(int)'
    4 | void print(int x) {
      |            ~~~~^
<source>:13:11: error: invalid conversion from 'std::runtime_error*' to 'int' [-fpermissive]
   13 |     print(new runtime_error("A"));
      |           ^~~~~~~~~~~~~~~~~~~~~~
      |           |
      |           std::runtime_error*
<source>:4:16: note: initializing argument 1 of 'void print(int)'
    4 | void print(int x) {
      |            ~~~~^
Compiler returned: 1
```

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

87. Сообщение от Аноним (66), 12-Авг-26, 16:15   +/
> В неявном приведении к int.

так компилятор тебе запрещает его по дефолту, ты должен его врубить через опцию -fpermissive, я спрашиваю, в чем проблема?

-Wimplicit-int
-Wint-conversion

-Wno-implicit-int (C and Objective-C only)
This option controls warnings when a declaration does not specify a type. This warning is enabled by default, as an error, in C99 and later dialects of C, and also by -Wall. The error can be downgraded to a warning using -fpermissive (along with certain other errors), or for this error alone, with -Wno-error=implicit-int.

This warning is upgraded to an error by -pedantic-errors.

-Wno-int-conversion (C and Objective-C only)
Do not warn about incompatible integer to pointer and pointer to integer conversions. This warning is about implicit conversions; for explicit conversions the warnings -Wno-int-to-pointer-cast and -Wno-pointer-to-int-cast may be used.

By default, in C99 and later dialects of C, GCC treats this issue as an error. The error can be downgraded to a warning using -fpermissive (along with certain other errors), or for this error alone, with -Wno-error=int-conversion.

This warning is upgraded to an error by -pedantic-errors.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

88. Сообщение от Ivan_83 (ok), 12-Авг-26, 16:16   +/
А зачем оно надо то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

89. Сообщение от Аноним (66), 12-Авг-26, 16:18   +/
> А может ты

это ЫЫ бот!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

90. Сообщение от Аноним (92), 12-Авг-26, 16:45   +/
Волшебство?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

91. Сообщение от Аноним (22), 12-Авг-26, 16:46    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

92. Сообщение от Аноним (92), 12-Авг-26, 16:48   –1 +/
Не люблю питон и раст, ещё человеческих лиц им не хватало!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

93. Сообщение от Аноним (93), 12-Авг-26, 16:53   +/
Это одно и тоже. Нужно понимать, что есть именованые указатели int* в Си или ^Integer в паскале. Ну а Pointer это неименнованный указатель.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

94. Сообщение от Аноним (94), 12-Авг-26, 17:01   +1 +/
бы если речь шла о тебе, то можно было бы сказать, что точно получилось, но ты не программист
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

95. Сообщение от Аноним (22), 12-Авг-26, 17:08   +/
> ситуация когда векторизация и распараллеливание даёт профит встречается редко в обычных программах

Объясняю еще раз: в этом обсуждении речь идет конкретно о аппаратном ускорении вычислений и как они ложатся на язык - для ситуаций, когда ускорение не только 100% дает профит, но и в принципе является незаменимым в силу бесполезности алгоритма, который иначе будет в разы и стони раз медленнее.

Поэтому второй раз спрашиваю: при чем здесь твое словоблудие про "обычные программы", системные АПИ и замену С/С++? Ты правда не понимаешь, что эти темы вообще не имеют отношения к обсуждаемой проблеме?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #101

96. Сообщение от Аноним (7), 12-Авг-26, 18:15    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

97. Сообщение от Аноним (7), 12-Авг-26, 18:17   –1 +/
> в С/С++ которые делаются уже после профилирования кода и понимания что оно даст прирост. В сабжевом же языке типа оно делается само на автомате

Т.е. в Можо это делается без профилирования и без понимания, надо ли оно и даст ли вообще профит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

98. Сообщение от Аноним (7), 12-Авг-26, 18:19   +/
Хинто 1: у LLVM есть Си/Си++ фронтэнды?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

99. Сообщение от Аноним (99), 12-Авг-26, 18:19   +/
> Синтаксис Mojo основан на языке Python, а система типов близка к C/C++.

Вые**ла жаба гадюку, так и появился Mojo.

Ответить | Правка | Наверх | Cообщить модератору

100. Сообщение от Аноним (7), 12-Авг-26, 18:21   +/
> manual

Здравствуй, сишный мир!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

101. Сообщение от Ivan_83 (ok), 12-Авг-26, 19:39   +/
> в принципе является незаменимым в силу бесполезности алгоритма

Если алгоритм бесполезный - зачем на него тратить время?)


Какой теме то?
Оно изначально началось с того что аноним возмутился тому что на С/С++ можно сделать никак не менее производительно, с чем я полностью согласен.
И то что авторы притянули производительность якобы выше - оное надо читать как с кучей звёздочек типа: когда С/С++ пограмисту было пофиг и лень и он написал просто чтобы работало не напрягясь.

Что же до самого ЯП то он за програмиста не будет делать ничего кроме местечкой векторизации, ну где то даст средства подобные OpenMP/CUDA/тп, но как их правильно юзать опять же на програмисте.

Я уже молчу про алгоритмические оптимизации, когда случается прорыв в сознании и алгоритм упрощается на порядки по вычислительной сложности.
Я с таким сталкивался когда иплементировал ECDSA, там заменяешь одни формулы на другие и бац оно в десятки раз быстрее. Заменяешь функцию на другую делающую то же самое но иначе (математически) и оно бах и опять ускорилось.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

102. Сообщение от Аноним (102), 12-Авг-26, 19:59   +/
Сделайте наконец во ФриПаскале блоки отступом. Пусть опционально даже. И будет вам статически типизированный Питон с производительностью почти Си.
Ответить | Правка | Наверх | Cообщить модератору

103. Сообщение от BrainFucker (ok), 12-Авг-26, 22:00   +/
Компилируемая замена Python это Cython.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

104. Сообщение от BrainFucker (ok), 12-Авг-26, 22:01   +/
Т.е. свифт в итоге оказался такой себе и автор решил начать с нуля новое?
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру