GPL incentivizes people to creates web apps instead of desktop or native mobile apps. This way they can reuse GPL pieces without open sourcing their derived works.
Developers are probably OK with that, they can charge monthly fee for a SAAS, also it’s easier to develop software for just 1 hardware configuration + one web browser (or a few browsers if you support mobile).
However, as an end user, I prefer native apps. They don’t require internet connection. I’m in full control over my data. Native apps are often faster, even smartphones have rather high count of these GFLOPs in both CPUs and GPUs, even when the servers are fast and over-provisioned, network latency often kills the performance.
GPL is hardly the primary factor driving web over native. A true write once, run anywhere, frictionless install, no gatekeepers platform has a lot going for it.
Despite I never worked on modern web apps, as a user, I don’t believe it’s true. I observe broken web apps more often than desktop apps.
Browsers are incredibly complicated these days, the APIs they expose to developers are less stable than APIs exposed by operating systems. The internet between frontend and backend is a huge source of bugs (latency, end-point security, packet inspection in enterprise, public routers using custom web-based authorization forms). Some web apps collect their dependencies in runtime from all over the Internets and become broken when these third parties update something.
> frictionless install
For mobile platforms or UWP it’s equally frictionless. Windows desktops have ClickOnce, and even with traditional MSI installers clicking “I agree-next-finish” only causes minimal amount of friction.
Web APIs go through a standardization process and have multiple independent implementations. Can't say that about any operating system API except POSIX. Web pages from 30 years ago still load just fine - that's plenty stable. Third-party dependencies are an issue for all apps, not just the web.
Mobile gate-keepers historically do a pretty poor job and take a 30% cut for the privilege of denying your bugfix update. Can't recall the last time I had a misbehaving browser tab kill my phone's battery or harvest my contacts without consent; can't say the same about mobile apps.
At these levels of complexity, it’s impossible for these multiple independent implementations to be 100% compatible. As a programmer consuming an API, last thing I want is multiple incompatible implementations of that API.
> Web pages from 30 years ago still load just fine - that's plenty stable.
HTML as a document format is not an API, and is indeed pretty stable even over decades.
Modern SPA web apps don’t view HTML as a document markup language, instead they view HTML+CSS+JS as an API. Unlike HTML as a markup language, I don’t believe that API is stable.
> Third-party dependencies are an issue for all apps, not just the web.
With the exceptions of malware, anti-malware, and other questionable use cases, apps don’t usually download their third-party dependencies from third-party web sites each time they launch. Many web apps do.
> Can't recall the last time I had a misbehaving browser tab kill my phone's battery
Try a page that uses WebGL + web assembly.
> or harvest my contacts without consent
Very unfortunate indeed. I think that was an oversight of platform vendors. Instead of requiring user’s permissions to install apps, they should have given user choice to install the app but fake the APIs with dummy data: black frame for camera when denied, empty contact list for contacts when denied, and so on.
I've developed web apps for years and don't remember any time when I needed to use GPL software anywhere in the web stack. Pretty much all tools are BSD/MIT-like. So I'd say this isn't a contribution for web apps being developed instead of local software.
Which is kind of why the GPL should probably be obsoleted by the AGPL (or even something much stronger, that makes the situation with services being constructed out of libraries and then used two levels indirect more clear).
Great comment: more in general, dual licensing favors (or at least, does not stand against) the development of proprietary software -- so it may be ok for current users of the GPL licensed product, but it definitely impacts the direction of innovation
GPL incentivizes people to creates web apps instead of desktop or native mobile apps. This way they can reuse GPL pieces without open sourcing their derived works.
Developers are probably OK with that, they can charge monthly fee for a SAAS, also it’s easier to develop software for just 1 hardware configuration + one web browser (or a few browsers if you support mobile).
However, as an end user, I prefer native apps. They don’t require internet connection. I’m in full control over my data. Native apps are often faster, even smartphones have rather high count of these GFLOPs in both CPUs and GPUs, even when the servers are fast and over-provisioned, network latency often kills the performance.