I work in a warehouse, and the specific thing I do requires a laptop. They've tried to train backups for me, but they have a hard time finding people who know how to use a computer. Most people don't - they only have a smartphone.
But this is precisely the problem. And also why mobile apps aren't really native, nor becoming native. Developers think, "since our app is just a thin wrapper on our web service, why not just make a webview and do everything through the web?". APIs being opaque to the system means you don't own the data. Saving actual files in actual filesystem is still much better for user freedoms.
> A mobile device does about 99% of what they need -- most people aren't "creators", they don't author websites, write code, edit videos, design buildings, etc.
True to some extent, but how many of those things they would be doing if the mobile platform wasn't limiting them? Users don't imagine the hypothetical things they could be doing, they choose from what's available.
I call it “the Photoshop test”: Pretend you’re Adobe and you just invented Photoshop in 2018. How do you build the GUI for each desktop operating system?
...considering you need to do things like OpenGL hardware acceleration, 30-bit color, support binary plugins, and access certain low-level hardware features (e.g. supporting TWAIN, Pro-level broadcast media devices and interfaces, etc).
On Windows it’s an unfortunate situation because all of the “new” application frameworks since 1998 are unsuitable: WPF is .NET only, UWP requires your application to run in a sandbox, you can’t even use MFC because it’s tightly coupled to User32 with its lack of support for 30-bit color. The only choice is the long hard road of doing almost everything by yourself through low-level interfaces with the DWM. Not pretty.
The sad thing is that UWP is very capable - if it weren’t for the sandboxing then it would be perfect (that, and you would need to build your own widget library as UWP’s stock set is almost entirely touch-first controls that are utterly inappropriate for a mouse-first desktop UI)
There's so much malware, anti-virus that slows down all I/O, browser toolbars, etc. Just open Internet Explorer and see how long it takes. On my computer it takes <1s. On many computers I've used in peoples' homes, small offices, etc. it's more like 10.
Calling that anything but "broken" seems like a misnomer. Look at the 99% of computer users, not the 1% power users/people at companies with good IT groups.
I don't think anyone ever liked developing for the web. It solved three problems pretty well:
- Data portability: log in from anywhere, have your data at your fingertips.
- App model: no broken installations of programs into desktop environments, dependency problems, DLL hell
- No concern about the mostly broken Windows desktop: viruses, etc.
(1) is mostly a solved problem even on desktop, the web just got there first. We have everything from Dropbox to various data APIs.
(2) is largely solved in mobile app development. It's instructive to consider how: very locked-down app APIs to the operating systems (e.g. no dumping files all over the place), standard packaging formats and distribution channels (.apk, .msi), etc
(3) is also mostly solved on mobile.
I would go as far as to say that in 2018, software should be native-first. And indeed it is, in mobile. The major shift is desktop->mobile. Mobile development has much more in common with native desktop development than web development. The reason desktop isn't likely to come back is because it's a niche market. Everyone has a phone but if you aren't in tech circles, it's surprising to see how many people barely use computers at all, especially those who don't work in offices, older folks, and the less well-off. A mobile device does about 99% of what they need -- most people aren't "creators", they don't author websites, write code, edit videos, design buildings, etc.