The OpenNET Project / Index page

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

Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly

23.11.2021 12:55

Опубликован выпуск компилятора Emscripten 3.0, позволяющего компилировать код на C/C++ и других языках, для которых имеются фронтэнды на базе LLVM, в универсальный низкоуровневый промежуточный код WebAssembly, для последующей интеграции с JavaScript-проектами, запуска в web-браузере, использования в Node.js или создания обособленных многоплатформенных приложений, запускаемых при помощи wasm runtime. Код проекта распространяется под лицензией MIT. В компиляторе используются наработки проекта LLVM, а для генерации WebAssembly и оптимизации задействована библиотека Binaryen.

Основной целью развития проекта Emscripten является создание инструмента, позволяющего выполнять в Web код независимо от языка программирования, на котором данный код написан. В компилируемых приложениях могут использоваться вызовы стандартных библиотек C и С++ (libc, libcxx), расширения C++, многопоточность на базе pthreads, API POSIX и многие мультимедийные библиотеки. Отдельно предоставляются API для интеграции с Web API и кодом на JavaScript.

Emscripten поддерживает трансляцию вывода библиотеки SDL2 через Canvas, а также предоставляет поддержку OpenGL и EGL через WebGL, что позволяет преобразовывать в WebAssembly в том числе и графические приложения и игры (например, имеется порт тулкита Qt и поддерживаются игровые движки Unreal Engine 4 и Unit, физический движок Bullet). Помимо компиляции кода на C/C++ отдельно развиваются проекты для обеспечения запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Также возможно применение отличных от Clang фронтэндов к LLVM, доступных для таких языков, как Swift, Rust, D и Fortran.

Основные изменения в Emscripten 3.0:

  • Задействованная в emscripten Си-библиотека musl обновлена до версии 1.2.2 (в ветке Emscripten 2.x использовалась версия 1.1.15).
  • Из библиотеки parseTools.js удалена порция функций, которые в основном использовались внутри проекта: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralTypePartBits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • В шаблонах shell.html и shell_minimal.html вывод сообщений об ошибках, возникающих в процессе работы emscripten и выдаваемых приложением через stderr, по умолчанию переключён на использование console.warn вместо console.error.
  • Добавлена возможность указания определённой текстовой кодировки, используемой в именах файлов. Кодировка может задаваться в форме суффикса при передаче имени файла, например, "a.rsp.utf-8" или "a.rsp.cp1251").


  1. Главная ссылка к новости (https://github.com/emscripten-...)
  2. OpenNews: Компилятор Emscripten достиг возможности собственной пересборки
  3. OpenNews: Увидел свет Emscripten 1.4, компилятор байткода LLVM в JavaScript-представление
  4. OpenNews: W3C придал WebAssembly статус рекомендованного стандарта
  5. OpenNews: Запуск WebAssembly runtime как модуля ядра Linux
  6. OpenNews: Доступен Wasmer 2.0, инструментарий для создания приложений на базе WebAssembly
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56216-emscripten
Ключевые слова: emscripten, javascript, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (100) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, А где же каменты (?), 13:35, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Чего только не придумают, чтобы нормально на жаваскрипте не писать!
     
     
  • 2.10, Урри (ok), 13:51, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +35 +/
    На джаваскрипте нормально писать невозможно.
    Иначе бы не придумали миллион фреймворков поверх других фреймворков, лишь бы хоть как то писать можно было.
     
     
  • 3.11, НяшМяш (ok), 13:59, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +9 +/
    На джаваскрипте можно нормально писать если это тайпскрипт. Ну и сверху миллионом фреймворков помазать конечно же.
     
     
  • 4.12, Аноним (12), 14:04, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Значит Урри прав, это невозможно.
     
     
  • 5.23, n00by (ok), 15:32, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Для котов много на чём писать нормально. Они вообще бывают вездесущи.
     
     
  • 6.68, Михрютка (ok), 23:47, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    два запасных тапка этому господину
     
  • 4.40, Старший Аноним (?), 17:40, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Миллион фреймворков нужен не JavaScript, а уродству под названием HTML, DOM, Google Chrome.
    Не туда пошло развитие, не туда. Но так иногда бывает в истории 0 не самые лучшие идеи побеждают.
     
     
  • 5.54, Урри (ok), 19:10, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так и запишем - джаваскрипт фреймворки не нужны джаваскрипту. Джаваскрипт фреймворки нужны HTML, его организации в виде DOM и, внезапно, хрому(???). Именно поэтому они называются "джаваскрипт" и построены поверх "джаваскрипт".

    > Не туда пошло развитие, не туда.

    С этим не спорю - против фактов не попрешь.

     
     
  • 6.78, Старший аноним (?), 09:18, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если вместо JavaScript в браузер воткнуть другой язык, например, Python, то от фреймворков все равно не избавишься. Так как природа фреймворков обусловлена в первую очередь средой функционирования, как я уже выше писал, а не самим языком программирования. Зри в корень - как говорил Козьма Прутков, и у вас все будет хорошо.
     
     
  • 7.85, Урри (ok), 11:49, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нууууууу, я в деталях, наверное, все же не согласен.

    От массивных библиотек, конечно, не избавится - но это то как раз и является нормальным и ни разу не критикуемым. Например, сама идея "реактивного" привычна и удобна (хых, просто перенесли классическое программирование UI в веб). Но вот как это все реализовано...

    Был бы, скажем, приведенный вами в пример питон - можно было бы все это в десятки раз упростить и не городить каждый раз кастомный синтаксис поверх джаваскрипта. А так.

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

     
  • 3.25, Аноним (25), 15:42, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На C++ сможете написать GUI, не пользуясь библиотеками и фреймворками?
     
     
  • 4.30, Урри (ok), 16:08, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Что вы имеете ввиду под "бибиотеки"? user32.dll - это библиотека? А libgtk-3.so?

    Если нет (вы же имели ввиду что-то более высокоуровневое вроде электрона, не правда ли?), то да - элементарно.
    Под никсы gtk очень даже юзабелен, а если еще и glade для макета использовать, то вообще лафа.
    Под офтопик winapi очень даже юзабелен, а если еще и resedit для макета использовать, то вообще лафа.

    Причем разработка для меня займет вполне сравнимое время с наворачиванием на ноду всяких реактов, кофескриптов, пугов и цээсэс.

     
     
  • 5.44, Аноним (44), 18:55, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > winapi юзабелен

    Выложи код, создающий простое окно, а мы посмотрим.

     
     
  • 6.55, Урри (ok), 19:17, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это шутка такая? Молодые анонимчики даже не представляют себе что такое возможно??

    Гугл по запросу "winapi CreateWindowEx" и более простой "winapi CreateDialog".

     
     
  • 7.60, Аноним (60), 19:42, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так и запишем - "не смог".
     
     
  • 8.61, Урри (ok), 19:45, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ээээ, это какое-то новое дно анонимов Не могут в гугл мышкой текст перетянуть ... текст свёрнут, показать
     
     
  • 9.63, Аноним (60), 20:29, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вау, круто ... текст свёрнут, показать
     
  • 9.75, Аноним (75), 02:10, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это просто растущий организм Образование убили давно Несколько поколений таких у... текст свёрнут, показать
     
  • 8.80, Аноним (80), 09:50, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так и запишем Аноним не смог в гугль ... текст свёрнут, показать
     
     
  • 9.89, ВебМакак (?), 13:42, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    code FONT 8, MS Sans Serif BEGIN PUSHBUTTON Press This Button ,ID... текст свёрнут, показать
     
  • 7.117, Аноноша (?), 23:20, 29/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Это шутка такая? Молодые анонимчики даже не представляют себе что такое возможно??
    > Гугл по запросу "winapi CreateWindowEx" и более простой "winapi CreateDialog".

    Это юзабельное апи? Извращенец!

     
  • 6.118, Аноним (118), 16:49, 01/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/SFML/SFML/blob/master/src/SFML/Window/Win32/WindowImplWin32
     
  • 4.38, n00by (ok), 17:02, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Даже мистер dd сможет, если Гном не будет мешать:

    dd if=/dev/urandom of=/dev/fb0 bs=4096 count=10

     
  • 4.41, Аноним (41), 17:46, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Использу толко лишь один XCB, она оборачивает голый протокол, можно.
     
  • 3.50, Аноним (44), 19:03, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Следуя этим выводам на с плюс плюс также писать нельзя, иначе бы не придумали qt, boost и миллионы прочих либ.
     
     
  • 4.56, Урри (ok), 19:23, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    qt, boost и где-то всего пара десятков подобных библиотек - это следствие большой мультиплатформенности С/С++ и разнообразия системных средств.
    В то время как javascript одноплатформенен.

    Кроме того для С++ не существует подобного списка из пары сотен(!!!) языков, которые транслируются в JavaScript (https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-).

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

     
     
  • 5.71, Аноноша (?), 01:32, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если бы на джаваскрипте можно было нормально программировать - кто бы заморачивался такой трансляцией?

    Кофескрипт появился во времена застоя js: на пороге стандартов es3/es5. Но потом все поменялось: стандарты стали обновляться чаще и итеративно по годам (примерно как с с++).

    Ну или хочет кто-то писать фронтенд на Haskell или clojure - во что его компилировать? В js. Просто это была единственная цель компиляции. Вот сейчас ещё и wasm есть.

    Вообщем вполне нормальный язык (без недостатков, конечно), на котором можно писать даже без typescript. Посмотри, например, на https://github.com/google/closure-library

     
     
  • 6.87, Урри (ok), 12:44, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    в JS просто втянули еще и кофескрипт Сомнительное достижение Ты не повериш... большой текст свёрнут, показать
     
     
  • 7.91, Аноноша (?), 17:17, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты мне ссылку на кофескрипт, я тебе объяснил откуда ноги растут Кофескрипт почт... большой текст свёрнут, показать
     
     
     
    Часть нити удалена модератором

  • 9.101, Аноноша (?), 02:27, 25/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давай разберем последнее и расскажи с чем ты не согласен boostrap существует ... большой текст свёрнут, показать
     
  • 5.73, Аноноша (?), 01:45, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > qt, boost и где-то всего пара десятков подобных библиотек - это следствие большой мультиплатформенности С/С++ и разнообразия системных средств.

    В то время как javascript одноплатформенен.

    Ну в boost были умные указатели до их появления в stl. Или бустовый foreach. Это все не имеет отношения к платформам.

    Или почему qt (и много кто ещё) реализуют свои аналоги строк и контейнеров?

    В плюсах несколько компиляторов и много платформ. В js несколько движков (2 основных) и тоже далеко не везде есть все что нужно, поэтому приходится проверять доступность фич. А если касаться работы с dom, то там ещё все хуже. Именно поэтому и есть все эти библиотеки и фреймворки.


     
     
  • 6.81, GraiT (?), 11:09, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, boost - это неофициальная STL по сути, там обкатывают идею и если норм то в стандарт. Аналогов подобного в других языках я не знаю. По сути boost - это волшебный пендель для c++.
     
     
  • 7.92, Аноноша (?), 17:18, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но вот мой оппонент утверждает, что с плюс плюс сам по себе прекрасен и либо ему нужны только для мультиплатформенности.
     
  • 6.88, Урри (ok), 12:50, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Умные указатели - это 0,000001 буста Вы хотите натянуть эту маленькую сову на ... большой текст свёрнут, показать
     
     
  • 7.93, Аноноша (?), 17:26, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Умные указатели - это 0,000001% буста. Вы хотите натянуть эту маленькую сову на весь огромный глобус?

    Я хочу сказать, что в бусте  много всего, что пытается улучшить стандартную библиотеку и исправить недостатки языка.

    > Хотите сказать, что coffescript появился только потому, что не все фичи есть во всех вариантах js?

    Я уже сказал почему он появился.

    > а в js библиотеки живут по году-два?

    Справедливости ради многим фреймворка и любам гораздо больше.

    > Или потому что экосистема редкая гoвнина, под которую никак не удается создать нормальный инструмент?

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

     
     
  • 8.97, Урри (ok), 23:25, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вы наговорили глупости ... текст свёрнут, показать
     
     
  • 9.100, Аноноша (?), 02:07, 25/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Обоснуй... текст свёрнут, показать
     
  • 7.102, Аноноша (?), 02:33, 25/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что не хотят тянуть в зависимостях другой комбайн.

    Какой комбайн? Почему qt используют свои контейнеры, а не используют stl?

     
     
  • 8.108, Урри (ok), 20:44, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    stl - большой комбайн Который, исторически, даже не был мультиплатформенным И ... текст свёрнут, показать
     
     
  • 9.111, Аноноша (?), 02:51, 27/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну то есть с изначально был отстоем и все писали все свое, так ... текст свёрнут, показать
     
  • 3.64, мое правило (?), 21:14, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Жабаскрипт лучший. Если бы не он, сидели бы мы до сих пор на пентиуме 4 за ненадобностью более быстрых процов.
     

  • 1.2, E7 (?), 13:35, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    мне одному современный веб представляется нечто ужасным? что так не должно быть по-здравому
     
     
  • 2.3, Козявка (?), 13:37, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –18 +/
    О да, мастер, сенсей наш! Просвети нас! Покажи как надо, а мы посмотрим и поучимся у тебя! Ведь ты такой умный, такой смышленый, ты-то всем покажешь как веб должен работать.
     
     
  • 3.9, E7 (?), 13:51, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ваш сарказм в данном случае неуместен
     
  • 3.14, Давид (?), 14:28, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Самые умные не могут телеметрию выпилить, приходится хитрыми ходами намекать через собеседования. Отключил javascript, гуляю по вебу.
     
  • 2.4, Урри (ok), 13:38, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, конечно, не одному. Но миллионы мух задают общий тон.

    [added]
    И козявок вон, тоже.

     
  • 2.5, Ю.Т. (?), 13:42, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Тем, кто получает с именно такого интернета сверхприбыли, он ужасным не кажется.
     
     
  • 3.20, Козявка (?), 15:12, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Тем, кто получает с именно такого интернета сверхприбыли, он ужасным не кажется.

    Естественно. Для начала надо видеть дальше собственного носа и уметь задавать правильные вопросы. Как был создан интернет? Где? Кто является заказчиком всего этого? Какие разработки легли в основу сети интернет? И тому подобное. Но большинство присутствующих тут на это не способны, носят розовые очки и считают, что им тут все должны.

    Приложения у них по 20кб и написаны на C и ассемблере. А броузер не нужон ваш, можно и ведь по TCP пакеты пулять.

     
     
  • 4.29, Аноним (29), 16:06, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нифига, Козя, ты сознанием сморкнулся... Вот они, оказывается, какие, правильные вопросы то...
     
  • 4.31, Урри (ok), 16:11, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, почему же, браузер нужен. Но именно что браузер, а не комбайн, который и страничку покажет, и домашние фотки дяде сольет, и минет сделает и квартиру продаст.

    Напомню такую прекрасную софтину, которая называлась nero. Помните, диски прожигать?
    Великолепная была. Пока не встроила в себя фотоальбом, кинотеатр и поиск файлов-дублей.

    Вот с браузерами та же фигня.

     
     
  • 5.65, Sw00p aka Jerom (?), 22:20, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    всему должен быть предел, в место cd, ls, cp, rm, mkdir, rmdir, mv и тд, можно было бы использовать только mc
     
  • 2.13, Аноним (13), 14:26, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты ещё в мобильную разработку посмотри. Банковские приложения (втб/сбер) по 300МБ, опсосы (билайн/мегафон): 100-200МБ и т.д.
    В вебе всё ещё не так плохо пока[, но обязательно будет].
     
     
  • 3.16, Урри (ok), 14:52, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В вебе еще хуже.
     
  • 3.36, Самый Лучший Гусь (?), 16:28, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    В банковских приложениях зашиты алгоритмы безопасности и прочие, что оправдывает размер. В обычных приложениях такое просто не нужно.
     
     
  • 4.42, Аноним (60), 17:49, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Алгоритмы безопасности? Ахахахаха...давно я так не ржал
     
  • 4.58, Урри (ok), 19:36, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    libcrypto, которая содержит десятки алгоритмов шифрования (включая все, что использует банковский софт) занимает 2 метра.
     
  • 3.57, Аноним (57), 19:25, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так небось же на електроне
     
  • 2.26, kusb (?), 15:43, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Те же мысли, братик.
     
  • 2.52, Аноним (44), 19:08, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Современный веб - он как производственный код, не красивый, но работает и развивается. Выбросить все и переписать с нуля нельзя без обратной совместимости. Вот придумали wasm, стандартизовали (на минутку это не так просто) и теперь можно портировать уже существующий код, без приписывания на js. Но вам все равно что-то не нравится. Может тогда стоит спросить, что вы сделали, чтобы стало лучше?
     
  • 2.76, Алекс Андер Датр (?), 02:50, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Наброшу молодым на вентилятор. Вэб изначально родился уродцем. И обещал превратиться из гадкого утёнка в красивого лебедя. Но на интернет наложили лапу корпорасты и проприерасты. А у них свои представления о прекрасном. Нет ничего прекраснее рекламы, возможности иметь комп пользователя, мозг пользователя и прочие органы. Яваскрипт как сон разума - сладкий, сказочный и порою очень глубокий.
     
  • 2.82, GraiT (?), 11:16, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Скажу проще, посмотри на количество установок ublock(подели на 10), и станет понятно, что люди едят всю эту рекламу и прочий мусор, который html и javascript распространяют по сути, без них это было бы сложно. С другой стороны был бы в основном платный софт, некий баланс хаоса и порядка.
     
  • 2.96, anon7654 (?), 21:11, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Port Mediawiki to IPFS
     

  • 1.6, Аноним (60), 13:47, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну что, теперь можно C++ макак, не осиливших JavaScript и тянущих мегабайты бинарей на простенький сайт можно официально называть ещё и Web-макаками.

    А что...C++-Web-макаки... звучит!;)

     
     
  • 2.8, Урри (ok), 13:50, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Можно просто макаки, они везде одинаковы.
     
  • 2.43, Аноним (41), 17:50, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, Electron же в браузере рендерится не через мегабайты бинарей.
     

  • 1.7, Урри (ok), 13:50, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не похоже на значительный релиз. Просто версию решили наконец апнуть.

    Но вообще проект, не смотря на то что они много и часто что-то ломают, отличный. Некоторые простые сишные вещи под веб портировать легко и просто.

     
  • 1.15, Аноним (-), 14:38, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Раньше квака онлайн была без всяких этих вебасембли и прямо в браузере.
     
     
  • 2.45, Аноним (44), 18:56, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не так.
     
     
  • 3.62, Аноним (-), 20:11, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Небыло ? 10к зареганым усерам это все просто показалось наверное.
     
     
  • 4.94, Аноноша (?), 18:55, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Небыло ? 10к зареганым усерам это все просто показалось наверное.

    Ты про Quake Live? Он на npapi был и нужно было ставить плагин.

     

  • 1.18, Аноним (18), 14:55, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Открытие файлов работает? fopen там всякие. Выбрал юзер в инпуте файл. Могу я его С библиотекой на клиенте обработать?
     
     
  • 2.21, Урри (ok), 15:16, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, но надо либо сразу этот файл статически влинковать в "фейковую файловую систему", либо писать небольшую обвязку на жабоскрипте.

    К первому смотри туториал https://emscripten.org/docs/getting_started/Tutorial.html (поиск по fopen).
    Ко второму смотри Module "FS.createPath" и "FS.createDataFile" (по крайней мере раньше работало, надеюсь не сломали как обычно).

     

  • 1.22, Аноним (22), 15:24, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я повторяю, что меня удивляет, что вэб приложения это по сути полноценные приложения с мордой в браузере, но до сих пор бэкэнд и фронтэнд пишутся на разных языках и никто с этим ничего так и не сделал. Я понимаю, что с точки зрения максимального контроля над трафиком бэкэнд и фронтэнд надо явно разделять. Хотя и тут наверно что то можно было оптимизировать автоматом. Но блин. Почему нельзя и то, и то написать как единую программу на одном языке? Именно этот факт вызывает у меня наибольшее отторжение по отношению в Web-технологиям. Текущее рещение кажется костыльным чуть более, чем полностью.
     
     
  • 2.24, Аноним (25), 15:40, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для веб-фронтенда дефолтный язык — жс, для андроида — джава/котлин, для айфона — обжси/свифт. При этом на бекенде может быть вообще всё, что угодно.
     
  • 2.27, Аноним (-), 15:54, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    конечно же все должно быть на русте, потому-что ты вчера по нему посмотрел очередную проповедь
     
  • 2.33, Урри (ok), 16:21, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вы, извиняюсь, и суп и макароны ложкой едите? Разным задачам - разный инструмент.

    Фронтэнд, это умный модификатор картинки, View. Что-то показать, что-то скрыть, спросить у бэкэнда как юзера зовут и куда ему позволено нажать.

    А бэкэнд - это логика, Controller. Поработать с базой данных, сделать транзакции, оповестить куратора, забанить этого лоха на ресурсе.

    Для разных задач - разные языки. Фронтэнд у юзера один, монолитная х--ня с внутренним состоянием, запустил один раз и сидишь полчаса в вебморде ковыряешься. Сделать его на каком-то медленном скрипте - вполне себе годная идея.

    Бэкэнд наоборот - обслуживает тысячи и миллионы юзеров, зачастую одновременно, его задача быстро-быстро сделать дело, оповестить юзера и вперед обслуживать следующего. Делать его на таком же скрипте как фронтэнд - несусветная глупость.

    А то что макака смогла осилить только очередной для-самых-глупых-фреймворк "у нас 50 кнопок сделать хорошо" поверх скрипта - это проблема макаки и вообще такую к бэкэнду подпускать нельзя.

     
     
  • 3.77, Алекс Андер Датр (?), 02:58, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Познай дзен - научись "есть суп и макароны палочками". Удивишся, насколько лишние "вилка и ложка".
    А, да - не пытайся "воду пить палочками", просто не "наливай жидкое в плоскую посуду".
    "Джентельменам" такое конечно не понраву. Манеры обязывают на столе держать куеву тучу посуды на все виды блюд. Так кто ж вам доктор?
     
     
  • 4.79, YetAnotherOnanym (ok), 09:25, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно и без палочек обходиться - просто помнить, что еду надо брать правой рукой, а анус вытирать левой. Заодно, кстати, и на туалетной бумаге экономия.
    Правда, почему-то исторически так сложилось, что те, которые изобрели тучу посуды на все виды блюд - они же научились делать длинные ножи и громовые палки, убивающие на расстоянии, и однажды пришли к тем, кто привык обходиться палочками или руками.
     
     
  • 5.83, n00by (ok), 11:29, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Исторически минимум три тысячи лет назад так сложилось, что соседние безграмотные дикари периодически захватывали образованную и высококультурную Поднебесную. Потом внук хана становился цивилизованным китайским императором, достигал 10-го дана ци-гун и его побеждало очередное племя кочевых дикарей. Им пофиг на интервенции и по фен-шую так положено. Они захватывают весь мир цитатами тов. Мао.
     
  • 5.105, Алекс Андер Датр (?), 16:39, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Астапа понесло. Отсылка была к профессиональному владению парой инструментов, способных решать широкий спектр задач. Немного проинтегрирую вашу мысль о "вооружении" до видимого предела и остановлюсь на жирных тушах в люльках, которым анусы вытирают роборуки. Зачем и кому это нужно, придумайте сами.
     
     
  • 6.107, YetAnotherOnanym (ok), 19:36, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, жирная туша в люльке, управляющая ударным дроном на другом конце глобуса через шлем VR и перчатки-контроллеры, имеет несоизмеримо более высокую результативность в современных реалиях, нежели мастер, виртуозно владеющий мечом и нагинатой. И - да, если надо приставить к нему роборуку, чтобы избавить от необходимости во время задания снимать перчатку - значит надо приставить к нему эту роборуку.
     
     
  • 7.110, Алекс Андер Датр (?), 23:26, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то, жирная туша в люльке, управляющая ударным дроном на другом конце глобуса
    > через шлем VR и перчатки-контроллеры, имеет несоизмеримо более высокую результативность
    > в современных реалиях, нежели мастер, виртуозно владеющий мечом и нагинатой. И
    > - да, если надо приставить к нему роборуку, чтобы избавить от
    > необходимости во время задания снимать перчатку - значит надо приставить к
    > нему эту роборуку.

    Какие-то у вас узконаправленные и мрачные реалии. Ну да ладно - годится как пример в надобности многобразия и разнообразия, которое в итоге превратилось в безобразие.

     
  • 4.86, Урри (ok), 12:27, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Таблетки забыл сегодня принять?
     
     
  • 5.106, Алекс Андер Датр (?), 16:45, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Таблетки забыл сегодня принять?

    Пардон, не хотел за больное задеть. Яж просто в игровой форме аналогии продолжил.

     
  • 2.47, Аноним (44), 18:59, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вот тебе дали возможность писать на чем хочешь и компилять в wasm. Что не так?
     
  • 2.66, YetAnotherOnanym (ok), 23:09, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему нельзя и то, и то написать как единую программу на одном языке?

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

     
     
  • 3.69, Аноним (69), 01:18, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, именно поэтому бэк обычно пишут не на C++, а на python/php/ruby/js.
     
     
  • 4.72, Аноним (72), 01:40, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хайлоад типа ММО пишут на плюсах.
     
  • 2.70, Аноним (70), 01:27, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Фронтенд исполняется в браузере Браузеры долгое время умели исполнять только Яв... большой текст свёрнут, показать
     
     
  • 3.74, Аноноша (?), 01:53, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    С Явой, питоном и прочими языками с gc должно стать проще, если в wasm появится gc. На это есть proposal.
     
  • 3.84, Ananimasss (?), 11:40, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то еще был vbscript
     

  • 1.32, Аноним (-), 16:15, 23/11/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

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

  • 1.51, annon (?), 19:07, 23/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по списку изменений, причина инкремента первой цифры версии (2.0.34 -> 3.0) - просто переполнение минорных версий. Между минорными версиями изменения и более существенные бывают.
     
     
  • 2.67, Аноним (67), 23:22, 23/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мажорную версию сменили так как перешли на новый musl.
     
  • 2.95, freecoder (ok), 19:32, 24/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Минорная версия была 0.
     

  • 1.90, Аноним12345 (?), 15:36, 24/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    У меня в голове не укладывается этот изврат
     
  • 1.103, InuYasha (??), 11:56, 25/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Итак, берём нативный код на C, транслируем Emscripten в WebAssembly, запускаем на node.js / в электроне (написанном обратно на Си, не?), кладём в докер, ставим на виртуалку, включаем все ремаппинги и защиты памяти... Запускаем какой-нибудь memset() и думаем, насколько он связан с реальностью. Не бюрократия, говорите?
     
     
  • 2.104, Аноним (-), 07:12, 26/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Идет выполнение memset(), пожалуйста подождите.
    Ожидаемое время завершения 2d...
     

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



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

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