4 ms·
> And especially given that a whole lot of these apps aren't built by scrappy underdog devs but massive firms that could extremely easily afford native develope
by asoneth 3y ago
> And especially given that a whole lot of these apps aren't built by scrappy underdog devs but massive firms that could extremely easily afford native developers
I understand why someone would think that, but in my experience the economics for product owners aren't significantly different between scrappy underdogs and massive firms.
First, most new products start as a web app. If the product is profitable (or convinces someone with money that it will be profitable) the product owner is granted additional headcount to allocate.
In my experience, adding more user-requested functionality almost always has a higher expected return on investment than making fully native versions of the product for iOS, Android, or Windows. (I have no experience making software for Mac.) As much as I like using native apps myself, there are plenty of cases where I couldn't make a case that creating native versions would have a positive return on investment at all.
In summary, the number of products that are profitable enough to afford native development teams is small, and the number of those products where the native development team would pay for itself in increased profits is smaller still.
There are plenty of exceptions like games, legacy software, realtime systems, libre software, low-level utilities, Mac-only dev shops etc. But otherwise the economics don't seem to work out.
- ToucanLoucan 3y agoI mean, we had software for a good long time before Electron and it's contemporaries were an option. Somehow we still had prototypes, somehow we still had companies churning out native platform-specific software because there wasn't another way to do it. Now we certainly have more options but like, what good is more options that suck? I would personally love to have more software that is more expensive, is updated less frequently, and is made by people who use proper tooling to create and maintain it rather than an avalanche of programs that all do the same thing, badly. The fact that slack runs worse on an M1 mac than MSN messenger did on a Core 2 Duo in 2007 in my bedroom is a travesty and everyone involved in it should be ashamed of the product they're turning out.
- asoneth 3y ago> because there wasn't another way to do it Precisely. In some domains most customers will always choose the cheaper option. In those cases web apps resulted in a race to the bottom. Companies in those domains simply could not afford to cling to native software if they wanted to remain competitive. But of course you still find lots of native software in domains where a critical mass of customers are willing to pay more (or sacrifice functionality) for qualities like performance, security, reliability, etc. For example: games, fintech, military, virtual reality, video production, realtime controllers. I've worked in a couple of those domains and in those cases I am confident that web apps are a very long way away from displacing native applications. > everyone involved in it should be ashamed of the product they're turning out Before judging people for their decisions it's worth understanding why they make them. I know many developers who take pride in writing extremely performant software. All of them have either shifted to work for companies that are willing to pay them to do that or they've swallowed their pride to feed their kids and they scratch that itch by tinkering with open source or game dev on the weekends. > Now we certainly have more options but like, what good is more options that suck? I am not arguing that this situation makes your life better. It doesn't. I sympathize with your frustration and I also like using (and making) performant software. What I am trying to do is explain how we got here because I think it could help us find a way out. We either have to make performant software significantly cheaper to build or we have to convince customers to pay significantly more for it.
- ToucanLoucan 3y ago> Before judging people for their decisions it's worth understanding why they make them. I do understand. I understand it's infinitely cheaper to build a shitty webapp and port it to every platform. I know exactly why this stuff is so ubiquitous. Hell, I've even tried it over a few weekends here and there. There was a time I was looking to get into React simply because everyone and their mother is using it for all the reasons you've outlined here. Eventually though I found a job where a native app is much preferred for exactly the reasons you outline here: It runs better, and our leadership is one that's prepared to lay out a chunk of change to have software they're proud to show off and sell. In short: I know exactly what the tradeoffs are and why they're made. Doesn't mean I'm not going to judge them for it. It's great web tooling but when used this way it results in mediocre garbage applications that are magnitudes larger than they need to be, more often than not by some combination of developers or management that fundamentally don't care that it runs and feels like shit, and that tells me something about their long term product viability.