Skip Navigation

Resources to learn gui programming

Title. Also I'm not talking about any specific frameworks, I am more interested in learning about different concepts. Eg. State management etc. Or MVVM/MVC/MVP/MVI

From my brief exploration I've found out that "Retained mode" GUIs is what I need to look into more as well.

I've tried making guis before, was only able to wrap my head around tkinter - when I tried web stuff it just didn't click no matter how hard I tried.

2
2 comments
  • GUIs are much more complicated than they seem at first.

    My recommendation is to learn and get familiar with a specific framework first, before branching out to other frameworks and learning how they feel. Then and only then would I start learning about the concepts behind those frameworks.

    About the web stuff:

    When it comes to GUIs, web is a crazy constrained chaos.

    It runs everywhere, is backwards compatible by necessity, and yet is so fast paced that it experiments with new ways of doing things, makes mistakes, and tries to find ways around those mistakes.

    It's fast pace leads to it creating things that other GUIs end up looking to for hard lessons and inspiration.

    Web is easy to click, but only if you learn it properly. It has decades of old features that you shouldn't be looking at as a beginner.

    Beginners should only be looking at learning (and only moving to each new step once they fully understand the previous steps):

    • selectors
    • block model
    • display modes (block, inline, inline-block)
    • position
    • flex-box

    You can make any site you want with those basic concepts.

    The other stuff:

    If you're really really set on learning some of the concepts behind GUIs, you can have a look at the rust space which has a whole bunch of incomplete GUI libraries trying to solve problems. Creating a proper GUI framework for Rust isn't as simple as other languages. Rust's borrow checker means that devs can't just reuse existing linked lists and graph based solutions. Raph Linus is one of those devs who is involved in that space, and they're all experimenting and looking at each other trying to figure out which approaches will work best for them. You can see some of those notes here:

    • Thanks I'll read up on these. Yup know about Raph :) and I primarily write rust so I've been following the space closely.