Hacker News new | past | comments | ask | show | jobs | submit | mbebenita's comments login

As one of the main developers on the project I can say that yes, 20+ years of undocumented baggage made it a really hard problem to solve.


What was the process of reverse-engineering something like Flash? Did you simply do it by looking at the bytecode (or whatever it's called in Flash), or did you write something with the mainline compiler and work from there?


The bytecode for AVM2 is fairly well documented, and there is a test suite that you can compare against. We reached 99% compatibility with that, and were at times much faster than the Flash VM (simply benefiting from years of investment in JS engines).

The hard part was understanding what the Flash player was doing, and the differences between all the different Flash Player and SWF File Format versions. Not to mention, re-implementing the rendering engine and the entire API surface of Flash, which was HUGE. We basically took existing content and tried to make sure Shumway did the same thing the Flash player did, wrote a regression test and repeated the process.

To this day, I still don't understand exactly how the timeline worked (or was supposed to work). It's like a web page DOM, but you can jump back and forth in the timeline, it's wild.

We certainly learned a lot working on Shumway. Firefox got a lot better, we stressed the JS engine and the graphics stack quite a bit, and had to make improvements all throughout the codebase to make Shumway possible.

In a lot of ways, Flash was great. Its rendering engine was (and still is) quite impressive, and nothing has really replaced it yet.


I feel the same way. Flash got so much crap from people, and a lot of it was deserved, no question, but people go so onboard with the "KILL ALL FLASH" bandwagon that they sort of forgot to replace it completely.

Video streaming with HLS isn't horrible, but it was so much easier (in my opinion) to do Flash with RTMP.


AFAIK, Figma only uses WebGL/Canvas for non-UI elements.


If you're referring to SIMD, then the answer is not yet, very soon though.


Re WebAssembly.Studio, you can also just drag your .wat, .wasm file in without creating a project.


That’s a very nice description of what’s going on. The example is there to illustrate how printf works. In fact this is a lot of what Emscripten does to make C/C++ applications just work.


That's one of our goals, we're already doing a lot client side but the goal is to client side all things - https://github.com/wasdk/WebAssemblyStudio/projects/3


Built on top of the great work of many : https://github.com/wasdk/WebAssemblyStudio#credits


The goal of the project is to help you "learn and teach others about WebAssembly", so it's more of a fiddle environment than an IDE.


Depends on the template really. Our goal was to not hide any of the magic, the tool only really needs a build.ts file, where you define what the Build button should do.


AssemblyScript is slightly more involved because the author of the template loads the compiler dynamically.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: