←back to thread

292 points kaboro | 6 comments | | HN request time: 0s | source | bottom
Show context
sarosh ◴[] No.25058471[source]
I thought this statement from the article had more than a hint of truth to it: "Figma in Electron may destroy your battery, but that destruction will take twice as long, if not more, with an A-series chip inside!"
replies(2): >>25058689 #>>25059788 #
lalo2302 ◴[] No.25058689[source]
This will allow Sketch to kick Figma's ass as soon as they solve their online multi-user editing
replies(9): >>25058736 #>>25058797 #>>25058953 #>>25059139 #>>25059245 #>>25059600 #>>25060072 #>>25060320 #>>25063320 #
Etheryte ◴[] No.25058953[source]
As a developer on the receiving end of designs, in my experience, performance isn't really a discussion point as long as it isn't abysmal. Figma hits it out of the park in every way in user experience, functionality, deliverables, and more. This is a personal and very subjective opinion, but Sketch doesn't feel even remotely close to achieving the same level of quality.
replies(1): >>25059182 #
wdb ◴[] No.25059182{3}[source]
Personally, the user experience is bad in Figma, as each time it wants me to login in the browser while using the Figma desktop app. Every time you start up the app :(

Also requires me have a working internet to be able to use it. Sketch or Affinity Designer don't have these problems. I hope they will fix that problem with Figma.

replies(1): >>25062922 #
1. kitsunesoba ◴[] No.25062922{4}[source]
Being so strongly tethered to the web is absolutely Figma's achilles's heel. Well that, and its needless Electron wrapping for its desktop version. Its file format not being open and well documented (unlike the Sketch file format) is also concerning to me.

So if they…

- Add a full offline mode

- Ditch Electron for a more focused/lightweight webassembly+canvas implementation

- Open and document their file format to allay lockin concerns

…I'd be much more inclined to use it instead of Sketch.

replies(1): >>25064252 #
2. applecrazy ◴[] No.25064252[source]
> - Ditch Electron for a more focused/lightweight webassembly+canvas implementation

Actually, that's exactly how Figma is built—their desktop app just wraps their web version while hooking into file system APIs provided by Electron/NodeJS. See https://www.figma.com/blog/webassembly-cut-figmas-load-time-....

replies(2): >>25064650 #>>25067159 #
3. kitsunesoba ◴[] No.25064650[source]
Sorry, I used ambiguous language. What I was suggesting was replacing Electron with a standalone webassembly+canvas engine, since much of Chromium is redundant in this particular case.
4. jamil7 ◴[] No.25067159[source]
If all they need is filesystem APIs couldn’t the web app wrapper just be backed by some C++ or similar to provide that?
replies(1): >>25068072 #
5. rudi-c ◴[] No.25068072{3}[source]
The document is rendered with WebGL on the canvas but the UI around it (layers panel, properties panel) is React. Not to mention a lot of other business logic for things like permissions that’s shared with the rest of the fullstack app. So either way you need some sort of browser engine.

If you use the native webview, it’ll probably use less memory but be slower because it’s basically running Safari instead of Chrome. It’s probably the wrong tradeoff for Figma because the browser’s memory usage and JS heap memory is pretty negligible compared to the amount of memory the user’s document uses, especially large ones with a lot of images. There’s way more room for optimization there and that has nothing to do with Electron.

It’s fun to think about what the performance would be if it was 100% C++ given infinite resources but realistically it’d be way less productive and more bug prone than React. I’ve written UIs in C++ before,would not repeat. That time would be better spent optimizing actual bottlenecks, like rendering the design file (where the GPU is the bottlebeck).

We actually have a native (not WASM) with native webview build we use internally for debugging with XCode. No, performance isn’t better enough to warrant dealing with Safari issues and shipping that over the Electron + WASM build.

replies(1): >>25068319 #
6. jamil7 ◴[] No.25068319{4}[source]
Thanks for the detailed answer! That all makes sense, I actually saw one of your engineers present at a conference a few years ago and was really impressed. The tech blog is also fascinating to read.