zlacker

[parent] [thread] 18 comments
1. drewda+(OP)[view] [source] 2023-08-30 19:21:20
Occasionally I wonder what could have happened to front-end web application development over the past few years if Figma had open-sourced their WebGL-based GUI library.

We've had ~15 years of focus on the DOM with the progression of jQuery to Backbone to Vue, and many other libraries. At least what I've heard of the Figma approach almost sounds like the Adobe Flash/Flex runtime.

That might only make sense for applications with high levels of information density and snappy reactivity requirements like Figma or Google Docs or a web map -- not for content-focused websites. Still, it's interesting to wonder if our arguments would be more interesting these days if we were discussing those types of approaches, rather than just fighting about React vs. Svelte, or this JavaScript module loader vs. that one...

replies(9): >>fidotr+l3 >>maccam+S5 >>andy_p+R6 >>bsder+4a >>preomm+hb >>imslav+2g >>satvik+nf1 >>jilles+Co1 >>wryanz+ec2
2. fidotr+l3[view] [source] 2023-08-30 19:35:14
>>drewda+(OP)
Figma definitely had a killer advantage with Evan Wallace around. He might be known now for esbuild but he is a WebGL demon of epic proportion.
replies(1): >>inssei+n9
3. maccam+S5[view] [source] 2023-08-30 19:44:52
>>drewda+(OP)
Couldn’t agree more. Would love more discussion of stuff like this in front end
4. andy_p+R6[view] [source] 2023-08-30 19:49:31
>>drewda+(OP)
Could someone compile Skia to WASM and add a layer for some UI niceties like flexbox? I wonder what the layer they have consists of.
replies(1): >>satvik+2e1
◧◩
5. inssei+n9[view] [source] [discussion] 2023-08-30 19:59:22
>>fidotr+l3
Woah I had never connected the dots - I had used https://github.com/evanw/glfx.js for a realtime photo editor and then wrote https://github.com/inssein/jsfx to render the same without WebGL for printing.
6. bsder+4a[view] [source] 2023-08-30 20:02:50
>>drewda+(OP)
Figma was considered ... good?

Every time I have used it, it feels incredibly laggy with a crapton of useless animations.

Maybe it's better on Windows?

replies(4): >>jve+ki >>hifix+Ck >>jjcm+Vp >>sanity+ws2
7. preomm+hb[view] [source] 2023-08-30 20:07:45
>>drewda+(OP)
It would not.

1. Wasm based UI libraries exist already, checkout makepad [0] for example.

2. Web app standards are way higher than when flash was around. I highly doubt there would be any serious discussion that would also involve vue/react as alternatives. Almost as ridiculous as asking about using unity ui vs react.

3. Flash was world class media design tool for animation and production design. People were using it to create tv shows. Figma is nowhere close in terms of alternatives like illustrator, adobe ae, etc. So it's value as a runtime for 'cool' effects would be very limited. Which is the only reason to not use html/js because otherwise there's all kinds of small usability issues (like things not scrolling right, or not working with mobile). Figma's biggest value is it's collaborative features which is really important for ui design. I think devs (and other non-designers) overvalue Figma's importance because of lack of famliarity. It's kind of like if people thought you could use google docs or notion as an ide. After all they're both text editors right, even if jetbrains or vscode is better, it's maybe 10-20% better? But of course devs know that they're world's apart, like comparing apples to oranges.

[0] https://makepad.nl/makepad/examples/ironfish/src/index.html

replies(1): >>Frater+uB
8. imslav+2g[view] [source] 2023-08-30 20:27:10
>>drewda+(OP)
It's worth noting that a lot of Figma's UI outside of the canvas is React (panels, toolbars, menus, etc).
◧◩
9. jve+ki[view] [source] [discussion] 2023-08-30 20:35:43
>>bsder+4a
Not for me... well, I'm on Windows.

It is currently the best tool for me, as a non designer, to smash together (design) icons and export in my choice of format.

◧◩
10. hifix+Ck[view] [source] [discussion] 2023-08-30 20:44:01
>>bsder+4a
I use it daily on Windows and I have to say it seems pretty fast. Never noticed any lagging or unnecessary animations.
◧◩
11. jjcm+Vp[view] [source] [discussion] 2023-08-30 21:06:55
>>bsder+4a
PM over here at Figma - would love to know where you're experiencing lag / where you're seeing useless animations.

Overall we're pretty minimal when it comes to animations in product (i.e. here's a quick 22s recording of navigating between screens/opening properties panels in product today: https://video.non.io/video-2940009905.mp4) as we really want to convey that the app is snappy/performant. Definitely keen on diving in if you're experiencing otherwise. Happy to chat here or my email is jake@figma.com.

Regarding platform specific performance - it shouldn't affect things as long as you have GPU acceleration enabled. The majority of us over here at Figma are using OSX FWIW.

replies(1): >>bsder+hz1
◧◩
12. Frater+uB[view] [source] [discussion] 2023-08-30 22:14:16
>>preomm+hb
I do some graphics work and I wouldnt say that there is a world of difference between the capabilities of Illustrator and Figma. Photoshop is obviously a completely different tool. Very textural digital painting of the kind that photoshop excells at would be pretty tricky in a browser. (Theres a webversion of Heavypaint now, but thats vector-based of course.
replies(1): >>plornt+cK
◧◩◪
13. plornt+cK[view] [source] [discussion] 2023-08-30 23:19:28
>>Frater+uB
Check out Photopea, it has a ton of features and is fairly performant in the browser. It also seemingly copies the UI of Photoshop but impressive nonetheless.
◧◩
14. satvik+2e1[view] [source] [discussion] 2023-08-31 03:51:43
>>andy_p+R6
Yes, which is what Flutter basically does.
15. satvik+nf1[view] [source] 2023-08-31 04:06:08
>>drewda+(OP)
You'd likely get something like Flutter. It's actually gotten quite good these days with their web version, 300 ms to load a counter app, and 150 ms with WASM enabled.

There's a great post by Ian Hickson, the project lead of Flutter, about how we might have more WASM based web apps while keeping the DOM for content based websites:

> This document proposes to enable browsers to render web pages that are served not as HTML files, but as Wasm files, skipping the need for HTML, JS, and CSS parsing in the rendering of the page, by having the WebGPU, ARIA, and WebHID APIs exposed directly to Wasm.

>>34612696

16. jilles+Co1[view] [source] 2023-08-31 05:43:17
>>drewda+(OP)
There are multiple ui frameworks now starting to target wasm. I'm keeping an eye on Jetbrain's multi platform compose, which is extending Google's Jetpack Compose for Android to IOS (alpha releas available with 1.5 released a few days ago), Desktop, and Wasm (experimental support available but a work in progress).

That will take a while to come together. Key blockers are removal of the feature flags currently needed to enable things like garbage collection in Firefox and Chrome and the completion of Kotlin 2.0 and it's new compiler (K2) which is currently available via a feature flag in the Kotlin 1.9 stable release. My estimation is that we're about 6 months away from those blockers being resolved. IOS support is likely to transition to beta around the same time. From there to being stable and well supported is probably another year or so.

But a lot of stuff works right now already. However, it's not suitable for production usage because of the early development status the various bits and pieces you need and the need for toggling browser feature flags.

There are some nice examples of IOS support in the recent release notes for compose web: https://blog.jetbrains.com/kotlin/2023/08/compose-multiplatf...

They don't really mention Wasm there as this mostly focuses on the IOS support. They had a lot of presentations about that at kotlin conf and the compose web channel in the kotlin slack is very active.

Basically, anyone currently doing mobile development that is used to modern UI frameworks for that, will soon be able to target browsers effortlessly without compromising on their UI frameworks. Compose is one of the frameworks. But there are others. I've seen some nice kotlin-js frameworks targeting canvas and vector graphics. Doodle is a nice example: https://nacular.github.io/doodle/. I have not used that yet but it looks quite slick. A lot of kotlin-js stuff will transition to wasm once the compiler stabilizes.

Web developers seem to be mostly unable to see beyond their comfort zone of DOM/CSS/JS. There are alternative ways of doing UI/UX that are common outside of browsers. Applying that in a browser is transitioning from impossible (a few years ago) to being hard but very feasible (the last few years) to being easy, very common, and widely supported across different developer ecosystems (the next few years). Not a matter of if but when.

◧◩◪
17. bsder+hz1[view] [source] [discussion] 2023-08-31 07:14:54
>>jjcm+Vp
Chrome on Ubuntu using your "Diagram Basics" template.

Dragging any object is laggy--particularly so over the slightly pinkish/purplish background area.

18. wryanz+ec2[view] [source] 2023-08-31 12:14:32
>>drewda+(OP)
For everything outside the canvas (sidebars, toolbars, etc) figma is a react app.
◧◩
19. sanity+ws2[view] [source] [discussion] 2023-08-31 13:40:20
>>bsder+4a
I'm mostly on Windows, if someone sends me a Figma link I open it in a different browser because half the time it locks up for a few minutes then crashes the whole thing.

Would prefer to be sent a PDF, and you won't often catch me saying that.

[go to top]