4 ms·
Ask HN: Why is web tech used to make apps?
Why are so many apps these days glorified web pages running in a browser that pretends not to be one?
- There are much better way to target multiple platforms while sharing code: Xamarin, React Native etc. (and not so good ones like QT/Swing and the like, I guess)
- Apps made this way are not native to any of the platorms they run on - best case scenario they replicate platform UI and conventions poorly and with great effort, worst case they look nothing like native apps. Not as bad as Java does but close
- HTML/CSS was never meant to be used to create UIs, they are meant to describe and style (hyper)text. It's a necessary evil when targeting browsers where there's no alternative, masochism otherwise
- They are also slower and (much) more memory hungry than native apps - Slack happily eats 300+ megs of ram to do very little
- They mean having to use JavaScript, instead of a better language with better tooling support
- Many/most of the time the use case can be served by an actual web site/app - if you are making something that needs to connect to a database on a remote server to be of any use, why are you making an app to begin with?
Given the above downsides, why are Electron and the like so popular these days?
- onion2k 9y agoWeb developers are more common and a lot cheaper.
- starptech 9y agoTo have a win-win situation. Most projects are starting with a web project and are expanded to desktop and mobile. If you can reuse your code, technology without any big impacts in performance or UX you will win in any aspect.
- onion2k 9y agoMost projects are starting with a web project and are expanded to desktop and mobile. That really isn't true. Most mobile apps don't start out as web projects.
- starptech 9y agoThat's correct but I'm looking it from a completely different angle. Many projects starting with a responsive web app to support desktop and mobile users at once. When the integration isn't great they will use a shell like Electron or PhoneGap so far from a web-based background. The reasons for this are clear: - Same technology - Reuse all or many code - Frontend people are easier to hire and cheaper