"Опыт в gamedev, отсутсвие новых стандартов в резуме" - вот это как раз недавно сработало.
Как только увидели этот опыт (я был одним из главных разработчиков игр Storm, Echelon: Wind warriors, игры успешно выпущены издателем) и отсутствие С++17/20 в резуме - сразу линии "сработали"
Вот эта репа - самый отличный пример. Там очень понятный readme как собрать. Ещё немного примеров в репе самого teavm. Посмотрите мой доклад, там с пояснениями и картинками
С моей точки зрения WebAssembly уже взлетел и его отлично применяют. А Java Applets и Silverlight не взлетели из за огромного числа дыр в безопастности, которые в WebAssembly изначально при проектировании были тщательно проработаны.
Ну а на замену Java Applets пришли отличные AOT компиляторы компилирующие приложения в JS: https://habr.com/en/articles/240999/ (а с тех пор это всё очень сильно развивается, почти 10 лет прошло)
все равно нужно транслировать бинарный формат в инструкции процессора
Это, конечно, надо, беэ этого сложно. Но надо отдать должное что WASM именно так изначально проектировался чтобы эта трансляция была очень очень быстрой, в отличие от трансляции JS.
И в трансляция идёт тоьлко 1 раз на загрузке модуля, а потом модуль исполняется уже продолжительное время и никакой трансляции там уже нет.
В том смысле что для того чтобы собирать WASM таргеты именно clang входящий в emscripten не является обязательным условием, стандартный clang от llvm.org поддерживает WASM из коробки. emscripten - это именно набор библиотек и генератор обвязки JS, напирмер в нём реализован "void * operator new(unsigned);" и.т.д. Но и генереная обвязка JS тоже не есть обязательное условие, я например, на java декларирую API WASM модулей.
Все так...
"Опыт в gamedev, отсутсвие новых стандартов в резуме" - вот это как раз недавно сработало.
Как только увидели этот опыт (я был одним из главных разработчиков игр Storm, Echelon: Wind warriors, игры успешно выпущены издателем) и отсутствие С++17/20 в резуме - сразу линии "сработали"
Я не ослышался?
Еще он от С отличается безопасностью и коробки Rust
Фича это открытый код который работает.
OpenJDK качать то пока можно.
И Oracle GraalVM тоже.
IDEA видимо не скачать, ну....
Самое время делать стартап который собирает IDEA Community, только название придумать
Попробуйте найти мой доклад на YouTube по словам JPoint Праздников. Там как раз про то как делать веб на java
С моей колокольни было бы круто иметь доступ к WebGL например. И там по сути даже не нужны JSObjects, там по факту везде int типы (см Angle)
Ну а доступ к дому очень сложен, там есть доступ к JS объектам, а их лучше держать подальше от wasm
На а количество дыр и лазеек в Java Applets было огромное. Сам работал в Sun Microsystems :)
Хорошо что это изгнали из веба
Вот эта репа - самый отличный пример. Там очень понятный readme как собрать. Ещё немного примеров в репе самого teavm. Посмотрите мой доклад, там с пояснениями и картинками
https://youtu.be/QHbYXDobo3k?si=81ZNJleJ4nNuGI1u
В JS. Так же как и TS compiler перегоняет TS в JS
Ну да это же java код для веба. Но на JS этот самый пример не будет больше, скорее даже сильно меньше
Поверь, никаких хитростей, всё в репе, всё там, всё open source
Извините, телефон чудит
https://github.com/SuduIDE/sudu-editor/tree/master/wasm-test/src/main/java/org/sudu/experiments/demo/wasm
Много обвязок можно и не писать, если есть 5 мин вот посмотрите на мой пример. По моему там их почти нет :)
Именно так
С моей точки зрения WebAssembly уже взлетел и его отлично применяют. А Java Applets и Silverlight не взлетели из за огромного числа дыр в безопастности, которые в WebAssembly изначально при проектировании были тщательно проработаны.
Ну а на замену Java Applets пришли отличные AOT компиляторы компилирующие приложения в JS: https://habr.com/en/articles/240999/ (а с тех пор это всё очень сильно развивается, почти 10 лет прошло)
Еще есть отличная статья про WebAssembly от автора TeaVM: https://habr.com/en/articles/757182/
Скорость очень хорошая
Это, конечно, надо, беэ этого сложно. Но надо отдать должное что WASM именно так изначально проектировался чтобы эта трансляция была очень очень быстрой, в отличие от трансляции JS.
И в трансляция идёт тоьлко 1 раз на загрузке модуля, а потом модуль исполняется уже продолжительное время и никакой трансляции там уже нет.
В том смысле что для того чтобы собирать WASM таргеты именно clang входящий в emscripten не является обязательным условием, стандартный clang от llvm.org поддерживает WASM из коробки. emscripten - это именно набор библиотек и генератор обвязки JS, напирмер в нём реализован "void * operator new(unsigned);" и.т.д. Но и генереная обвязка JS тоже не есть обязательное условие, я например, на java декларирую API WASM модулей.
Например вот https://github.com/SuduIDE/sudu-editor/blob/master/wasm-test/src/main/java/org/sudu/experiments/demo/wasm/WasmTest.java#L19
2 и 3 это одно и тоже
clang в emscripten это просто релиз от llvm.org, тот что второй тоже умеет собирать Wasm таргеты
Да, там тоже clang, но другой. :)
Это clang от llvm.org, а у вас от Apple.