Я в Сербии, на конфе по котлину.
Вот основные тейки.
Котлин крута, действительно пытаемся сейчас откреститься бирки языка для андройда.
Жаба перестала стагнировать и начала копировать наши фичи, нельзя останавливаться.
Kotlin не ассоциируется у людей с JetBrains, некоторые даже думают что это язык гугла, и это очинь плоха, в самом JB также Kotlin Team существует весьма отдельно от остальных.
После выхода 2.0, с новым, переписанным с нуля фронтендом, будет куда проще реализовывать новые фичи, и развивать язык дальше.
Вот основные тейки.
Котлин крута, действительно пытаемся сейчас откреститься бирки языка для андройда.
Жаба перестала стагнировать и начала копировать наши фичи, нельзя останавливаться.
Kotlin не ассоциируется у людей с JetBrains, некоторые даже думают что это язык гугла, и это очинь плоха, в самом JB также Kotlin Team существует весьма отдельно от остальных.
После выхода 2.0, с новым, переписанным с нуля фронтендом, будет куда проще реализовывать новые фичи, и развивать язык дальше.
👍3
gavr_sas
Штош можно меня поздравить, я официально в Wasmе, скоро будут про него посты.
Первый пост общий хелло ворлд.
Конкретно сам Wasm это спецификация виртуальной машины, вот она https://webassembly.github.io/spec/core/
Каждый браузер сам её у себя реализует, тут все как с js.
Виртуальная машина стековая, то бишь в отличии от регистровых у нас есть только стек, шото кладем шото берем, а потом бам, юзаем инструкцию которая все все вертит и кладет обратно результат.
Например
Что представляет из себя Wasm по факту:
Это бинарь с байткодом для виртуальной машины, типа всего 4 i32, i64, f32, f64
Все что можно делать это писать внутри функции, и экспортировать какие нибудь из них.
Снаружи, например из js(но не только) можно инициализировать Wasm модуль(скорее всего скачав его через fetch API), достать оттудова функции которые экспортирует модуль и вызвать с аргументами.
#wasm
Конкретно сам Wasm это спецификация виртуальной машины, вот она https://webassembly.github.io/spec/core/
Каждый браузер сам её у себя реализует, тут все как с js.
Виртуальная машина стековая, то бишь в отличии от регистровых у нас есть только стек, шото кладем шото берем, а потом бам, юзаем инструкцию которая все все вертит и кладет обратно результат.
Например
push 2
push 3
// на стеке 2, 3
add
// на стеке 5
Что представляет из себя Wasm по факту:
Это бинарь с байткодом для виртуальной машины, типа всего 4 i32, i64, f32, f64
Все что можно делать это писать внутри функции, и экспортировать какие нибудь из них.
Снаружи, например из js(но не только) можно инициализировать Wasm модуль(скорее всего скачав его через fetch API), достать оттудова функции которые экспортирует модуль и вызвать с аргументами.
#wasm
gavr_sas
Первый пост общий хелло ворлд. Конкретно сам Wasm это спецификация виртуальной машины, вот она https://webassembly.github.io/spec/core/ Каждый браузер сам её у себя реализует, тут все как с js. Виртуальная машина стековая, то бишь в отличии от регистровых…
Почему только числа?
В процессоре тоже только числа, все логично, привязавшись к какой-нибудь конкретной реализации типов вроде String получится менее универсально, может для скорости мы хотим аски таблицу, а у нас токо UTF-8(в JVM), так что хотите строки, будьте добры предоставить свою реализацию, держы инты, не потеряй.
#wasm
В процессоре тоже только числа, все логично, привязавшись к какой-нибудь конкретной реализации типов вроде String получится менее универсально, может для скорости мы хотим аски таблицу, а у нас токо UTF-8(в JVM), так что хотите строки, будьте добры предоставить свою реализацию, держы инты, не потеряй.
#wasm
Ухх, в ним конфе дисскусия о Wasm на час.
Так то из-за того что Wasm токо спецификация то у него полно реализаций:
1) 3 браузера - Safari(JSCore), Chromium(V8) и Mozilla(SpiderMonkey)
Тут основные отличия пока в том что хром умеет оптимизировать отдельные кусочки, а мозила оптимизирует полученный Wasm целиком.
2) Binaryen — тулчейн для компиляции В Wasm, то есть если у вас есть язык и вы хотите добавить ему Wasm таргет компиляции, то это для оно. На выходе тут сильно оптимизированный Wasm, на входе обычный Wasm или контрол флоу граф(около AST).
Компилирует паралельно в многа потоков, оптимизация многопроходная, упрощенный пример: в результате первого прохода 2 ^ 2 оптимизировалась до 2 * 2, а в результате второго до 2 + 2
То есть Binaryen — этакий LLVM для Wasm, он содержит в себе большое количество отдельных тулзов вроде merge, который скрещивает много wasm бинарей в один, но в том числе тут есть и интерпретатор, но есть результат можно запускать.
На нем работают AssemblyScript и Grain, это яп с единственным таргетом компиляции — Wasm.
Вот можно глянуть ужаснуться на все проходы оптимизации https://github.com/WebAssembly/binaryen/tree/main/src/passes
Важно заметить что Binaryen пилят не рандомные опенсорс чуваки, а сам Wasm комитет.
3) wasmtime это конкретно рантайм, им можно взять .wasm бинарь и запустить на локальной машине.
Поддерживает WASI(WebAssembly System Interface) — главный способ колить из Wasm системные вызовы
Чисто запускатель васма вне веба.
4) Emscripten — еще один компилятор в Wasm, специфицирующийся на C/C++, но вообщем то на самом деле он работает с LLVM IR, поэтому может сожрать любой яп, компилятор которого может этот IR выплюнуть, например Swift.
Emscripten также делает тонны оптимизаций прогоняя под капотом Binaryen и Closure(оптимизатор js -> js)
То есть это LLVM IR -> Binaryen -> Wasm
#wasm
Так то из-за того что Wasm токо спецификация то у него полно реализаций:
1) 3 браузера - Safari(JSCore), Chromium(V8) и Mozilla(SpiderMonkey)
Тут основные отличия пока в том что хром умеет оптимизировать отдельные кусочки, а мозила оптимизирует полученный Wasm целиком.
2) Binaryen — тулчейн для компиляции В Wasm, то есть если у вас есть язык и вы хотите добавить ему Wasm таргет компиляции, то это для оно. На выходе тут сильно оптимизированный Wasm, на входе обычный Wasm или контрол флоу граф(около AST).
Компилирует паралельно в многа потоков, оптимизация многопроходная, упрощенный пример: в результате первого прохода 2 ^ 2 оптимизировалась до 2 * 2, а в результате второго до 2 + 2
То есть Binaryen — этакий LLVM для Wasm, он содержит в себе большое количество отдельных тулзов вроде merge, который скрещивает много wasm бинарей в один, но в том числе тут есть и интерпретатор, но есть результат можно запускать.
На нем работают AssemblyScript и Grain, это яп с единственным таргетом компиляции — Wasm.
Вот можно глянуть ужаснуться на все проходы оптимизации https://github.com/WebAssembly/binaryen/tree/main/src/passes
Важно заметить что Binaryen пилят не рандомные опенсорс чуваки, а сам Wasm комитет.
3) wasmtime это конкретно рантайм, им можно взять .wasm бинарь и запустить на локальной машине.
Поддерживает WASI(WebAssembly System Interface) — главный способ колить из Wasm системные вызовы
Чисто запускатель васма вне веба.
4) Emscripten — еще один компилятор в Wasm, специфицирующийся на C/C++, но вообщем то на самом деле он работает с LLVM IR, поэтому может сожрать любой яп, компилятор которого может этот IR выплюнуть, например Swift.
Emscripten также делает тонны оптимизаций прогоняя под капотом Binaryen и Closure(оптимизатор js -> js)
То есть это LLVM IR -> Binaryen -> Wasm
#wasm
монополистам привет, остальным соболезную
ну лан, это java конфа https://twitter.com/intellijidea/status/1709485694245069151/photo/1
ну лан, это java конфа https://twitter.com/intellijidea/status/1709485694245069151/photo/1
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
MaterialMaker в Godot
делаем вселенную из шума
делаем вселенную из шума
This media is not supported in your browser
VIEW IN TELEGRAM
Отличная UX идея для нейрокартинок, болдом, цветом и шрифтом самого текста назначают разные типы веса каждому токену