Remix.run Logo
com2kid 10 days ago

> Even with help from the "world's best" LLMs, things didn't go quite as smoothly as we had expected. They hallucinated steps, missed platform-specific quirks, and often left us worse off.

This shows how little native app training data is even available.

People rarely write blog posts about designing native apps, long winded medium tutorials don't exist, heck even the number of open source projects for native desktop apps is a small percentage compared to mobile and web apps.

Historically Microsoft paid some of the best technical writers in the world to write amazing books on how to code for Windows (see: Charles Petzold), but now days that entire industry is almost dead.

These types of holes in training data are going to be a larger and larger problem.

Although this is just representative of software engineering in general - few people want to write native desktop apps because it is a career dead end. Back in the 90s knowing how to write Windows desktop apps was great, it was pretty much a promised middle class lifestyle with a pretty large barrier to entry (C/C++ programming was hard, the Windows APIs were not easy to learn, even though MS dumped tons of money into training programs), but things have changed a lot. Outside of the OS vendors themselves (Microsoft, Apple) and a few legacy app teams (Adobe, Autodesk, etc), very few jobs exist for writing desktop apps.

Aurornis 9 days ago | parent | next [-]

You left out the next lines, which add some important context:

> Then we tried wrapping a NextJS app inside Electron. It took us longer than we'd like to admit. As of this writing, it looks like there's just no (clean) way to do it.

> So, we gave up on the Mac app.

They weren't writing a fully native app. They started with a NextJS web app and then tried to put it inside Electron, a cross-platform toolkit.

All the training data in the world about native app development wouldn't have helped here. They were using a recent JS framework and trying to put it in a relatively recent cross-platform tool. The two parts weren't made to work together so training data likely doesn't exist, other than maybe some small amount of code or issues on GitHub discussing problems with the approach.

pbronez 9 days ago | parent [-]

I thought that was odd too. There are lots of ChatGPT clones implemented as native MacOS apps.

The main advancement in TFA is using the new Container Swift API for local tool use. That functionality would probably be a welcome contribution to any of these:

https://github.com/Renset/macai

https://github.com/huggingface/chat-macOS

https://github.com/SidhuK/WardenApp

https://github.com/psugihara/FreeChat

Aurornis 9 days ago | parent [-]

I think they started with what they knew (web app development) and then wanted to wrap it into a standalone app later.

WhyNotHugo 8 days ago | parent | prev | next [-]

> This shows how little native app training data is even available.

FWIW, we have very few desktop native apps nowadays. Most apps are either mobile, cli or web-based. Heck, I’m sure there’s more material online on writing cli apps than gui apps.

thorncorona 9 days ago | parent | prev [-]

I mean outside of HPC why would you when the browser is the world’s most ubiquitous VM?

esseph 9 days ago | parent | next [-]

Because the browser is gross and you can reclaim lot of performance and security when you don't need to use it.

moffkalast 9 days ago | parent | next [-]

Sure but you're also constrained to only one platform. It's like the C++ vs Python argument in ML, yes writing everything in low level high speed highly optimized native code would be perfect, but ain't (almost) nobody got fucking time or skill for that.

esseph 9 days ago | parent | next [-]

"Lack of skill" is a real problem I've seen grow over the past decade.

No matter the company I'm with or in conversations with others at other places, there just hasn't been a solid intake of junior programmers / sysadmins / network engineers / etc.

Which sucks, because now there's very few junior staff to teach, which makes backfills harder.

Any junior positions that do seem to happen are just a money funnel to offshoring and the results are /mostly/ less than stellar and ultimately aren't setup to solve the knowledge transfer problem in a meaningful, long-term way.

senko 9 days ago | parent | prev [-]

Cross-platform toolkits are (still) a thing.

zelphirkalt 8 days ago | parent | next [-]

Recently I tried to make a GTK app, but the problem was, for none of the languages I tried the bindings were working well enough. So in the end I decided to make a local first static web app in Python and Django. Everything is rendered server side and state is stored in the database. If I ever finish it, it should be easy to bring it online. And then maybe registrations ...

moffkalast 9 days ago | parent | prev [-]

Yeah they're called Electron now ;)

Qt is such a pain to work with it's almost like it's intentional that people should avoid it.

rubymamis 4 days ago | parent [-]

I can't disagree more. I've written extensively about the joy of programming using Qt in my blog post: https://rubymamistvalove.com/block-editor

esseph 9 days ago | parent | prev [-]

I mean, why aren't the apps on your phone all just webapps, right? (Also, eww)

jakelazaroff 9 days ago | parent [-]

Mostly because native apps can track you far more invasively than web apps can, and companies are hungry for your private data.

esseph 9 days ago | parent [-]

Not sure I agree with that.

It's a lot better on battery life and superior experience, especially if you are traveling or around areas with bad cell service.

Cookies track me around on websites all the time + modern telemetry is pretty crazy.

sillyfluke 9 days ago | parent | next [-]

>Not sure I agree with that. It's a lot better on battery life...

The parent is talking about privacy and your first counter argument is privacy irrelevant battery life?

The tracking and telemetry abundance in native far exceeds the browser. Nevermind a lot of apps remain running in background because the user forgets or can't be bothered to close them.

Follow the money. Why are random companies begging me to download their mobile app and get ridiculous discounts in the process whenever I use their website? Why are weather apps known to be spyware vectors but weather websites don't have that stigma?

r_lee 9 days ago | parent | prev [-]

The permissions that apps can get on Android even by default are pretty invasive, like querying other apps/processes and etc iirc...

esseph 9 days ago | parent [-]

Chrome being able to scan your network on desktop is still insane to me.

spauldo 9 days ago | parent | prev | next [-]

A lot of us just don't want to be web developers. I mostly write IEC 61131 code, with sprinkles of BASIC (yuck), C, Perl, and Lisp. I've used JavaScript and quite frankly, you can keep it.

typpilol 9 days ago | parent [-]

Does anyone else think javascript bad? Wow brave!

spauldo 9 days ago | parent [-]

Having personal preferences is brave? I've got tons of those! Maybe I'll go start some bar fights.

wolvesechoes 9 days ago | parent | prev | next [-]

If you want something better than UI designed for toddlers

anthk 9 days ago | parent | prev [-]

Offices when the performance matters against shitty web apps.