I've been really enjoying the reboot of Pebble with their new Time 2 for a few months now. I'm using ForecastWatch 2 watch face which crams calendar, watch and weather data into one screen and it's perfect. Lasts weeks on charge too. For apps their built-in workout apps etc are perfectly fine and I built some of my own apps quite easily.
My only complaint is that app limitation are apollo moon lander level of bad, like 128KB code and 256kb resources. I'm not particularly versed in optimizations patterns in here, but building fun stuff is really hard with these limitations. So what you have to do is roll a "companion app" android app that does all compute on the phone and streams it to the watch but that sucks.
One obvious app I tried to build here is a calendar with a daily message and I've tried to include a little graphic emoji with each day. You can't do that because you can only fit around 100 emoji graphics and the font on Pebble Time 2 only has 50 emojis. So at best you can get 150 icons which is not enough for unique icon for each day. This is kinda sad in 2026 ngl.
This practically means you can't ship any runtimes, standard libraries, nor any big libraries with your app. Your app has to be just the business code and all the extras has to be stuff already on the watch. Crucially, size requirements like this doesn't mean you can't write slow python apps or whatever, so long as the watch ships with a python interpreter.
I suspect 10MB might be more friendly in the current day and age.
It already comes with a standard library, but, since the drawing algos left a lot to be desired, my watchface ships with its own image format and rendering code to allow for handling of transparency and blending modes (since you can not only use the integrated render utilities, but simply draw directly to buffer with whatever you bring)
So all in all: it has been done.
That being said: you mention python, and I'm not sure where this is coming from. When in rome, you don't drag your favourite language throught the streets unless it is roman latin.
My only complaint is that app limitation are apollo moon lander level of bad, like 128KB code and 256kb resources. I'm not particularly versed in optimizations patterns in here, but building fun stuff is really hard with these limitations. So what you have to do is roll a "companion app" android app that does all compute on the phone and streams it to the watch but that sucks.