From the ExperiencedDevs subreddit, this developer wanted perspectives on whether or not desktop applications are dead.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
Hey folks, we're going to go to the experienced dev subreddit and this person had an interesting question about how technology's kind of been shifting a little bit in terms of the types of software being built. So they said seems to them like the world is shifting from you know desktop apps and things to web development. Um they're curious why they had some speculation around this. Um, I guess my first reaction when when reading this was kind of like is this like a recent realization or is this uh I don't know. I feel like this has been the case right maybe for I don't know like over 10 years now. But um regardless I mean like it seems like this is a direction things are moving in. Um by the way as I'm talking through this if you have different thoughts on this topic at all just feel free to jump in the comments.
Um, but yeah, looks like that's been quite a shift over time. And so they're they're kind of it almost seems like they're surprised by this. And I'm not making or trying to make this sound like, you know, they're they're wrong for feeling surprised by this, but I'm almost surprised that they're surprised. However, um you know, they're saying like their some of their perspective on this is that it feels like if you were to have desktop software, that might make it, you know, um you know, harder for users to switch away from. So, you kind of get people like almost like locked in with some loyalty to your software. Um they say like it could give people a better sense of ownership of the software they're purchasing. And a lot of this seems to be grounded as they're explaining it in sort of like their perspective as a consumer of the software.
Then they go on to say like like I guess I could understand that you know business is switching to more like SAS models. Um maybe that makes more sense to to move away from desktop development. But they were kind of looking for some perspective on this. So, um I thought this would be kind of fun to talk through cuz like do I have the definitive answer? No. Um I think I have some ideas as to why. Um I also think that I like part of me agrees with what they're saying and part of me like disagrees. Uh, and what I mean by that is like I I do think that things like, you know, having a desktop app could potentially log people in, but I don't think that that creates loyalty. I think that that actually creates barriers and like uh reasons why people may not want to buy software in the first place.
But um if I were to take a step back from all of this and think about that direction of how software has been built, I do think there's a big um sort of uh change in trajectory on like hey are we building apps to go on a desktop or like could this just be web- based? And I think there's a lot of uh I think good reason that that ends up happening and I do think there's still situations where desktop development makes sense. So, if we think about um like super super high level some of the trade-offs you're you're considering when you're doing desktop based development versus web- based development. Um I think that I'm sure anyone who is a web developer will say like they have strong opinions about this, but I I think that going cross browser is getting like significantly better these days.
That's my perspective. I feel like um a lot of the frameworks and stuff that people were building with previously like trying to support multiple browsers was like like even at a baseline I don't mean like you know every feature perfectly but I mean as a baseline was chaotic and and really challenging and I just feel like these days that's more straightforward. Again not to say that there aren't nuances but more straightforward. So I think that's been opening up some opportunity. I think that when we're thinking about desktop based development, um you're either locking into a platform, so you're going native for that platform. So you might have uh something built for Windows or for Mac or for Linux. Um and then you'll have people jumping into the comments of this video saying, "Well, why don't you just use whatever?" Um and yes, you can. You can go use whatever and go crossplatform, but then I would say that is also a trade-off.
Now you're trading off going with some crossplatform framework that is going to kind of detract from some of the native experience whether that's uh detracting from the enduser perspective or from you as a developer trying to support um like at some point you're paying the cost for the crossplatform part whether that's that you're getting a UX for the user that's a little little bit off or It feels a lot more native, but there's more complexity still pushed to you as a developer. There's a cost paid somewhere. And I'm not saying it's not worth it. It's not what I'm saying. I'm just saying there's a cost. That's all. So, some people will build, you know, they're saying, I only need this to ship for Windows customers. So, like, uh, we'll just build it for Windows, right? And some people will say, hey, we need it across plat like different platforms.
and whatever that native experience feels like either has to be like completely topnotch native across these different platforms. And so maybe they'll build their UI layer um to be very much native and do as many shared libraries as they can. They can go crossplatform, use a crossplatform stack, lots of options, right? But there are trade-offs you make. Um, now then some might say, well, okay, well, if you go web- based, it just works in the browser, doesn't it? So, like, do you do you really need to like fight with all these crossplatform things if you could just have it work in the browser and now all of a sudden it works on my phone? I say all of a sudden as if it's like magic, but like a lot of frameworks for when you're building web apps will will give you some mobile layout experience that does feel like it was almost magic that it works.
Um, and so I think when people are setting out to build apps like these tradeoffs, these are like literally things that you could think about from an engineering perspective like what makes sense, right? All of these things when we make decisions about technology use, how we're going to like what tech stack, the language, um, all of these things have trade-offs, right? And so hopefully as I'm saying these things, you're not hearing me say one is right or wrong. I'm I'm hopefully coming across as saying literally uh there is no right or wrong. It's just trade-offs, right? And you have to think about what makes sense for the product or service you're delivering. Right? So for example, I'm just going to make up an example. Right?
if you did not have some requirement that you have super high performant like native UI experience but you do need to make sure that it works on Windows and Mac and Linux you might say well like maybe it does make sense just to go with you know a web app maybe right maybe that's one of the things pushing you in that direction but then you might say oh well there's a lot of like you know um local file file system usage or like we need to like interact with things on the computer more and like that that browser boundary is kind of awkward that way. I really got to switch lanes here. Holy cow. Um there we go. Um, and so like maybe maybe that's far too much like you know convoluted interaction. So you're like screw it, we'll go with some crossplatform, you know, uh, kit that we can use to go make sure that we can build for all these these platforms.
And yeah, so the UX might be um, not like perfect, but like also that's fine. Like we that's not like the number one selling feature of our app isn't like we built some like Apple quality user interface. Like it it works and like that's cool and it's not like it's terrible but it's also not like the selling feature. So maybe that makes a lot of sense for you. But the point is that in these types of situations you need to pick and choose what's going to make sense. So you have to think about how your app's going to get used. You have to think about how developers are putting this together with AI now some of these conversations shift a little bit because I made videos on this recently where I said you know historically and it's not that it's gone now or it will
be gone forever in the future but historically like understanding that you have a team of developers that might be able to deliver way more effectively in a particular tech stack that has historically for me been like a really big reason to lead into that, right? If you're trying to get things shipped, you probably if there's not like a strong reason to go shift away from a tech stack and you have a team of developers that are very skilled in it, it probably makes sense to like lean into that because that way you can actually get out the door. uh now that might be shifting more and more because if you can use AI to augment teams where maybe they're not experts in a particular language or tech stack but it seems to be a better fit for what's being built you can lean into that.
So I think technology choices and stuff um over time there's a lot more reason where like web- based applications become a better opportunity right if you were saying oh like I'm just going to make up another example like okay I could go build an app for Mac or I could go build an app for Windows but like yeah I would like users on these other platforms but honestly like it's just too much of a pain in the ass for me to go build like I'd have to go build a whole duplicate of this app. I don't want to do that. Um, with web tech getting better and better and more performant, it almost like makes sense like if you if you don't have some technical requirement keeping you native, then like why why not explore a web app? You kind of just open up doors for like more opportunity, right?
So I I feel like over time there's been a uh if you were to like sort of graph the performance um the maturity of the web stacks the uh sort of like the interest in being able to have users across platforms. I just think there's a if you were to plot this kind of stuff out, you would see like there's a lot more drive pushing people to to have web apps because they can go crossplatform and then you can get you know mobile like for free again free air quotes um because you know people can open up the site on a mobile phone and maybe your biggest challenge at that point is like layout. Obviously I'm oversimplifying things. Please don't get too angry at me in the comments, but hopefully you see the direction I'm kind of uh hinting at here. Um, so I think that's a really big part of it.
And then if I think about what this person was saying regarding um like ownership, um I don't know like I I don't I don't know how many people honestly I don't have data on this. It seems like a bit of a weird argument to me to say like I don't want to to pay for the software unless like I I own the copy of it installed on my computer. It feels a little I don't know like to me that feels like a a bit dated. And this comes from someone who like I played video games like my whole life, right? So, um, you know, you used to go to a store and buy a box that had a game in it, and then over the past decade or so, like everything's just, maybe it's been longer than that now, but um, most of the time we just download games.
I feel like it's pretty rare that people are going out and buying physical games, right? So like you download them and then on top of that you have a lot of games that are I don't know they're they're live only. So even if you're playing single player you still have to be on the internet. I know people hate that. So I can get that. But are these like fundamentally different experiences? If we're talking about software that you might be buying for your business versus playing a game, I think there's probably similarities and I think there's some differences, right? Again, I'm not personally in a position like give you another example. Like I work at Microsoft and like I still have to pay for office, right? I get a I think I get a slight discount on Office. Um but I I still have to pay for it.
So, I have to go pay for my own Microsoft Office as an employee, which that doesn't feel good, but I will do it cuz I need Office. And do I own it on my computer? Like, I don't really actually use like the installed I don't even know if it is installed on my computer. Like, I'll just stick to the web apps for it now, honestly. And there are differences, right? Like as a Microsoft employee, like there are times where I have things that will open up on the desktop app for work versus in the browser. And there's subtle differences, but honestly, like I mostly just do stuff in the browser, even for my my office stuff. So I as a consumer outside of work, I don't actually personally don't give a if it's installed on my computer, even for something like Office Now. And like do I like that it's subscription based?
No. Um I don't. Uh but I guess the other thing that I would say is at this point in my life like uh I'm fortunate enough that if I'm paying a a subscription for office, I'm like that that is an expense that given you know my usage around it I I can live with that. Would I have preferred like a one time you know buy office for a h 100red bucks kind of thing like? Yeah. Yes, I would. Um, but I guess however Microsoft in this particular example has, you know, done marketing and pricing and stuff even as an employee who is paying when I feel like I should get it for free. Um, they still have a price point that to me as a consumer feels fine. Like that feels like the value is there and I'll pay for it and I don't need it installed.
So, my point in this part was less about the price or whatever, more about do I need it installed. Um, so I think the install part, I don't not totally sure I agree with this person, but again, if you have different opinions on this, would love to hear. Um, and so like if my games are installed versus Office, like uh like like I guess I need a game to install to run locally and be performant, but like I don't need a physical copy of it. Like that seems weird. I don't I don't I just don't need that. Just takes up space. Now, now what's different I would say is like let's go to the online thing, right? So, um, if you had moved your your product or your service offering to a web app, and that does require that you have an online connection, right? It's not something that you can just run in the browser, but offline, which is possible, but oh man, I got behind this bus.
Rookie mistake, Nick. We'll fix that. Here we go. Um yeah, if you move to a service-based approach and now you need to be online, maybe this is problematic, right? So for example, my let's use my my Microsoft Office case, right? Let's say I'm just using it as a madeup example. Let's say I needed to open up a document and like in order for that to actually open up, it needs to open in the browser. But in order for it to open up in the browser, I need to have an internet connection. Even if the document was on my computer, right? Document files on my computer. I want to view it and like I can't get to the web app. Therefore, I can't even view a local file on my computer. Like that would feel shitty, right? Like that feels bad. Um am I in a position where that's happening often enough that it's an issue?
No. Um it's not to be honest. Like that just isn't really a factor for me. Uh when I think about this from video games, like it's interesting because I'm like that it bothers me that if I want to play a single player game, I have to be online. Like that just feels icky. But also like it's probably not an issue. It's probably fine. I'll just continue to play. Like it's not stopping me, but it feels a little weird. So I can get some hesitation around like being internet connected um in terms of like the direction that software has moved. Uh that feels like maybe there's uh something to it there. But overall I think like we we got to look at this from the perspective of the people that are are creating the products, right?
I think there there is probably a lot more opportunity having something that's web- based to be able to get to more platforms, therefore more users, and then if they can change that, like once it's web- based, there's sort of this like expectation, I guess, that's built in that if it's a web-based thing, now it's like a service, right? We're hosting it for you. We're doing it for you and it's on repeat. So it's a service and I think once you start moving that way then you start getting into uh subscriptions and I think that the the the pricing models around that your business model uh is is interesting right I think people there's a big lean into having subscriptions uh for being able to to sort of get your business model put together. I think there's something interesting about that, right?
Because if you're selling units of things, it is a and I don't know, maybe some people based on their their sales models and stuff, this this still works better for them to be able to sell individual units. But I think that uh there's probably some more layers and depth to uh sales cycles where they can say like hey look like if we're selling a subscription we can focus on expansion and to like uh sort of like penetrating more markets or going deeper on some markets and you know user bases or like let's look at our retention right and so if we can keep users um great if we can we basically have these users that are are coming back, you know, month after month, like can we upsell them on other products, right? Like, can we get them uh more into our ecosystem?
I think that there's like from a business model perspective, I think there's a lot of reason why why moving towards web apps and then SAS kind of gets you um set up in ways that could potentially be more lucrative, right? So I I guess I do see things moving more and more to web- based. Uh I don't think that desktop is dead. I think there's still plenty of use cases for it, right? Um if you were to talk to people about doing high performance things, probably want to trim away as much of the fat as possible. And if you can go native on a particular desktop platform, it's probably going to get you better performance. Not to say that it's impossible to do in the browser, but like again, just picking technology that might be better suited for the job that you're after.
And then I think that a lot of the web tech um direction moves people from a business perspective and an opportunity that I don't know like it can help scale their business better. So I think those are my reasons why. Um, I also should have mentioned this comes from someone who spent, you know, uh, what I've been programming for 20 plus years and I would say still at this point the over 50% of my programming career has been in desktop based development, right? Like web stuff is new to me. I am also not a front-end developer, right? I build stuff in the web. I do have stuff that has front end but you know I come from a place where I was building desktop apps. So I I just think that from a I don't know software engineering perspective there's a lot more reason uh to move towards webbase.
So that's my thoughts on this stuff. Be curious to hear your opinions especially if I was saying stuff and you're like dude that sounds like or I completely disagree. Uh, respectfully, I would love to hear from you in the comments if you have different opinions on this stuff. Uh, you know, it's not it's not a pissing contest. I'd rather just hear your opinions and talk through it. I think it's cool to have different opinions. Um, and then also, especially if you're new to the channel, a reminder to you that if you got questions about software engineering, career development, that kind of thing, leave them below in the comments. I'm happy to try and help answer. Um, or you can go to codecomute.com and submit stuff anonymously that way. And uh of course I will try to make video responses for folks so that we get to help other people or try to at least.
So thanks for watching and I will see you in the next one. Take care.
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- What trade-offs do you consider when deciding between building a desktop app (native) versus a web-based app?
- I think there are trade-offs you need to think about when choosing desktop native versus web-based. If you go cross-platform, you can reach Windows, Mac, and Linux, but that often detracts from the native UX and adds complexity and cost. Desktop-native development can deliver a more native experience and performance, but you may have to tailor for each platform or pick a cross-platform kit with compromises. Web-based apps can work across devices in the browser, but there are trade-offs in UX and how you access native features.
- How does ownership and subscription pricing affect the shift to web-based apps?
- I don't think ownership of a local copy is the core concern for most users. For example, I mostly do things in the browser even for Office, and I see moving to web-based software as aligning with a service and subscription model. So the ownership argument feels a bit dated to me.
- When does desktop development still make sense given the shift to web-based apps?
- I think desktop development still makes sense in scenarios requiring high performance and a fully native experience on a specific platform. If you need the best possible native UX and performance, going native can be worth it, though it means more platform-specific work. I also think that when you can tolerate some UX compromises and want cross-platform reach, a web-based or cross-platform solution can be appropriate.