5 ms·
Ask HN: Have we reached a tipping point when web apps are faster than native?
I noticed that .NET apps we much less responsive than web apps. Is it only me or is it also your impression?
- desindol 4y ago
- schoubey 4y ago.NET isn't native, doesn't it use the CLR? Even Java apps shouldn't be considered native as they use JVM. True native is apps written in C/C++ or Rust that are compiled to run without a virtual machine. I haven't seen any webapps faster than native apps.
- metadat 4y agoMy definition for "native apps" are platform-specific binaries which run locally outside of a web browser. Otherwise.. where is the line? you could claim that it must be handcrafted assembly in order to be native.
- _0ffh 4y agoNative, quite reasonably, means the application is compiled to the CPU's native machine code. Take as an example the distinction between Java and native apps on Android.
- wmf 4y agoMany people, quite reasonably, consider an app native if it uses the OS APIs without any intermediate portability layer.
- _0ffh 4y agoWhat is a VM but an intermediate portability layer? That's what VMs are made for, to be able to run the same VM code on different machines or different OSs without having to recompile. You don't use the OS's APIs directly from Java or NET, that's the whole point of the exercise. And if you find a way to do it anyway, you have defeated the purpose of the VM and could as well have compiled to native code.
- wmf 4y agoWeren't .NET and its APIs originally Windows-only and they only became portable later? And doesn't .NET have AOT support?
- metadat 4y agoFor Java, is the JVM apps run atop of compiled for the native CPU architecture? Does this matter?
- schoubey 4y agoJVM is a virtual machine with its own instruction set. Java code is compiled to this instruction set and not the actual's CPUs instruction set, hence not native.
- schoubey 4y agoThis is my understanding of native, thanks for putting out a better description.
- schoubey 4y agoNo one is asking for hand crafting, we are merely arguing that the absence of runtime environment which abstracts away from CPU's native instruction set. Hence I mentioned C, C++, Rust. Even GO and Haskell qualify as they are compiled to native instruction set of the CPU on which they run.
- devonnull 4y agoHow many such apps have you noticed this with? And have you done any benchmarking or collection of data? Or is this all anecdotal?
- julienreszka 4y agoOnly anecdotal. I'm asking to see if other people noticed and maybe have more data.
- jcusch 4y agoThere are probably a few reasons it might seem like web apps are faster. A few that come to mind are perceived performance https://developer.mozilla.org/en-US/docs/Learn/Performance/Perceived_performance https://developer.mozilla.org/en-US/docs/Learn/Performance/P... and optimization/offloading work to servers (caching, server-side rendering, APIs etc.).
- dekhn 4y agoIt is not my impression. I write Qt apps and they are damn snappy compared to the web.
- muzani 4y agoI don't think it's possible. Native cuts closer to the hardware and web browsers are built on so much stuff. I have noticed that mobile apps are replicating things like SPA for absolutely no reason, which actually lowers responsiveness. So it might be that. Perhaps there's a shift to writing code faster over performance.
- johntash 4y agoAnecdotal but I haven't noticed web apps to be faster than native apps. However, I have noticed apps claiming to be "native" when in reality they are web browsers in disguise wrapped around some sort of web app.