Web tech rocks
John Siracusa is making a new Mac app and he’s been talking about the development process on ATP for the last few weeks. I got a kick out of his frustrations with using a payment system that delivered a confusing user experience he had no control over, and as a fan of and major booster of web technologies, this segment about him trying to render a long list (10k+ rows) of items in his UI that scrolled smoothly is very fun (slightly edited for brevity):
I’m banging my head against SwiftUU, AppKit, NSCollectionView, NSTableView, Lazy VStack, List…the performance is crap. I’m on a Mac Pro with 192gigs of RAM. I’m like “why can you not scroll a list?!”
[…]
But like I know this would work fine in a web page. I’m not asking too much, right? So I made a web page with 10,000 items, and right now this scrolls faster than the AppKit, the native Swift pure AppKit NSTableView on macOS 15.2 on a Mac Pro with 192 gigs of RAM. […] We're talking about like, “oh, web apps always feel worse, you can always tell it's a web app because it's not as good and it's not as smooth and snappy and this and that,” and web tech has had so much effort put into it that right now HTML and CSS are an amazingly performant engine for quickly and easily creating user interfaces that scroll like butter.
That’s right, a native UI component does not exist that gives John the performance he wants for this app, but HTML does it remarkably quickly. And of course, the cherry on top:
Oh, by the way, Chrome does it way better than Safari.