Live data from Hacker News

Perspective: Streaming pivot visualization via WebAssembly

github.com

51–60 of 141 posts

Re: Perspective: Streaming pivot visualization via WebAssembly

#51
post #37

If anyone finds this project exciting and is interested in learning more about working on Open Source at J.P.Morgan, feel free to send me a message - we are always looking to hire experienced, passionate talent!

I would like to work on cakeshop-- how do I get on touch with you?

Re: Perspective: Streaming pivot visualization via WebAssembly

#52
post #2

I wrote the C++ part of this codebase, would be happy to answer any questions about it here.

Thanks for taking questions. For a back end developer that's watching the front end landscape change from afar.. Do you feel like web assembly could potentially replace JS in the future with, say, my favorite back end language of choice?

Not the op, but there's more to frontend development than JS. You need to account for the API of browsers, the DOM, CSS and the myraid of frameworks and libraries built for the specific UI requirements of frontend development (e.g. React). So even if your favorite language of choice becomes compilable to WebAssembly, you'll still be learning an entirely different way of development that will be completely unfamiliar regardless.

The only thing I see languages compiled to WebAssembly taking over is development of highly resource intensive applications, algorithms or libraries. Or if there's a quantum leap with some specific language + framework that eliminates a lot of work with current frontend development. Otherwise, there will be too much fragmentation and you'll see the regression to the mean effect as has been the case with predecessors such as CoffeeScript, Elm, PureScript, ReasonML, and every other compile-to-JS language du jour.

Re: Perspective: Streaming pivot visualization via WebAssembly

#53
post #37

If anyone finds this project exciting and is interested in learning more about working on Open Source at J.P.Morgan, feel free to send me a message - we are always looking to hire experienced, passionate talent!

I would like to work on cakeshop-- how do I get on touch with you?

Ah right - texodusmedia at gmail dot com should work for now.

I don't know the Cakeshop developers personally, but it looks slick!

Re: Perspective: Streaming pivot visualization via WebAssembly

#55
post #2

I wrote the C++ part of this codebase, would be happy to answer any questions about it here.

Does it support: virtualization (showing only a view of full dataset that is updated from server on scroll) Pivoting (multiple levels/hierarchies on rows and on columns) Apart from features what part did you consider was the biggest hurdle? What browsers did you target?

It supports virtualization, and it is utilized by both plugins (Hypergrid and Highcharts).

N levels of pivoting on both axes.

Should work on all browsers - if not, please open an issue!

Re: Perspective: Streaming pivot visualization via WebAssembly

#56
post #2

I wrote the C++ part of this codebase, would be happy to answer any questions about it here.

Thanks for taking questions. For a back end developer that's watching the front end landscape change from afar.. Do you feel like web assembly could potentially replace JS in the future with, say, my favorite back end language of choice?

As a fellow backend developer I certainly hope so. I think web assembly gets us very close. Only two things I missed were direct canvas access from C++ without going through a JS shim and access to some kind of blob storage api in the browser.

Re: Perspective: Streaming pivot visualization via WebAssembly

#57
First, let me say this looks awesome! I’m curious if your considered React.js for the presentation layer (i.e. the js/html5 parts) - on the surface it seems like it would be a good fit - and if so, what you saw as the benefits or drawbacks of it vs the approach you went with.

Re: Perspective: Streaming pivot visualization via WebAssembly

#58
post #38

Earlier quoted context omitted.

No, when I first prototyped it I had written a Python version initially. From memory the first C++ build was ~80x faster than the Python prototype.

I'm curious if you did any profiling? If the intent was always to rewrite the whole prototype in C++ then it kinda wouldn't matter, eh?

We do some benchmarking just for catching performance regressions and validating assumptions against the non-WebAssembly version, but definitely need more in this regard. [benchmark for wasm build](https://jpmorganchase.github.io/perspective/examples/benchma...)

Re: Perspective: Streaming pivot visualization via WebAssembly

#59

Earlier quoted context omitted.

in that case, its actually a good naming choice, as this existed (in a closed source form) for much longer than that.

I'm not knocking the code...I think it's brilliant. I just think you're going to cross wires with Google here. Will perspective mean "filtering troll comments" or will it mean "displaying analytics in web assembly" is an unfortunate set of choices.

Given appropriate context, I find it hard to see someone confusing the two.

Re: Perspective: Streaming pivot visualization via WebAssembly

#60

@dman Cool, but I'm curious why WebAssembly was chosen for this project. What was the value of using it here versus just using the Web API?

The following features made wasm compelling here

a. Filter / Pivot / Aggregate moving clientside means a lot of load off the servers.

b. Performance in wasm is surprisingly close to same C++ code running natively on the desktop.

c. Ability to reuse existing C++ codebase and use it to build both native and web apps.

Post reply on HN