The OpenNET Project / Index page

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

Анонсирован язык программирования Moonbit, оптимизированный для WebAssembly

20.08.2023 10:48

Хунбо Чжан (Hongbo Zhang), основной разработчик языка программирования ReScript, также участвовавший в разработке языков OCaml и Flow, представил новый язык программирования Moonbit, специально оптимизированный для создания приложений, компилируемых в универсальный промежуточный код WebAssembly. Ключевыми целями разработки названы предоставление простого синтаксиса, высокая скорость компиляции, генерация компактного и быстрого промежуточного кода WebAssembly. Предоставляется несколько бэкендов для генерации кода, среди которых имеются бэкенды для JavaScript и нативного кода.

Необходимость создания нового языка объясняется тем, что разработка приложений для WebAssembly на низкоуровневых языках, таких как C++ и Rust, сопряжена со сложностью изучения и замедлением разработки из-за длительной компиляции. Высокоуровневые языки, такие как Go, проще для изучения и написания программ, но отстают по эффективности и компактности результирующего кода. Разработчики Moonbit попытались объединить лучшие стороны низкоуровневых и высокоуровневых языков, в контексте их использования с технологией WebAssembly.

Для достижения высокой производительности выполнения программ в компиляторе Moonbit задействован многоуровневый промежуточный код (MLIR Multi-Level Intermediate Representation), предоставляющий дополнительные возможности для оптимизаций, учитывающих графы потоков управления и данных, а также позволяющий более эффективно использовать процессорный кэш. Применение MLIR даёт возможность проводить оптимизацию и исключать избыточные конструкции на более высоком уровне, учитывающем структуру всей программы как единого целого, а не отдельных её частей.

Для достижения высокой скорости сборки и улучшения интеграции со средами разработки Moonbit поддерживает распараллеливание операций во время компиляции, выполняет анализ семантики на уровне отдельных функций и может использовать инкрементальную пересборку только изменившегося кода. Для уменьшения размера генерируемого кода в языке Moonbit изначально не поддерживаются конструкции, которые могут мешать выявлению и удалению неиспользуемого кода, а структура стандартной библиотеки оптимизирована для включения только кода, востребованного в приложении.

Язык поддерживает несколько парадигм программирования, включая элементы объектно-ориентированного и функционального программирования, предоставляет простую систему типов и реализует архитектуру, ориентированную на обработку данных. Синтаксис Moonbit разработан с оглядкой на простоту языка Go и некоторые расширенные возможности Rust, такие как поддержка сопоставления с образцом, вывода типов, дженериков и специализированного полиморфизма (подобие типажей). Для упрощения разработки в Moonbit, как и в языке Go, используется автоматическое управление памятью и рекурсивные замыкания. При этом в отличие от языка Go, в Moonbit изначально не поддерживаются потенциально опасные элементы, такие как указатели.

Проектом развивается полноценная платформа разработки, включающая компилятор, сборочный инструментарий, пакетный менеджер и интегрированную среду разработки, доступ к которой осуществляется через web-браузер (поддерживается как работа в облаке, так и запуск в offline-режиме). Также доступен плагин для редактора кода VSCode. В настоящее время проект находится на начальной стадии альфа-тестирования, на которой доступны только бинарные сборки компилятора и online-окружение для проведения экспериментов. Заявлено, что исходные тексты развиваемого проектом компилятора и инструментария будут открыты после готовности первой бета-версии, выпуск которой ожидается в середине следующего года.

  1. Главная ссылка к новости (https://www.moonbitlang.com/bl...)
  2. OpenNews: Опубликован Wasmer 4.0, инструментарий для создания приложений на базе WebAssembly
  3. OpenNews: Доступен предварительный вариант стандарта WebAssembly 2.0
  4. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  5. OpenNews: Создатель C++ раскритиковал навязывание безопасных языков программирования
  6. OpenNews: Создатель LLVM развивает новый язык программирования Mojo
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59632-moonbit
Ключевые слова: moonbit, webassembly
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (111) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:31, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Ещё одни буквы экономят.
     
     
  • 2.50, Аноним (-), 17:02, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Ещё одни буквы экономят.

    А в результате...
    1) На хрусте получилось компактнее.
    2) На хрусте програмер и компилер к тому же еще и знает что это i32 -> i32 и могут применить оптимизации с учетом этого фактора. В сабже вместо этого абстрактный int и полный цикл жизни оного оттрекать для оптимизаций - ну такое себе.
    3) Поэтому хруст еще и быстрее.
    4) А в глобальные оптимизации нынче может что угодно благодаря технологиям типа LTO. Даже сишка. Поэтому чувак немного отстал с этим.
    5) И кстати интересно что будет на большое проекте, если вон те предлагаемые трансформации проделать с проектиком покрупней? LTO например ресурсов жрет просто море если им попробовать что-то типа линукскернела окучать, аж энтерпрайзные билдфермы напрягаются :)

     
     
  • 3.77, Бывалый смузихлёб (?), 18:44, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Для истинных ценителей даже на сишке есть встройщино-подобные именования типов в... большой текст свёрнут, показать
     
     
  • 4.166, Аноним (-), 22:36, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Капитан, залогинтесь - вы это махровому сишнику рассказали И таки вот как раз я... большой текст свёрнут, показать
     
     
  • 5.170, Бывалый смузихлёб (?), 10:56, 23/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почти как Пролог Вроде бы и есть А вроде бы - несколько лет назад упоминался л... большой текст свёрнут, показать
     
  • 2.153, nc (ok), 13:16, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Go код выглядит чище и лучше. Всякого мусора типа двоеточий после имен переменных и стрелочек в сигнатурах функций нет (с точки зрения синтаксиса, эти символы там не нужны, они просто декоративные).
    Что касается "case", то я когда-то очень давно, когда после Паскаля стал изучать Си, тоже думал что они лишние. А теперь понимаю, насколько это красиво - когда каждый узел синтаксического дерева начинается с ключевого слова. Особенно красиво, когда кода внутри каждого case больше чем одна строчка.
     

  • 1.2, Аноним (2), 12:36, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Зачем?
     
     
  • 2.7, Alladin (?), 13:04, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чел хочет занять нишу, ведь wasm преспективен. А писать приложения на js для wasm нереально, а C++/Rust для него не скриптовые.
     
     
  • 3.30, Аноним (30), 14:50, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    какую нишу? ты практически из всего можешь сделать webassembly
     
  • 2.11, Аноним (11), 13:25, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Очевидно из резюме автора, что он профессионально занимается разработкой языков программирования, возможно является профессором (и где-то преподаёт, как например Мартин Одерски) и никакой цели получить одобрения от икспертов с опеннета точно не преследует
     
     
  • 3.145, Neon (??), 08:56, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > он профессионально занимается разработкой языков программирования

    Т.е. автор языка просто кушать хочет. Вот и сочиняет всякую фигня.

     
  • 3.171, kafka (?), 19:06, 23/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://www.linkedin.com/in/hongbo-zhang-a8574157/

    XXX на работе пинает, вот и есть время на ерунду.

     
  • 2.18, Аноним (18), 14:15, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да не зачем. Очередной X для Y. Стоящие идеи в ит кончились.
     
     
  • 3.24, Аноним (24), 14:34, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Стоящие идеи в ит кончились

    Это не так. Нет чистой реализации ООП в виде объектов передающих сообщения. Подержка сообщений на языковом уровне это будет прорыв покруче всего асихионного и функционального копошения.

     
     
  • 4.25, Аноньимъ (ok), 14:41, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В ракете разве не так?
     
     
  • 5.49, Аноним (24), 16:58, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю. Но если ракета еще не захавала мозги всему миру, как это в свое время сделали объекты, значит там чего-то не то.
     
  • 4.33, Аноним (33), 15:05, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты просто гений. Вызови метод другого класа с аргументом, вот тебе и сообщение.
     
     
  • 5.38, Аноним (30), 15:20, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А что, так можно было?
     
  • 5.48, Аноним (24), 16:55, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Это не то. У тебя обработка сообщения привязана к конкретной инстанции объекта-обработчика. Ее откуда-то нужно получить и управлять временем жизни этой связи. Вокруг этого крутятся все ди-фреймворки, решая проблему которой при отправке сообщений не существует.

    В тру ООП могло бы быть так: объект отправляет событие в шину, все кто может его получает и как-то обрабатывает. Явной связи в виде ссылок на объекты нет, есть только семантика высокоуровневых сообщений, они позволяют строить программу более чисто. Весь алгоритм программы строится не на состоянии, а на цепочке сообщей и множестве объектов их обрабатывающих.

    Сейчас что-то подобное делается внешним кодом, а хотелось бы чтобы была поддержка прямо в языке.

     
     
  • 6.59, Аноним (33), 18:04, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Парень, тебя к коду вообще подпускать нельзя. А то ты для передачи параметра в функцию создашь для этого контейнер в AWS или Azure.
     
     
  • 7.68, Аноньимъ (ok), 18:24, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Парень, тебя к коду вообще подпускать нельзя. А то ты для передачи
    > параметра в функцию создашь для этого контейнер в AWS или Azure.

    Вы не шарите, теперь модно serverless приложения делать, всякие AWS Lambda, буквально функцию в контейнере запускать.
    Иди и смотри!

     
  • 7.71, YetAnotherOnanym (ok), 18:26, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, кагбэ, к этому, вообще-то всё и идёт. Вызов функции как сервис. Сискол как сервис. Присвоение переменной как сервис. И так далее.
     
     
  • 8.78, Аноним (30), 19:02, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И на этом писать межгалактическую ось реального времени ... текст свёрнут, показать
     
     
  • 9.149, Пыщь (?), 09:55, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проще на этом стричь бабло ... текст свёрнут, показать
     
  • 6.66, Аноньимъ (ok), 18:22, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > объект отправляет событие в шину, все кто может его получает и как-то обрабатывает.

    Это бесполезное немного безумное действие.
    B каких-то оооочень редких случаях может быть нужно.

    > Явной связи в виде ссылок на объекты нет

    Ссылка на объект = индивидуальное имя
    Как вы без имени собираетесь сообщение от объекта А отправить объекту Б?
    Минимум у получателя должен быть какой-то адрес мать его.

    > позволяют строить программу более чисто. Весь алгоритм программы строится не на
    > состоянии, а на цепочке сообщей и множестве объектов их обрабатывающих.

    Вы с функциональным программированием знакомы?

    > Сейчас что-то подобное делается внешним кодом, а хотелось бы чтобы была поддержка
    > прямо в языке.

    Smalltalk имеет тру ооп на сообщениях. Самый оопнутый из всех ооп язык.

     
  • 6.75, YetAnotherOnanym (ok), 18:30, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    <троллмоде>Вкорячь в свою программу amqp-брокер</троллмоде>
     
  • 6.79, Аноним (79), 19:08, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И зачем это между классами? Может тебе ещё балансировщик впиндюрить на уровне языка, чтобы твой хайлоад не пропал? Для всего этого бреда есть фреймворки под любой мало-мальски используемый язык. И этого достаточно.
     
  • 6.80, Аноним (79), 19:10, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А то хотят нажать одну кнопку чтобы у них всё работало, а потом удивляются почему их уволили и заменили ИИ.
     
  • 6.82, Аноним (82), 19:30, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Дружище, погугли алгебраические эффекты. Это оно, только лучше. А то что ты описал — это и есть ДИ, и тут от языковой/компиляторной поддержки выигрыша никакого не будет, потому никто и не делает, проще реализовать библиотеками, чем жёстко прибивать язык гвоздями к одной реализации.
     
     
  • 7.179, Аноним (179), 12:26, 27/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > алгебраические эффекты. Это оно, только лучше.
    > лучше

    Не факт, что вообще хорошо. Goto с модной причёской

     
  • 4.51, Аноним (51), 17:07, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Подержка сообщений на языковом уровне это будет прорыв покруче всего асихионного и функционального копошения.

    Objective-C
    Qt сигналы/слоты
    Не оно?

     
  • 2.45, Аноним (45), 16:29, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в качестве DRM. Вы зашиьётесь декомпилировать васм-низкоуровневую виртуальную машину с заинлайнеными в код методами типов, в отличие от типов JavaScript, которые реализованы внутри браузера, работают по спецификации и идут под своими именами. DENUVO для сайтов потребляет 10ьгигов оперативы? Твоя проблема, а хозяин сайта - барин, это не ты ему нужен в качестве посетителя, это его сайт тебе нужен, барин прикажет - и браузер с WebButtplug поставишь ради доступа к сайту. Ну или вылетишь с работы, а вместо тебя твой босс наймёт того, кто поставит и вставит, за это в том числе пролам и платят.
     

  • 1.3, Шарп (ok), 12:37, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >Проектом развивается полноценная платформа разработки, включающая компилятор, сборочный инструментарий, пакетный менеджер
    >пакетный менеджер

    И ты, Брут. Каждому языку по пакетному менеджеру.

     
     
  • 2.17, Аноним (17), 14:15, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    сишка: стопицот пакетных менеджеров от стопицот дистров
    опеннетчики: ОК

    раст: один стандартный пакетный менеджер
    опеннетчики: СЛИШКАМ МНОГА

     
     
  • 3.151, Серб (ok), 12:45, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> сишка: стопицот пакетных менеджеров от стопицот дистров
    >опеннетчики: ОК

    И это правильно. Так и должно быть. Ибо надо привязывать не язык, а целевую платформу. Так как в одном проекте может быть множество языков. Если ты на это не рассчитываешь, то ограничиваешь развитие проекта.

    >> раст: один стандартный пакетный менеджер
    > опеннетчики: СЛИШКАМ МНОГА

    Перевираешь. Жесткая привязка не к тому типу пакетных менеджеров. Это ошибка проектирования.

     
     
  • 4.173, Аноним (173), 10:20, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Поставь через apt 2 версии пакета, давай.

    (В Nix так можно, но тебе до него далеко)

     
     
  • 5.177, Серб (ok), 18:26, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Поставь через apt 2 версии пакета, давай.

    Зачем?

    Если нужно тестировать сборку для разных систем, то есть конвееры непрерывной интеграции. Где не только библиотеки разные.

    Если для разработки с новыми версиями, то для этого разработка ведется с вытащенными из репозитария.

    Отсюда вопрос: Зачем?

     

  • 1.4, Аноним (4), 12:47, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Ещё один никому не нужный язык.
    Впрочем, если впишутся китайцы с алибабами, тенсентами и хуавеями, то может и взлететь.
    Но синтаксис и обязательный сборщик мусора...
     
     
  • 2.32, Витюшка (?), 14:54, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Huawei пилит свой новый язык программирования. Это строго типизированный язык (подмножество Typescript), которое будет компилироваться то ли нативный код, то ли исполняться оптимизирующей JIT виртуальной машиной.

    При том они дизайн весь pipeline, без использования llvm.

    Пилят в России ;)) 140 человек работает над проектом.

     
     
  • 3.39, Аноним (4), 15:20, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это Ascend C, он давно уже вышел.
    Беда в том, что там спецрешение по типу Erlang/OTP, только на базе C и он именно для той же ниши, что эрланг изначально, т.е. сети и телеком.
    Может пытаться делать всякое прикладное, но пока особо смысла нет, у него банально другие цели.
     
     
  • 4.63, Витюшка (?), 18:16, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты вообще не читаешь перед тем как ответить? Какой С? Я говорю Typescript. Пилится для Harmony OS. Проект новьё, даже окончательной спецификации языка нет.

    Никуда он ещё не вышел

     
  • 4.155, nc (ok), 13:20, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что за Ascend C, где можно почитать?
     
  • 3.167, Аноним (167), 23:55, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Cangjie programming language?
     
  • 3.180, Аноним (179), 12:28, 27/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Huawei
    > Пилят в России

    Ясно, понятно. Аминь

     

  • 1.5, Аноним (167), 12:49, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В нем GC из экспериментального wasm стандарта или встроенный?
     
  • 1.6, Kuromi (ok), 12:53, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Который год разговоры про WebAssembly, вот даже языки начали новые писать, а применения сабжа что-то не видать.

    С другйо стороны как подумаешь как тег video быстро выродился в видеорекламу...

     
     
  • 2.9, Аноним (9), 13:12, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В Фигму зайди и посмотри. В голове держи простую мысль что без вебассембли такой функционал реализовать нельзя.
     
     
  • 3.10, Kuromi (ok), 13:13, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В Фигму зайди и посмотри. В голове держи простую мысль что без
    > вебассембли такой функционал реализовать нельзя.

    javascript.options.wasm=false и смотреть что сдохнет :)

     
  • 2.15, FF (?), 14:01, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > применения сабжа что-то не видать.

    потому что чтобы задействовать модуль WASM, надо испачкаться JS и только через это взаимодействовать с DOM.

     
  • 2.172, Аноним (172), 00:10, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В криптовалютках вон используется. Блокчейн Polkadot ( DOT ) вовсю на нем катается, 11-й по капитализации (5.5 млрд). Понятно, тебе наверняка это окажется не нужно ("пузырь","пирамида","МММ", "дармоеды", "спекулянты проклятые"...), но народу уже не первый год требуется.

    Да и не только там. Но приведи тебе еще что-нибудь в качестве примера - эта штука с большой долей вероятности тут же окажется тебе ненужной. А там уже известно всё - раз не нужно тебе, значит не нужно никому (получается, кто-то пилит ненужное даже для себя? Извращенец). Расслабься. Тебе не нужно, значит нигде не используется, только пилится, ты прав.

     
     
  • 3.176, Kuromi (ok), 16:39, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В криптовалютках вон используется. Блокчейн Polkadot ( DOT ) вовсю на нем
    > катается, 11-й по капитализации (5.5 млрд). Понятно, тебе наверняка это окажется
    > не нужно ("пузырь","пирамида","МММ", "дармоеды", "спекулянты проклятые"...), но народу
    > уже не первый год требуется.
    > Да и не только там. Но приведи тебе еще что-нибудь в качестве
    > примера - эта штука с большой долей вероятности тут же окажется
    > тебе ненужной. А там уже известно всё - раз не нужно
    > тебе, значит не нужно никому (получается, кто-то пилит ненужное даже для
    > себя? Извращенец). Расслабься. Тебе не нужно, значит нигде не используется, только
    > пилится, ты прав.

    Pump it. Dump it.

     

  • 1.8, Аноним (9), 13:11, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Да блин опять всё переписывать.
     
  • 1.12, Аноним (12), 13:36, 20/08/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

     ....ответы скрыты (4)

  • 1.16, 12yoexpert (ok), 14:13, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > на низкоуровневых языках, таких как C++ и Rust

    дожили. напомним, что С - язык высокого уровня

     
     
  • 2.21, Аноним (17), 14:26, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    языки не делятся на "высоко-" и "низкоуровневые". Понимаешь ли, уровней много, их больше двух. Поэтому речь идет про "более высокоуровневые" или "более низкоуровневые" языки. Синтаксисы асма более высокоуровневые, чем херачить машинные коды в хекс-редакторе. Но: си менее низкоуровневый, чем допустим Vala.
     
     
  • 3.40, Аноним (40), 15:39, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Но: си менее низкоуровневый, чем допустим Vala.

    Сам запутался в своих абстракциях?

     
     
  • 4.42, Аноним (17), 15:57, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    все еще лучше, чем считать, что языки бывают ровно двух типов.

    > Макс Корж — Запомни, есть два типа людей

     
  • 2.23, Аноним (-), 14:29, 20/08/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.19, Аноним (19), 14:22, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А ведь было время, когда WASM означал нечто для избранных...
     
     
  • 2.52, Аноним (51), 17:18, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты про Watcom С/С++/Asm ?
     
  • 2.73, Аноним (-), 18:27, 20/08/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.98, onanim (?), 21:09, 20/08/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

     ....ответы скрыты (3)

  • 1.20, eganru (?), 14:26, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Там где Int, там и гниль.
     
     
  • 2.26, Аноньимъ (ok), 14:44, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да, в этом языке лунатиков, инт какой вообще? Безразмерный, фиксированный, случайного размера(как в сишке и сипипишке)?
     
     
  • 3.41, Аноним (40), 15:41, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    int зависит от платформы и вообще открой для себя stdint.h
     
     
  • 4.44, Аноньимъ (ok), 16:22, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >int зависит от платформы

    То есть Moonbit страдает нонбинарным гендерфлуидным интом, как и сишка?

    >и вообще открой для себя stdint.h

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

     
     
  • 5.157, Пряник (?), 13:31, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не удержишь :)

    В этом файле лежат макросы для определения фактического типа данных, скрывающегося, например, за словом uint8_t. Это нужно для компиляции одного и того же кода на разной архитектуре проца.

     
  • 4.57, _kp (ok), 17:48, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Int и иже с ними сейчас зависит не от платформы, а от параметров компилятора.
     
     
  • 5.87, Аноним (87), 19:47, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А можете привести пример этих параметров (для GCC, например)?
     
     
  • 6.141, _kp (ok), 02:48, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для gcc на x86 нужно передать компилятору дефайны.
    Обычно применяю для единнообразной сборки.
    А то на разных 32х битных платформах(микроконтроллры, linux, windows..)  бардак с long.
    Для некоторых архитектур у gcc есть и ключи управляющие размерностью типов.
     
     
  • 7.181, anonymous (??), 18:11, 27/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вас пример привести попросили, а вы своё же сообщение другими словами написали

    если вы про m32/m64, то это не то.

     

  • 1.28, Аноним (28), 14:46, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Необходимость создания нового языка объясняется тем, что разработка приложений для WebAssembly на низкоуровневых языках, таких как C++ и Rust, сопряжена со сложностью изучения

    Поэтому надо выучить целый новый язык в дополнение к уже выученным C++, Rust и JavaScript.

     
     
  • 2.34, Аноним (9), 15:07, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Считай что это новый фреймворк для джаваскрипт.
     
     
  • 3.43, Аноним (43), 16:21, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не нужны, всё нужное давно уже и так есть в браузере.
     
  • 2.158, Пряник (?), 13:35, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот тоже реально бесит. Зачем с новым языком придумывать новый синтаксис? Хотя бы на 99% можно его не менять. Понятно, что функционал языков может отличаться.
     

  • 1.31, Аноним (30), 14:53, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ну любит чел поддобавить цифровой энтропии, что теперь поделать...
     
  • 1.46, Аноним 100 (?), 16:48, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отлично, избавились от указателей и оператора return. Вот если бы ещё избавились бы от скобок, был бы вообще огонь.
     
     
  • 2.53, Аноним (51), 17:24, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот если бы ещё избавились бы от скобок

    Python, Nim, Mojo for you

     
     
  • 3.61, Аноним (61), 18:10, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Python, Nim, Mojo for you

    Только питон 2 позволял не использовать скобки. А весь прочий указанный хлам не имеет синтаксиса без скобок.

     
     
  • 4.111, Аноним (51), 21:58, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Блоки отступами без скобок. Что в 2, что в 3.
     
     
  • 5.138, Аноним (61), 00:39, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это у Ruby и блоки, и программирование возможно без скобок. А у питонячьего семейства без скобок - никак. Попробуйте в питоне функцию вызвать без скобок.
     
     
  • 6.139, Аноним (-), 01:21, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стоит добавить, что Ruby вообще позволяет не использовать скобки в программировании. Обойтись без простых, без фигурных, без квадратных.. Вообще без скобок, если надо. Это до сих пор его позволяет оценивать как уникальный язык для создания domain specific embedded languages. Жаль, что молодёжь сейчас неграмотная и таких особенностей языков программирования не знает.
     
     
  • 7.152, Аноним (152), 13:16, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-вообще без скобок - прям Бейсик какой-то.
     
  • 6.154, Аноним (152), 13:18, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет уж, функции пусть лучше с круглыми скобочками останутся. А то, что во втором print без скобок был, так то был оператор, а не функция.
     
  • 6.159, Карлос Сношайтилис (ok), 13:48, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > myfunc = lambda x: x
    > res = map(myfunc, [])

    myfunc вызвана без скобок

     
     
  • 7.162, Аноним (61), 15:57, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Но только в этом фрагментике и простые, и квадратные скобки присутствуют. Да и вызов тут не функции, а лямбды. А разговор был об отсутствии скобок вообще.
     
  • 6.160, Пряник (?), 14:06, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Попробуйте в питоне функцию вызвать без скобок.

    class A:
      def __add__(self, value):
        return "Aaaaaaa!"
      @property
      def b(self):
        return "zavarudo!"

    a = A()
    a + a
    a.b

     
     
  • 7.161, Аноним (61), 15:55, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    хотите сказать, что тут скобок нет? И даже в a.b можно аргументы передать?
     
  • 4.146, Neon (??), 08:59, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зато вместо скобок приходится  считать табы. Так себе решение.)))
     
  • 2.60, Аноним (61), 18:09, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> избавились бы от скобок,

    Ruby и Scala. Только семантика там разная. Если у Ruby отказ от скобок выглядит органично, то вариант Scala - не очевидно.

     
  • 2.142, _kp (ok), 02:55, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Вот если бы ещё избавились бы от скобок, был бы вообще огонь.

    В принципе Си позволяет не использовать фигурные скобки, их можно заменить запятыми.
    До кучи можно не использовать и операторы if и for. Да, читаемость будет чуть хуже, но если цель "упростить", то самое то. %)

     

  • 1.47, Имя (?), 16:54, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего набросились? Может чуваку покайфу каждые несколько лет выкатывать по ненужному языку. Может продаст кому серию курсов или книг.
     
  • 1.65, pashev.ru (?), 18:19, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    С таким названием не взлетит.
     
  • 1.85, Аноним (82), 19:38, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > func
    > fn

    Определитесь там.

    > .moon

    MoonScript тем временем: ну да, ну да, пошёл я к чёрту.

     
     
  • 2.137, Аноним (137), 23:03, 20/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> func
    >> fn
    > Определитесь там.

    Top-Level Functions

    Functions can be defined as top-level or local. We can use the func keyword to define a top-level function that sums three integers and returns the result

    Local Functions

    Local functions are defined using the fn keyword. Local functions can be named or anonymous. Type annotations can be omitted for local function definitions: they can be automatically inferred in most cases.

     
     
  • 3.147, Neon (??), 09:00, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На хрена плодить ненужные сущности ?!
     

  • 1.126, анон (?), 22:34, 20/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На сколько языков раст уже повлиял - не сосчетать
     
  • 1.143, Аноним (143), 05:32, 21/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Какой-то Moonbit, вот WebAss ( сокращение от WebAssembly, а не то что вы подумали) все летел бы. Сразу видно для чего язык.
     
     
  • 2.164, mos87 (ok), 17:17, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всё правильно подумали! https://en.wikipedia.org/wiki/Mooning
     

  • 1.144, Аноним (144), 08:04, 21/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очередная серебрнянная пуля
     
     
  • 2.148, Neon (??), 09:01, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Которая в очередной раз мимо)
     
  • 2.150, Facemaker (?), 11:53, 21/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Садись, два. "Стеклянный, оловянный, деревянный".
     

  • 1.156, nc (ok), 13:23, 21/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А кстати, на картинке в moonbit одновременно "func" и "fn"?
     
  • 1.165, Аноним (165), 17:28, 21/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Остаётся carbon.
     
     
  • 2.168, Аноним (168), 11:25, 22/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    cabron же.
     

  • 1.169, Брат Анон (ok), 09:43, 23/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Неужели Раст здорового человека?)))
     
  • 1.178, uis (??), 05:35, 26/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чел переизобрёл LTO?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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