Hello! And thank you for this great project. I'm asking you about https://github.com/ballercat/walt
Don't sure which one should I take, could you please explain the core difference?
Hello @emil14,
walt it seems just high level syntax sugar over wat which has main goal translate to wasm as close as possible if I right understood owner: https://github.com/ballercat/walt/issues/11
Main differences:
1) AssemblyScript born earlier. Just see first prototype.
2) AS support wide range of 'small' integers - i8, u8, i16, u16 and i32/u32, i64/u64 of course. walt can manage just i32 and i64, without unsigned types.
3) AS is a typescript superset and easily transpiled to javascript via tsc. walt has syntax similar to flow but it seems not fully compatible and I'm not sure has possibility translation to pure js.
4) AS has runtime: Array, ArrayBuffer, typed arrays, String, Map/Set, Symbol, native Math, operator instanceof and etc. walt has very basic stuffs for strings and arrays.
5) AS support Generics.
6) AS has memory management. Actually three types for heap allocations: arena, tlsf and buddy. Also there is working on Garbage Collector. walt hasn't provide any memory management.
7) AS have got many examples and benchmark. Also one huge and successful project called wasmBoy.
8) AS supported by several playgrounds: WebAssembly Studio and Assembleash.
9) AS seamlessly build over binaryen which provide fast code generation and very smart optimization with many passes from author of emscripten. walt hasn't provide accurate build-in optimizations even dead code elimination.
Oh hey, thanks for mentioning wasmBoy @MaxGraey 馃槃
Thank you. It seems like the AssemblyScript is better for building complex applications
Most helpful comment
Hello @emil14,
walt it seems just high level syntax sugar over
watwhich has main goal translate to wasm as close as possible if I right understood owner: https://github.com/ballercat/walt/issues/11Main differences:
1) AssemblyScript born earlier. Just see first prototype.
2) AS support wide range of 'small' integers - i8, u8, i16, u16 and i32/u32, i64/u64 of course.
waltcan manage just i32 and i64, without unsigned types.3) AS is a
typescriptsuperset and easily transpiled tojavascriptviatsc.walthas syntax similar toflowbut it seems not fully compatible and I'm not sure has possibility translation to pure js.4) AS has runtime:
Array,ArrayBuffer, typed arrays,String,Map/Set,Symbol, nativeMath, operatorinstanceofand etc.walthas very basic stuffs for strings and arrays.5) AS support Generics.
6) AS has memory management. Actually three types for heap allocations:
arena,tlsfandbuddy. Also there is working on Garbage Collector.walthasn't provide any memory management.7) AS have got many examples and benchmark. Also one huge and successful project called wasmBoy.
8) AS supported by several playgrounds: WebAssembly Studio and Assembleash.
9) AS seamlessly build over
binaryenwhich provide fast code generation and very smart optimization with many passes from author of emscripten.walthasn't provide accurate build-in optimizations even dead code elimination.