Hacker News new | ask | show | jobs
by rogerclark 1066 days ago
Arc is pretty good. The vertical tabs are great, and the same tab list appears in all other windows you have open. For someone who easily loses track of tabs, this helps dramatically, and prevents the situation where you have multiple windows open, each with similar tabs.

The other great feature is the "Little Arc" window that appears when opening links in other apps. This lets you check something out, close the window, and resume what you were doing, preventing you from getting sucked into the Web and away from the conversation you were having.

I don't find much else compelling, but these are both really nice. For some reason, I don't care at all about the tiling system or the Boosts feature (modifying pages to remove elements, change fonts, etc) even though people talk about those a lot. If they can think of one or two more really useful features (and communicate them properly on the website) then they'll gain a lot of users.

At least, they'll gain a lot of users on the Mac. The biggest downside is the lack of Windows and Linux support. They're working on Windows. I don't see them doing Linux at all, but who knows.

1 comments

Why wouldn't they do Linux? Isn't the whole benefit of browsers that they're the internet's compatibility layer, and shouldn't support be kinda baked into Chromium? Missing a chunk of (hopefully passionate in a good way) users like that sounds like a missed opportunity.

That said it's probably fine for them to iterate for Mac customers first, like apps releasing on iOS first before supporting Android.

As I understand, Arc doesn’t use the UI framework that’s baked into Chromium and instead uses SwiftUI. To facilitate a Windows port, they’re building on existing community work to write a SwiftUI implementation for Windows.

Following this if they were to port to Linux they’d probably write a GTK-based SwiftUI implementation, or if they wait for Swift C++ interop perhaps a Qt-based implementation.

> To facilitate a Windows port, they’re building on existing community work to write a SwiftUI implementation for Windows.

Can you expand on this? I haven't the foggiest idea how this would work in practice.

Well Swift already builds on Windows, but obviously that does not come with much of what you might use to write a Mac app. The biggest holes to fill are those not covered by the open source version of Foundation (which thankfully, Apple is working on filling) and those left by the absence of AppKit/SwiftUI. So most of their hole-plugging is going to be centered around SwiftUI and whatever bits of AppKit beyond SwiftUI they may be using.

The SwiftUI API is mostly "just" a DSL built with result builders[0] and should be reproducible without too much trouble. The harder part is reimplementing all of the behavior concerning diffing, rendering, etc, and actually drawing the widgets. Last I knew, their plan is to use community built WinRT/WinUI Swift bindings (perhaps this[1]) as a starting point to marry native Windows widgets to their recreated API. It may be necessary to write some widgets from scratch though, because there are several types that WinUI currently lacks.

It's a gargantuan task they've taken on, but I'm watching intently because despite being the world's most popular platform, the native Windows dev story is currently pretty underwhelming.

[0]: https://www.swiftbysundell.com/articles/deep-dive-into-swift... [1]: https://github.com/ericsink/SwiftWinRT

That's fascinating, thank you for the response.

I find programming user interfaces in SwiftUI to be an absolute joy, and if there were proper bindings to GTK and WinUI then it would be my go-to GUI framework for time immemorial.

The SwiftWinRT project looks interesting -- unfortunately, it seems to be abandoned (last commit was ~1 year ago).

Here's hoping they succeed. If they do, it could totally displace Qt as the standard cross-platform GUI framework (caveat - not for all use cases, of course).

Vivaldi works on Linux (well, Ubuntu at least) and has top-notch tab management