Live data from Hacker News

Wasmer 1.0

medium.com

121–130 of 168 posts

Re: Wasmer 1.0

#121
post #101

Earlier quoted context omitted.

All of it already exists with the JVM.

The JVM is rather heavy weight and typically slow to start even when you do have enough resources to run it. That rules out edge computing. Graal AOT compilation is more similar but not a general purpose thing currently as it only works with tools and languages optimized for that. I say this as a Kotlin/Java developer. I know and love the jvm but it's just not a lightweight option suitable for edge computing or serve…

Java has had AOT compilation support since around 2000, when commercial JDK vendors started supporting it, what it lacked was free beer AOT compilation, as GJC never really did it without issues and was quickly abandoned when OpenJDK came into the scene.

Re: Wasmer 1.0

#122
post #92

The article doesn't mention the number/class of CPUs in the system used for the benchmark. It claims that 'Singlepass' compilation of clang.wasm took 2s and 'Cranelift' took 9s. Running the same benchmark myself in Linux on a 4CPU VirtualBox on a MacBook Pro, I see 11s and 42s respectively. For reference , V8/Node.js compiles the same file in 27s. Compiled files were 339 MiB (Singlepass), 640 MiB (Cranelift) and 90 M…

A VM is not the best environment to test speed and compare it to a native environment speed. I noticed that certain operations take longer on a VM, and e.g. disk performance may differ a lot (and sometimes be faster than the host FS's!) Also, things being in the page cache can speed up the second and subsequent runs much faster.

True, but for a cpu bound task like this VM typically causes only a 10% slowdown. You aren’t going to see an order of magnitude faster execution on real hardware.

The article makes it look like compilation is almost instantaneous. It’s not. Cached artifacts are rather hefty as well.

V8 fares surprisingly well given that it’s not a specialized WebAssembly runtime. Wasmer should probably watch competitors more closely.

Re: Wasmer 1.0

#123

'For everyone asking, but why use a browser technology server side? Just run a binary' or 'Whats old is new again, java etc' - I am sure you've heard of a browser technology that is used server side, javascript, ever hear of nodejs? The rise of javascript and its server side runtime is due to the immense pressure that language had to evolve to make the web what it is today. Web-assembly is the next step and evolution…

> offer the functionality it has today while balancing with security and sandboxing. LoL, LoL, LoL You can say this only because every other operating system sucks at sandboxing. There is no reason you have to be inefficient as browser to provide security and sandboxing. In return there is also a huge attack surface, with all the code running below, and corner cases in web standards. AFAIK any js click event can allo…

What existing sandboxing systems are you thinking of that are more efficient?

Would you be confident using them to run possibly malicious code on your system?

Re: Wasmer 1.0

#124

Earlier quoted context omitted.

Could someone also ELI5 and give some low-hanging use-cases for this... especially in the IoT space??

A low hanging use case would be scripts for a distributed data analysis system. e.g. You type in a function and then it compiles to wasm and is sent out to run on worker nodes. Or you write code snippets for code to run in a distributed dag. This exists with e.g. shared file systems (how hpc works, how hadoop works) and Python can pickle code and send it over a socket (be aware that this is a security risk). WASM see…

SQL UDFs might be another potential use-case in the same category.

Re: Wasmer 1.0

#125
> Wasm also provides a lean execution environment enabling Wasmer containers to run in places where Docker containers are too heavy to work.

Is WebAssembly really faster or lighter than virtualization? Or is this about the virtual os you run in Docker?

Re: Wasmer 1.0

#126
post #81

Earlier quoted context omitted.

Have you ever tried to build a cross-platform photo app that works on iOS and regular computers?

That's on them ("regular computers"). Their OSes could offer the same capabilities to map to. That said, it's not: (a) as if there aren't cross platform photo apps that run on iOS and "regular computers". Photoshop and Lightroom come to mind immediately, Affinity Photo also. And those aren't just iOS and Mac, they're also on Windows. So there's that. (b) as if what would slow you down / prevent you from doing such a…

> (a) as if there aren't cross platform photo apps that run on iOS and "regular computers". Photoshop and Lightroom come to mind immediately

the only thing in common between the mobile and desktop versions is the name

Re: Wasmer 1.0

#127

Earlier quoted context omitted.

> but I am saying we had decades to do better and didn't If you ignore everything outside the web, sure. Games routinely render thousands of extremely complex objects at over 60 fps. The browser cannot animate a `height: auto` element or display more than a few thousand simple elements without stuttering. Clearly we have done better. Just not on the web. And don't get me started on actual complex UIs. TurboVision fro…

You're talking purely about performance. Sure, you can do whatever you want in a game UI, and it will probably outperform a web UI. But there's a reason game UIs often scale/function badly as soon as you change the screen size or the input type: they aren't built on a platform that has flexibility baked into its bones. In many cases they aren't build on any kind of platform at all. They often have element/text positi…

> And yet: it's only used in a very small fraction of the apps out there.

Qt is estimated to account for ~10-15% of all c++ development, which is a very fair amount for any one single framework. You just don't see it because most of the time it blends in perfectly. Do you think about Qt when you're using your LG TV ? (LG WebOS is Qt). Or OneDrive Desktop ?

Re: Wasmer 1.0

#128
post #109

Earlier quoted context omitted.

I see the main advantage in this as running a polyglot application as if its native. For example if you are making a Rust application, you can have a plugin architecture where the plugins run inside a wasm compiled python interpreter. I dont know if doing this directly and cross platform is as easy without wasmer

Just like CLR, JVM and GraalVM, nothing new besides WebAssembly marketing.

Wasm is structurally similar to those things, yes, but is so much faster that it is actually categorically different.

Re: Wasmer 1.0

#129
post #82

Earlier quoted context omitted.

Sorry, but I think there's some stockholm going on here. People use the web for apps because people use the web for apps. It was in the right place at the right time and an extinction event chose JavaScript. That doesn't mean we can't make something better (doesn't mean we can, either).

No, people use the web for apps because: (a) AWT was shitty and Swing an overengineered mess. (b) GTK+ was never decent cross platform. (c) QT was more decent, but had its own issues, and still in an uncanny valley (neither native enough, not its own thing like the web UI is). (d) Cocoa and whatever Windows has this week are not cross platform. (e) Most other alternatives are buggy, understuffed, and just don't look…

Also, of those options, only Qt works on mobile, and only since version 5.1 in late 2013. Qt licensing is also a bit complicated on iOS.

The web enjoyed a fairly long monopoly as the only cross-platform option if you cared about mobile.

Re: Wasmer 1.0

#130

Earlier quoted context omitted.

> offer the functionality it has today while balancing with security and sandboxing. LoL, LoL, LoL You can say this only because every other operating system sucks at sandboxing. There is no reason you have to be inefficient as browser to provide security and sandboxing. In return there is also a huge attack surface, with all the code running below, and corner cases in web standards. AFAIK any js click event can allo…

What existing sandboxing systems are you thinking of that are more efficient? Would you be confident using them to run possibly malicious code on your system?

BSD jails? I'd be quite confident running possibly dangerous code in one of the most restricted jail configs. Processes can't interact, can't access outside their given directories, can't modify devices, etc.
Post reply on HN