
Sneak Peek at WebAssembly Studio - bigato
https://hacks.mozilla.org/2018/04/sneak-peek-at-webassembly-studio/?sample_rate=0.001&snippet_name=8301
======
krisdol
This looks awesome. Really useful tooling + gorgeous interface + clean fonts.
Mozilla's looking pretty good lately.

~~~
williamxd3
The editor is from Microsoft [https://github.com/Microsoft/monaco-
editor](https://github.com/Microsoft/monaco-editor)

------
orschiro
First the tor announcement and now this. That's a lot of exciting News from
Mozilla recently.

~~~
supermdguy
Well, this was a couple months ago. See
[https://news.ycombinator.com/item?id=16811721](https://news.ycombinator.com/item?id=16811721)
for the past discussion. Definitely still exciting though.

------
llukas
Fast forward few years later - web is made of executables and openness and
user control is gone.

~~~
etatoby
Choose HTML5. Choose Node. Choose your fucking social networking sites. Choose
open APIs and a per-year subscription model. Choose microformats,
micropayments, and SOA. Choose targeted mobile advertising. Choose user-
contributed content. Choose your widgets in a range of matching Bootstrap
colors. Choose a CDN, or two, or three. Choose the long-tail and wondering who
the fuck you are on a Sunday morning. Choose surfing on that walled-garden
device, a machine you paid for but do not own, watching mind-numbing, spirit-
crushing videos, stuffing fucking junk food into your mouth. Choose rotting
away at the end of it all, pissing your last in a miserable home, nothing more
than an embarrassment to the selfish, fucked up followers you spawned to
replace yourself. Choose your future. Choose WebAssembly.

(Not my idea, I just updated it for the times. Please don't mod down for foul
language kthx, it's a homage to the original.)

~~~
gitgud
What is this? Web Assembly (from the parent comment) will not be a choice for
users right?

~~~
wyldfire
It's along the lines of the opening to "Trainspotting" a famous novel and film
[1]

[1]
[https://en.m.wikipedia.org/wiki/Trainspotting_(film)](https://en.m.wikipedia.org/wiki/Trainspotting_\(film\))

~~~
gitgud
Ahhh thanks, I remember now!

------
happertiger
Way to go Mozilla. This is awesome.

------
indescions_2018
Binary explorer in cloud IDE is beautiful ;)

------
agumonkey
I felt like seeing a lisp machine

~~~
etatoby
I've never seen a Lisp machine, but when I use Chrome's developer tools, which
can display complex, interactive objects right in the text console, that's
what I think about.

~~~
goatlover
Devtools reminds me of the Smalltalk environment.

~~~
agumonkey
it's not far in spirit, but it's still quite far away

------
kdma
Nice video but (unrelated to the IDE) in order to use a printf from js it was
necessary to: provide a js emulated syscall to c file that calls another c
function that calls back to js again

~~~
Q6T46nT668w6i3m
Yeah, it’s super weird when most people are expecting this to compile into
JavaScript running in a browser. Nevertheless, to be fair, this isn’t a C,
C++, or Rust to JavaScript compiler-compiler it’s a C, C++, or Rust compiler
that targets WebAssembly. I realize this might read as overly pedantic but it
explains why it makes sense to the implement the C interface. It’s also a
reasonable optimization pass for a mature compiler when it knows that you’re
targeting WebAssembly running in a browser.

------
Felz
Out of curiosity, does anyone know what the sample_rate query parameter in
this URL is for?

------
progfix
_The WebAssembly Studio may track its usage through telemetry. We use this
information to improve user experience. This information is not made publicly
available._

------
Exuma
This is very cool

------
corey_moncure

         env: {
          __syscall0: function __syscall0(n) { return syscall(instance, n, []); },
          __syscall1: function __syscall1(n, a) { return syscall(instance, n, [a]); },
          __syscall2: function __syscall2(n, a, b) { return syscall(instance, n, [a, b]); },
          __syscall3: function __syscall3(n, a, b, c) { return syscall(instance, n, [a, b, c]); },
          __syscall4: function __syscall4(n, a, b, c, d) { return syscall(instance, n, [a, b, c, d]); },
          __syscall5: function __syscall5(n, a, b, c, d, e) { return syscall(instance, n, [a, b, c, d, e]); },
          __syscall6: function __syscall6(n, a, b, c, d, e, f) { return syscall(instance, n, [a, b, c, d, e, f]); },

