Remix.run Logo
drnick1 5 hours ago

> But, in 2026, writing a greenfield application in a memory-unsafe language like C++ is a crime.

I disagree, the GUI layer is far from behind a safety critical component, and C++ is a battle-tested choice for everything from GUI, videos games, to industrial applications. If C++ is safe enough to control airplanes and nuclear reactors when used well, it is certainly safe enough for something as trivial a GUI.

The article also fails to mention frameworks like Qt, arguably the best way to write GUI apps in 2026. Qt is native (C++), has built-in memory safety features (but no GC), and is cross-platform.

KellyCriterion 5 hours ago | parent | next [-]

...but it is comfortable and actually a PITA compared to any managed execution environment :-)

Sure, embedded systems are a different anmial...

vovavili 5 hours ago | parent | prev | next [-]

Why would the article mention Qt? Qt is native for a subset of Linux distributions, not Windows.

hxorr 2 hours ago | parent | next [-]

Qt is arguably the best cross platform toolkit to target when writing big/complex apps

hermitcrab 3 hours ago | parent | prev | next [-]

Qt for Windows compiles to a win32 or win64 .exe. That is native in my book.

jcelerier 3 hours ago | parent | prev [-]

Even Microsoft shipped Qt apps as part of Windows though, for instance onedrive

glitchc 5 hours ago | parent | prev [-]

Yet we cannot consider Qt to be native app development since every app requires the Qt runtime. Native means system libraries only.

spacechild1 3 hours ago | parent | next [-]

There is no Qt "runtime". Qt is just a library.

> Native means system libraries only.

Every non-trivial application will eventually use third-party non-system libraries.

I think "Native app development" has at least two meanings:

1. narrow meaning: the program uses a native UI toolkit (Win32, Cocoa)

2. broad meaning: the program targets one or more specific platforms and the UI is not not just a webview

Even with the narrow meaning, WxWidgets would qualify as "native development" (because it uses native UI toolkits under the hood), yet it is still a third-party library.

201984 5 hours ago | parent | prev | next [-]

>Native means system libraries only.

Since when? To me, anything not webview-based is native, though you have varying degrees of integration into the platform.

Rohansi 5 hours ago | parent [-]

Why single out WebViews? Would you consider Flutter native? It renders widgets on its own just like a WebView does.

201984 4 hours ago | parent | next [-]

Most toolkits, including WebUI 3.0, render widgets on their own, so you can't distinguish just on that. I'd say anything written in an interpreted language is not native, and Javascript falls into that category. Dart at least is possible to compile ahead of time, and so is C#.

debazel 3 hours ago | parent [-]

WebViews aren't written or rendered with interpreted languages either. It is also usually not Javascript that makes browser based apps so heavy. It is almost always the whole browser stack that is making them large and memory hungry, which is mostly written in C++.

You can also hook a WebView up directly to a low-level language and skip Javascript entirely, so does that mean Rust + WebView = Native?

jcelerier 3 hours ago | parent | prev [-]

For me, native means "I can integrate a platform widget in the middle of it". For instance, with Qt, GTK or wxwidgets it's entirely possible to integrate a Win32 / Cocoa / X11 component right in the middle of your app (and it's super important for instance for things such as integrating audio plugins, where the plugin only gives you a HWND or NSView and you have to draw your application Chrome around it, have it follow resizes, etc.)

mycall an hour ago | parent [-]

So then flutter will let you do that, with a little elbow grease.

drnick1 4 hours ago | parent | prev [-]

I have always considered Qt apps (even for Windows) to be native. Think of VLC, VirtualBox, etc.

userbinator an hour ago | parent [-]

I'd consider them "naturalized"; close enough to native that you wouldn't notice any big differences, but there are still minor ones if you know what to look for.