3 ms·
The author has an unshakeable web-centric perspective, and it make for a bizarre, alien, and insulting read. Here's my kindest take as not-a-web-dev: > Static
by millstone 7y ago
The author has an unshakeable web-centric perspective, and it make for a bizarre, alien, and insulting read. Here's my kindest take as not-a-web-dev:
> Static is globally fast. When you deploy, we can hoist all your static assets to a global CDN network. By removing the server from the equation, we can also maximize availability by reducing and even altogether eliminating cache misses.
You don't "maximize availability" by shuffling from one server to another. You do it by shipping the assets as part of the app. That actually "removes the server from the equation."
> It [static] gives you "O(1) TTFB", which is a fancy way of saying you get stable and predictable latency to the first byte of the screen. Always, because no code, servers, sockets, or databases are involved.
Hosting any asset on any server means that code, servers, sockets, and probably databases are involved. "TTFB" is nonsense.
> I propose the following alternative definition of native: an app that behaves to the quality standards of the platform it's deployed to. This explains why Electron has been so successful in re-purporsing the web stack to the Desktop platform. A well engineered Electron app will give you "native" platform fidelity, regardless of programming language.
Indeed "native" is descriptive, not prescriptive. Any app which looks and feels native, is native! But Electron apps struggle to meet that bar. Electron is succeeding because it taps into a giant well of web developer expertise; software quality is secondary at best.
> This means it's only a matter of time before React Native (and similar technologies) replicate the success that Electron has had on desktop
"JS orchestrating native widgets" and "single-site-browsers-masquerading-as-desktop-apps" are very different futures.
> Electron app memory usage: 150 MB
> Native app memory usage: 0 MB (because you never ship it)
I agree the author has never shipped a native app.
- chrismorgan 7y agoTo elaborate on your React Native point, which exact conclusion I came to before reading your comment: Much of the reason that Electron has met with such success because it allows you to conveniently package what you already have or were already going to be making (your web app), and add small amounts of new desktop-like functionality around it. To be sure, there are Electron apps that have only ever been Electron apps, but I think it’s fair to say that most Electron projects have been more like “example.com, but as an app”. React Native, on the other hand, is about providing a familiar language and framework (JavaScript and React) on which to build something entirely new. That’s quite a different proposition, and one that I don’t expect to ever achieve such success.
- The_rationalist 7y agoWhat about Ionic then?
- WorldMaker 7y agoIonic, or more specifically Ionic Capacitor, is Electron on desktop today at least, so a lot of the same caveats apply to anything else mentioned about it. On mobile it is a successor to PhoneGap/Apache Cordova, and there does at least use "native" web views rather than bundling its own like on desktop. The rest of Ionic is somewhere in the middle.
- tim-phillips 7y agoThis comment shows that you are indeed "not-a-web-dev". It sounds alien to you because you don't understand the web. TTFB means Time To First Byte, which is important in web since this is when anything meaningful can start to happen for the user. Having the markup as static on the edge means that you aren't hitting a db or a traditional server that will render your markup, allowing your users to gain the benefits of a CDN, including edge caching. This maximizes availability because your app is being served globally, and TTFB is predictable instead of chaotic during times of high load. This method transcends servers by making your app available from "every" edge server. https://www.cloudflare.com/learning/cdn/glossary/edge-server/ https://www.cloudflare.com/learning/cdn/glossary/edge-server...