Making a GTK application in Haskell, part 1
floreal.tech
floreal.tech
This loses all non-persistent UI state such as scroll positions, half-entered text etc. etc.
Not really a workable architecture for a real app. React was invented because of this problem (how to make functional-style view building actually work...)
Something that could be a monad is some sort of widget builder. You would be able to imperatively describe the construction of a widget. Then "running" that monadic computation would return a widget, or something along those lines. That monad would then most likely just be some sort of state/writer monad.
click it for a better time
Anyway, the website seems to be fixed now, nice!
I started to learn it back then via ruby-gtk2. It was not the best experience but I learned several key things pertaining to widgets and the UI. Then came gtk3; it was in some ways worse than GTK2, but it also brought a few improvements such as the partial CSS support. I always miss that when I use e. g. wxwidget.
Then came GTK4 though and things changed. Tons of old things broke or no longer worked. Simple things such as main_window_widget.move(0, 0) for top-left positioning (I added an alias to this, .top_left in ruby and that worked nicely); there are work-arounds to get the old behaviour, but this is just one example of so many more things that were eliminated. GTK4 is a GNOMEy-toolkit and GTK5 will be even worse since it will be wayland-only.
"Interacting" with the GNOMEy-GTK devs is a total waste of time and I am hardly the only one who had that experience. For GNOMEys it may be a useful platform, but GTK no longer is a general toolkit really, despite claims by the current GTK devs otherwise. Why would we non-GNOMEys want to keep GTK on life support? There really needs to be a toolkit that can work in a much more de-centralized way. Sadly I also don't have a good idea here, since funding is an issue and GUIs seem to have taken a huge hit ever since the world wide web became dominating.
GTK4 changed a lot though, like they do not even try anymore, deprecated font dialog because that is better done with XDG portals, but such thing does not even exist. How will that work on macOS and Windows, it cannot? Or what they did with the menus. Toolkits should be user oriented and should not have vision, it just needs to work and provide controls, events, etc., you cannot even position windows in macOS and Windows with GTK4, that is not toolkit that works for users.
I am working on the IUP fork here https://github.com/gen2brain/iup-go , one toolkit to handle them all, and I did my best for GTK4 backend, but from 14 drivers/backends I worked on, it was the worst experience and I had to fight battles with it.
I hope that, if desktop / laptop as a platform remains, there will appear an interpreted, platform-independent toolkit / language for GUI specifically, along the lines of Tk, or QML, but much lighter weight than HTML+CSS.
Manifestly yes. There's even a list of GTK4/Adwaita apps available here: https://arewelibadwaitayet.com/
please tell me that's a typo
[1] https://www.reddit.com/r/linux/comments/9emwtu/comment/e5qss...
I think it depends on your district. On some distros (looking at you arch!) I think GHCup and keeping things in /home and out of your system package manager is the better approach.
That said, I never had issues with Pandoc on any distribution. But I have struggled with Pandoc extensions, before I got NixOS (and flakes).
On the other, I bet anyone curious about Haskell would love NixOS.
In regards to Haskell not being trouble, though: I'm not too familiar, but I thought stackage & the 'stack' tool would ease over any pain.