4 ms·
I find "offline first" software to be interesting because it's so foreign to me. If I wanted to build an offline first application, I'd just build a traditional
by VyseofArcadia 2y ago
I find "offline first" software to be interesting because it's so foreign to me. If I wanted to build an offline first application, I'd just build a traditional desktop application with Qt or GTK etc.
Why did you choose to build this with a webdev stack?
(Not a criticism! Use what works for you! I'm just interested in why people choose the tools they do.)
- seansh 2y agoI understand where you're coming from but in addition to offline first, having cross-platform support is also a priority. Although it's possible to run Qt/GTK apps on win, linux, mac, ios, and android, it still misses a huge platform: the web. Also, even if we exclude the web, you still have to deal with app stores, code signing, separate builds for each platform and whatever else you'd have to do to distribute your app everywhere (not my area of expertise). But with a PWA, you make a website that uses Service Worker and you're done.
- ozim 2y agoQT is not as approachable as web stack. With all downsides of the web stack I still would rather go with it than QT.
- VyseofArcadia 2y agoHaving worked with both, I strongly disagree.
- seansh 2y agoI'm curious how many platforms do you support for your Qt app(s) and how easy was it? It's been a few years since I touched Qt and back then mobile support was a pain.
- VyseofArcadia 2y agoI've only worked with Qt apps that supported Windows, Mac OS X[0], and *nix. I've never touched mobile. [0] That is to say, before the macOS rebrand, so this was a number of years ago.
- DANmode 2y ago> I've never touched mobile. That's important.
- porcoda 2y agoI always assume the stack people choose is based on what they know. Given that we’ve seen a huge number of people learn web tech over that last decade or so, it’s sort of unsurprising to see so many people go that direction. I’d assume a secondary factor is portability, although given that you can achieve portability with other stacks too, I generally think it’s tech familiarity that drives it more than anything else.
- david_allison 2y ago* It's cross-platform * It's (probably) sandboxed * It's easy to distribute * It's easier to make an app with a decent (but non-native) UI, compared to other cross-platform toolkits
- golergka 2y agoI developed desktop applications a long time ago, but I do webdev now, including Electron apps. Modern web stack is just a much better developer experience. Sure, if you just want to build a simple app with 5 controls and two screens, you can remember good old days of VB6 or Delphi fondly. But for a modern complex application with localisation, reactive design for mobile and desktop screens, a lot of user content and complicated state that is changed asynchronously both from the user input and from remote events, modern web stack is actually great. Typescript is about the best mainstream (not Haskell) programming language I've ever worked with, modern web frameworks (React, Svelte and others) use functional programming concepts in the right places without requiring knowledge of type theory, it's easily debuggable at runtime and modern css/html is actually a pretty good way to do layout of complex user interfaces.
- VyseofArcadia 2y agoInteresting. I've done both desktop app dev and web dev professionally, in both cases complex applications that required localization etc. I still found the traditional C++ desktop app a better developer experience. It's significantly more straightforward, and I could be more productive of the simpler mental model of "OS runs application, calls out to thin GUI abstraction layer which calls out to either Cocoa or win32" vs "backend runs on service fabric in one of three different data centers, calls out to x different DBs and y different microservices, user connects to it via frontend after auth (another can of worms) via roughly a dozen different common configurations, but we're only going to test with Chrome on Windows, using TypeScript and an unholy combo of three different frameworks because the frontend team keeps chasing the new hotness" Web dev just feels insane to me. The amount of logistics and infrastructure and tooling you need[0] is beyond the pale. [0] "need" is maybe strong, but in an enterprise setting like I was that's what you have
- golergka 2y agoIf you don't have to deal with backend in the former scenario it seems that you're really comparing apples to oranges here.
- deleted 2y ago[deleted]
- comatory 2y agoI'm a web dev so naturally, I'd pick something I know well to implement UIs. Second, distribution is a big one. With native mobile, you have to go through lot of hoops to get your code onto the device easily, usually it means dealing with certificate, licenses etc.