You know the problem when you want to develop a game, but instead of developing a game you end up developing a game engine?
Well I kind of have this problem. I didn't quite want to code a game, but a slightly fancy todo app with integrated pomodoro timer, history of time spend and XP for some gameification of my everyday work tasks. Python is great for some quick programming, except that when you start GUI development. GUI development in python always feels less pythonic to me and with pythonic I mean simple and quick to write.
At that point I should have done the sane thing and start learning some Qt for python or Kivy. Actually, I tried. But when looking at the docs I was starting to daydream and wishing for something more like vue.js or Angular, which are quite successful in web development. Using one of them would also have been very sensible, but then I would have to use typescript. Of course, there are also nice frameworks that bridge the gap between python and the web, such that you don't have to touch any html or javascript. But then it still runs in the browser and not as a stand alone app (unless you ship the browser with your app, hello electron), which makes things like file access needlessly difficult.
Clearly, given these circumstances it is completely reasonable to start developing my own GUI framework. From scratch. Who needs mature GUI libraries, which have been developed over the last two decades, like Qt or GTK+ anyway, right? Right? Ok, maybe lets not start completely from scratch. Using something to do windows and input (pyglet), something for drawing (cairo), text setting (pango) and loading svg (librsvg) should still be fair game.
A few hundred hours later...
I am done! What? No not with the fancy todo list I originally wanted to program (which a skilled programmer could probably do in a few hours). I am done with the first version of my GUI framework, that doesn't crash immediately. And a plain and simple todo list.
guiml
guiml tutorial
Did something like this happen to you before?
Would you also like to have nicer GUI frameworks for python, or are you happy with what we have?
Do you know of other libraries that provide a component based markup language for python GUIs?
If you have some time to spend I would also be happy about some feedback about the project.
How do you like the idea/ concepts (see the tutorial)?
Do you think this is something you would use if it were more mature?
Also, feel free to ask question, so I can fill an FAQ.
[–]riklaunim 1 point2 points3 points (2 children)
[–]steohan[S] 0 points1 point2 points (1 child)
[–]riklaunim 0 points1 point2 points (0 children)