7 ms·
I say this as a web developer: web apps are worse than native desktop apps in almost every way. They are slower, less usable, less accessible, less integrated w
by Joeri 12y ago
I say this as a web developer: web apps are worse than native desktop apps in almost every way. They are slower, less usable, less accessible, less integrated with other software and they are harder to develop (although because most web developers never wrote desktop apps they don't realize how pitiful their tools are).
This is all true (or debatably conceivable), so why are so many apps web apps? Well, in my opinion, it's this: they are easier to deploy, easier to adopt, easier to bill, and much harder to pirate. Web apps are worse for end users and developers, but better for everyone else: the people who sell them, the people who buy them, the people who deploy them, and basically anyone who holds purchasing power.
- vlunkr 12y agoOne advantage of web apps is that they don't require an installation process. It's easier to convince someone to use your software if all they have to do is visit a link. But as the author said, your code is now running at a layer far from the hardware.
- seanflyon 12y agoAnd running in a sandbox, they are (mostly) unable to harm the users computer, which is big part of why it's easier to convince someone to use it.
- astrodust 12y agoThey are "slower" in that actions take longer, mostly because so much data has to be serialized, encoded, shipped long distances, decoded and deserialized before rendering, but they're "faster" in that updates happen instantly and transparently. Desktop software used to be very quick to respond locally, but updates would take weeks, months, or even years to get pushed out. Some applications, once sold, would never, ever get an update. You'd just buy the new version whenever that came out.
- agmcleod 12y agoI think you're right, and I like web applications and think they are a good avenue. However, looking at mobile apps and how updates work there, it is a nice middle ground. No doubt it's more essential as we're talking about phones, not desktops. But I think this sort of computing has come back in some ways.
- krschultz 12y agoFlip side of that last one, sometimes you would even buy a program, and it would still work long after the company that wrote it went out of business. These days, when a company pulls the plug on a web app, you are SOL.
- tel 12y agoWhich is, btw, another incentive for web companies as it forces large companies who do decide to make use of a web product integral to their operation willing to pay a lot more to keep the web company alive.
- enraged_camel 12y agoI personally prefer the latter. When you buy a license for a desktop application, the price you pay includes tech support and often times future upgrades. When the developer goes out of business, you lose out on all of that. In contrast, the vast majority of web apps are on a subscription model - as long as you continue to pay, you're getting your money's full worth. Sure, it can be a bit disruptive when the company pulls the plug, but in most cases there are reasonable alternatives that are both easy to discover and easy to start using (usually within the span of minutes).
- icebraining 12y agoUnless it's Free Software, like Newsbeuter.
- astrodust 12y agoI'd take a software-as-a-service solution that I can replicate the data from in an open standard format like JSON or XML over a closed-source application with an impenetrable binary file format any day.
- mwcampbell 12y agoThat seems like a false dichotomy. There are SaaS applications with no data export option, and there are closed-source locally installed applications that use textual data formats (e.g. XML), if only as a matter of convenience for their developers.
- deleted 12y ago[deleted]
- silverbax88 12y agoI agree with everything you've said (with the exception of speed in many cases), and I would add: easier to maintain. Even supporting multiple browsers is NOTHING in comparison to supporting millions of potential OS/machine configuration installs. That, and the fact that your app can be available everywhere without having to have it on every machine you want to use it on. The 'speed' thing is mostly because we have so many inexperienced programmers writing web apps in the world - it's easy to publish these days but I don't think there is that much focus on making your app run really well. It's mostly UI focus. For example you can use Bootstrap and it handles a lot of UI, but most coders don't know what that UI framework is actually doing. Not slamming Bootstrap at all, just using that as an example that many people would know.
- jacquesm 12y agoI never had much trouble supporting those 'millions of potential OS/machine configurations' but keeping a web-app on the rails for multiple browsers + mobile is the stuff of nightmares. It is almost as if they break things on purpose.
- BadassFractal 12y agoweb apps are better for developers. Write once, run on multiple OS / browsers. They're easier to maintain, you don't need to go through approval process or worry about your users running a version that's 3 months behind, meaning you can iterate a lot faster.
- bramgg 12y ago> less usable In what way? > less accessible Nope. > harder to develop Not when you're trying to develop for ever platform, mobile and desktop. Your other points still stand.
- pessimizer 12y ago> In what way? Slower. Network-bound. > Nope. Require internet connections. Require vendors to stay in business indefinitely. The other is a matter of taste.
- dasil003 12y agoYou're overlooking the fundamental quality of the web and why a lowly document format and simple protocol eventually became a poor man's GUI platform that has been slowly rolling forward and crushing the desktop app market in its wake. The web is a fully cross-platform/cross-device, installation-free, and open-standards-based platform. Although traditional GUI toolkits can chip away at different aspects of this, it is actually a much more intractable problem for them to solve than the aspects you cite as native desktop apps being better at. For example, interoperability between web apps has gotten steadily better as HTTP APIs have evolved, today's generation of web apps often make interoperability a selling point (Slack is a good example). From a traditional single-platform native developer the mechanism for this looks crufty and ill-defined, but that is the price you pay for a truly open standard not controlled by a monolithic entity. For instance, for all the beauty and elegance of Microsoft Visual Studio, there is no way they can bring that experience to OS X and Linux, let alone all the mobile platforms. Native app developers have been wringing their hands over the "inferiority" of the web for 15 years now, but all the while ignoring that the web does something which no technology has ever done in terms of ubiquity. And what enabled this was the trojan horse of HTML/HTTP's initial simplicity. Hell, the simple HTML documents for which the format is ideally suited still outnumber apps by an order of magnitude, but the beauty is you have one platform that can support everything on the complexity continuum from the simplest documents all the way up to sophisticated business apps.
- kipple 12y agoAgreed, especially about integration. Many web apps expose their functionality with RESTful JSON APIs or similar. It seems to me that integrating data & functionality from across web apps is far more common than in the desktop setting. I've never built a desktop app, but just from a users perspective most of my desktop apps are isolated pieces of functionality while web apps are entangled in the greater web community. My background is mostly web app development, and when I started I was using open technologies such as PHP and NodeJS. This summer I'm doing some work in Visual Studio with a C# .NET MVC 4000 web app. Visual Studio is a slick interface _mostly_ with some great convenience _usually_ but overall it feels suffocating compared to slapping together random tangles of open web technologies. I like the messy open standards...
- nmjohn 12y agoIt amazes me how this is always overlooked, why are web apps used over desktop apps? Because it's easier for the end user. Have you ever tried to get a user to install a piece of software? It is hard. They don't know what is going on, is it going to harm their system, is it a virus? What are these terms I'm agreeing to? Whereas a web app they go to the site and BOOM it's done, loaded, and ready to go. Having to download and install a program makes a lot of things a non-starter for many users. A lot of us struggle with that concept due to a lack of empathy for a general computer user. I have downloaded three programs today alone and didn't think twice about it. But that is just not going to happen for the vast majority of users, and is one of the areas where we (software developers in general) have a hard time empathizing with our end users on.
- JoeAltmaier 12y agoSure would be better if desktop apps could be sandboxed like web apps. Installation would be less risky and less questions asked.
- nmjohn 12y agoThere are programs that do this, such as sandboxie [0], or even a VM. But none of them are very user friendly to computer novices. [0]: http://www.sandboxie.com/ http://www.sandboxie.com/
- frik 12y agoThe Windows world needs an standard application sandbox for Win32 applications like iOS, Android, Linux (docker) and FreeBSD (jail). WinNT has the functionality inbuilt since NT 3.1 but the Win32 shell doesn't expose it.
- kalleboo 12y agoMac OS X has done this since the Mac App Store was introduced. Doesn't Windows 8 do it for Market apps?
- rimantas 12y agoYou know, once GMail was the web app. Now I don't use it in the web form anymore, but through native clients.
- SixSigma 12y agoAll well and good but which of my desktops would you target. I'm typing this on Android 4.4, though I might have picked my 4.1 tablet. Or my Debian laptop running 64 bit Xfce. Or my Debian Arm netbook running Plan 9 from user space. Or I might be on a vnc session to my virtual servers, either plan9 or CentosVM. Or might be at my Windows 7 desktop. All of those are happy with Web Apps.
- icebraining 12y agoOther advantages for the user: - They can run 24/7 without having to keep your machines on. You can fix that by having a native app with a server backend, but then you lose some of advantages of native apps. - They're cross-platform. For Linux users, but even for OS X users, how many times have we seen an Windows app that is a pain/impossible to install even on Wine? - They run without admin privileges (e.g. work machines) and even without permissions for execute unknown binaries. - They're less likely to infect your system. - The frontend is usually more customizable (e.g. it's much harder to make something like RES[1] for a native app) [1] http://redditenhancementsuite.com/ http://redditenhancementsuite.com/
- Shorel 12y agoI think I have achieved the same easy of development of the very old FoxPro, that is, having one form for both create and edit an item, with the combination of Laravel and AngularJS. But of course much more is needed. FoxPro is ancient, forgotten tech.
- blendo 12y agoWeb apps could be better, for some X, <script src="/myapp.X" type="text/X"> where X != "javascript". But only Google, MS, Apple, and Firefox working together can make this happen.