Hacker News new | past | comments | ask | show | jobs | submit login

Maybe the numbers didn't look very good and they thought it was better to leave them out



But then what is the point telling us they are doing it with WASM now? Seems more like a KPI - Work Progress report.

Edit: In a different blog post :

https://workspace.google.com/blog/sheets/new-innovations-in-...

"Building on improvements like smooth scrolling and expanded cell limits in Sheets, today we’re announcing that we’ve doubled the speed of calculation in Sheets on Google Chrome and Microsoft Edge browsers,"...

I dont use Google Sheet but I wonder how far apart are their new implementation compared to Native Microsoft Excel.


I don't know absolute values but Excel still has several advantages which make it faster: - Excel is written in C++ and compiled natively which will be a bit faster than Java running on the JVM. And Java running as WasmGC is about 2x slower than Java on the JVM. - Sheets is limited to 4GB of RAM by the browser, Excel isn't. - C++ can do shared memory multi-threading, WasmGC cannot.


You are forgetting many people use Excel on the Web nowadays, running on the same WebAssembly infrastructure as well.

And Microsoft would rather push everyone to the 365 Web subscription, than keeping selling native Excel, which by the way, nowadays uses plenty of React Native code instead of pure C++, exactly because of code portability to Office 365.


So youre saying theres a market gap for a platform native sheets app?


There's always Libre Office.


It is already covered by Android and iDevices.


Not claiming it has the same performance as real shared memory, But at least rough semantics can be had: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... Can be read and written from multiple workers / main thread. Synconized with WASM atomics. Propgation speed of writes is undefined, likely to leave side channel attack mitigation options without spec-breaking.


> Sheets is limited to 4GB of RAM by the browser, Excel isn't.

Yet excel still limits the number of rows to 65536 or so.


Since Excel 2010 that limit is 1,048,576.


The last time I tried on a Mac a few years ago, it definitely couldn't handle that many. Maybe I was holding it wrong?

Even a million seems embarrassingly puny these days, considering a webpage can have a million checkboxes rendered in only a moment.


1M is xlsx file format limitation, and Excel on Mac can work with 1M just fine. But Excel is spreadsheet and not a database, so if you use it for so big datasets (anything over 1000 rows or so) you are very probably just using plain wrong tool.


Excel for mac is (intentionally?) crippled.

Any serious Excel user has a PC.

One of the few places remaining where Windows > Mac


Please leave out the snide remarks in spirit of the HN guidelines[1].

> When disagreeing, please reply to the argument instead of calling names. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."

[1] https://news.ycombinator.com/newsguidelines.html


I appreciate your efforts to uphold quality, though I'm not sure I follow in this case. What do you take issue with?


The "holding it wrong" part of it.


Was that really "name calling"? It's a reference to antennagate and if anything, if you take it within the original context it's really a comment targeting the product Excel, not a person.


You mean 4 GB WebAssembly limit I guess? There's no such general browser limit on JS side.


Not sure why you’re comparing the c++ Excel to the browser version of sheets. It would make more sense to compare the native version of Excel to the native versions of sheets, ie. android iOS and chromeOS, and the browser sheets to the browser excel.


Because they're replying to someone who wondered about the performance "compared to Native Microsoft Excel".

I'll add that browser Google Sheets and native Microsoft Excel are the fastest versions available (of each product).


Why do you suggest that the web version of sheets is faster than the swift or Java versions? I haven’t tried them, and certainly haven’t benchmarked them, but I would imagine they’re faster.


I don't think there is a native desktop version of sheets? On ChromeOS, it's running the web version.

But yes I'd be curious to see how the web version of Excel does it.


There is a version of sheets in both App Stores and I believe you can run the android version on chrome OS


Are these versions reimplemtations or like so many other apps just packaged websites? And are they full featured?


AFAIK the mobile versions are different, since the whole UX is designed for touch control and small screens. It's not full featured, there's a bunch of stuff that you can't do, or are very hard to reach, but that's the limitation of mobile control.

While you technically can run it on ChromeOS through the Android emulation, it's still a mobile app and you're far better off running the web version.


The two posts make the most sense together, yeah.

I was involved in this work (happy to answer any questions). Overall we started from a large slowdown compared to JS, worked hard, and ended up with a large speedup over JS of around 2x. So right now it is a big improvement over JS.

That improvement required work across the codebase, the toolchain, and the VM. Most of it is not specific to Java and also helps other WasmGC projects too (like Dart and Kotlin). We are also working on further improvements right now that should make things even faster.


Oh, you were involved as well. Well then, no wonder things worked out!

(I remember you from your work with asm and emscripten and the various ports you did, which I played around with)

No specific question(right now), I just want to say, I admire your work.


Oh, thanks!

Yeah, I was involved here on the toolchain side. We did a lot of work on the Binaryen optimizer for WasmGC.


You must be Alon Zakai, one of the original developers of Web Assembly, if not THE original developer of Web Assembly?


That's my name, yeah, but I'm just one of the people involved in WebAssembly's creation.


Don't be soooo modest :)


Well done on the accomplishment -- no small feat to improve runtime 50% in a mature codebase.

I'm interested more in learning how to work within wasmgc. Do you have any resources you'd point to for someone looking to pick it up?


This post might help:

https://v8.dev/blog/wasm-gc-porting

See in particular the "getting started" section near the end:

https://v8.dev/blog/wasm-gc-porting#getting-started

At a lower level the overview in the WasmGC github repo is very good:

https://github.com/WebAssembly/gc/blob/main/proposals/gc/Ove...


Great work Alon! Yet another case of impressive engineering. I have a couple of questions:

1. How is the landscape of wasmGC browser support? Given it's relatively new is it OK to use this and ship production apps now? How does sheets handle older/unsupported browsers?

2. In Google IO the Workspace team mentioned they'd leverage Kotlin Multiplatform to achieve use cases like this. I see Sheet's using the in-house J2CL compiler but is there cases where KMM is used to target WASM - in sheets or docs? What are your thoughts?


For current support, see

https://webassembly.org/features/

Chrome (and other Chromium-based browsers) and Firefox have had WasmGC enabled for a few releases now. But Safari doesn't yet last I heard.

Sheets can serve a JS version to browsers without WasmGC, since they can compile the same code to either JS or Wasm.

About Kotlin, I know they have a working WasmGC toolchain that works very well, so personally I think it is a good option in general. But I don't know offhand about current users or plans.


I don't know if native excel should be the benchmark. It seems to me that it has been ever slower over excel versions.


One trouble with Excel is that it does an awful lot of different things but doesn’t do them well. If you try do use it to do what Pandas does it is shocking how small of a data file will break it.

The idea of incremental calculation of formulas that don’t need to be put in a particular order is still genius but the grid is so Apple ][. Maybe the world doesn’t know it because it spurned XBRL but accounting is fundamentally hyper dimensional (sales of items > $100 in the afternoon on the third week of February in stores in neighborhoods that have > 20% black people broken down but department…) not 2-d or 3-d.

Having the wrong data structures is another form of “garbage in garbage out”. I have though many times about Excel-killers, trouble is they have to be something new, different and probably specialized, people know how to get answers with Excel even if they are wrong, plus Excel is bundled with the less offensive Word and Powerpoint so a lot of people are paying for it either way.

Personally I want a spreadsheet that does decimal math even if there is no hardware support except on mainframes: I think a lot of people see 0.1 + 0.2 |= 0.3 and decide computers aren’t for them.


Google sheets does do decimal math so I'm not sure what you mean


It doesn’t use ordinary floats?


Unless my test methodology was flawed:

Displays 0.3:

"=0.1+0.2"

Displays 3E+79:

"=(0.1+0.2)*1e80"


That could be just the way it's displaying, e.g. to 14sf or something. If you try adding a million 0.1s and use a formula to compare to 100,000, that might tell you (with floats I got 100000.00000133288).

This question suggests it uses floats: https://stackoverflow.com/questions/74542790/google-sheet-yi...


Try "=((0.1+0.2)-0.3)*1e80" -- your test can be fooled by pretty standard rounding for display.


Oops -- nice, thank you! Sorry, guess I was mistaken


maybe try rowzero.io as at least a remotely calculated alternative?

I live in excel sadly and it's all been downhill since excel 2003

as for better math calcs, yeah excel isn't perfect for true accuracy of decimal math but that rarely matters in 99.99% of use cases - if you need really accurate math you use R/Python/etc.

if you need something for the masses, visicalc/lotus/excel is the solution




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

Search: