5 ms·
The most confusing thing to me is a discussion of "offline first" applications which starts with, and maintains, the assumption that your only option is a web a
by taneq 5y ago
The most confusing thing to me is a discussion of "offline first" applications which starts with, and maintains, the assumption that your only option is a web app.
Back in my day we had a word for software that always worked without an internet connection. We called it "software" and it was installed on the user's computer.
- hengheng 5y agoI will still call any web app a "web site", and if that is my age showing, so be it.
- taneq 5y agoWe can shout at the cloud together.
- atatatat 5y agoThat's fine, if it's on your tablet or PC. If you're looking at a web "site" on a vertical phone screen, one side or the other did something wrong. My point is: sites and services should have two separate experiences, depending on screensize. These are: desktop site, mobile webapp.
- hoarad 5y agoi do so also. and it is because they have a link
- tehbeard 5y agoHar de har look at these modern programmers with their web 2.0s and js frameworks of the week... Offline first is not "software" as you classified it. Your "software" you are on about is more accurately described as "offline only", little to none of the functionality requires network access. Offline first refers to how online functionality is needed for the design of that app, but with steps taken to ensure that even without connectivity for periods of time, it still functions.
- jjnoakes 5y agoWhile offline first seems to be discussed in the context of web apps a lot, to me it is more about the data and synchronization than where the executable lives, and most of the ideas also apply to certain kinds of desktop software.
- dspillett 5y agoThat isn't offline first though: desktop software like that is generally offline only, and the user wraps their own chosen sync method (which could simply be good ol' sneaker-net or frizby-net) around that if they want/need to. Offline first is only used in the context of web applications and sometimes their Android/iOS cousins (which probably share the same backend, where both are available), once the decision had been made that a not-locally-installed and/or remote synced application is desirable where possible, so isn't being suggested (directly) as an alternative to locally installed offline programs.
- jasode 5y ago>The most confusing thing to me is a discussion of "offline first" applications which starts with, and maintains, the assumption that your only option is a web app. I didn't downvote your comment but in this author's article, it's deliberate for the starting context for discussion to be a networked collaborative app. Yes, internet connected apps is a subset of all possible software but that's not the point. As an analogy, imagine if someone else submitted an article about C Language memory techniques on an embedded chip. E.g.: https://www.embedded.com/memory-allocation-in-c/ https://www.embedded.com/memory-allocation-in-c/ And then a commenter misunderstands that article complaining, "it's confusing to me because this article maintains that the only option is C in an embedded app but over here, I'm using Python with Cloudflare Workers" In other words, it doesn't seem like you're interested in collaborative apps that require distributed data consistency so this article looks "wrong" to you.
- phkahler 5y agoIt's confusing because "offline-first" doesn't even seem to make sense in the context of web-apps, which I thought meant "fancy (functional, able to do stuff) web sites" or similar.
- josephg 5y agoI’ve been working in this problem space for awhile now and I sort of agree with the GP poster. I really like native software; and I want native software which can work simply in a distributed, collaborative context. As an example, I have a note taking app on my laptop. I want to be able to read and edit all my notes on all my other devices. And I want that to work in a way that doesn’t depend on some random startup keeping their servers on the other side of the planet running. Right now every software company which wants to build something like this needs to invent their own data stack, network protocols and storage systems. And the prize at the end is with software that can only talk to itself via closed protocols. It’s infeasible, and inefficient. We have an opportunity right now to do an awful lot better. When we do, I want to service both native and web apps. If we do it right, from the network level the distinction should just boil away anyway.
- 5y ago
- psychometry 5y agoOk, and if you want your non-web app to be compatible with Windows, MacOS, iOS, and Android and you don't want to write more than one app, your options are...?
- justinclift 5y agoGenerally Qt.
- poetaster 5y agoQt/qml works for. With python sometimes.
- Swenrekcah 5y agoA user’s computer? Written with a possessive? What a bizarre idea!
- jitl 5y agoIt is approximately infinity times easier to distribute and grow the user base of a web app compared to locally installed software. The consumer software economy is moving online for this reason - it’s much better for business. RxDB software comes from this context - it’s a JavaScript library built for this world that attempts to retain the distribution and sharing advantages of the web, while adding back the responsiveness and availability of traditional installed software. I think you’ll find the original “local first” manifesto more aligned with both the user & traditional installed software with less of a web focused bias: https://www.inkandswitch.com/local-first.html https://www.inkandswitch.com/local-first.html > In this article we propose “local-first software”: a set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data.
- blacktriangle 5y agoAlso back in that day 95% of our users were on Windows and we had a direct relationship with them. Now your user base is roughly split 40/40 between iOS and Android with a non-ignorable 20 running some windows tablet thing. Then for extra fun your access to those users is mediated by the giant black boxes staffed by assholes that are the iOS and Play stores. And of course back then nobody had any expectation that your software would easily sync between devices and users because that just wasn't something that was doable easily. The world changes. Yeah it was better for us devs back then, but honestly the new world has some real advantages. For me personally, I'm cautiously optimistic that PWAs are our way out of the hell that is supporting 3 native platforms for all but the rarest cases.
- JamesSwift 5y agoThe difference is that back in the day it _only_ worked on your computer. There was no cloud component and no collaborative use-case. If you only have a single, local client then a lot of this doesn't apply. But its rare for that to be the case in modern software.
- blondin 5y agoi agree with the essence of your comment. the "back in my day" is what is, perhaps, causing resistance. my impression these days is that web engineers have outnumbered other software engineers. that's a problem because context matters as you are alluding to. we shouldn't use terms like "offline first" without an appropriate context. or assume context.