The Future of Thunderbird – Modernizing an Ancient Application
youtube.comFor me desktop software feels extremely difficult to change and rearchitect to change swiftly.
In some ways Mozilla achieved the impossible: a truly cross platform, compatible desktop application infrastructure that is powerful and rich. It can play video, show images and play sound and do 3D graphics. Unfortunately the market doesn't value those things, it thinks of them as dated. Firefox market share where it is.
A request/response server side application can be changed by adding endpoints, or redesigning or adding layers or database schemas but GUIs are hard to update easily by comparison because everything is so brittle and linked together so thoroughly.
I wrote toy proof of idea that GUIs could be additively defined declaratively. You define the layout by describing things in relationship to eachother rather than collection classes arranged in a tree. Behind the scenes, it IS a React tree underneath but in additive-guis in attempt to create GUIs that were responsive *to change of descriptions rather than declared positions*. you should be capable of describing the GUI with declarative description of how it should look *and* its behaviour. Think of it as CSS for observed behaviour.
https://github.com/samsquire/additive-guis
Writing code to manually maintain widgets in a hierarchy is error prone and slow to develop and adapt and change.
I worked on an Android mobile banking application and I wouldn't want to rearchitect the application.
I would love to understand Qt better but I find it very hard to understand to architect good software as a GUI.
I have looked into immediate mode GUIs.
I started writing a layout engine based on ORC Solver paper but it's very early days
https://github.com/samsquire/browser for a simple screenshot. It can arrange things without overlapping them, similar to a flow layout. But I need to handle text properly.
Everyone said they wanted independent implementations of standards but when Google Chrome came out, everyone including web developers and engineers were happy to move to it.
There's just too much technical complexity and knowledge required to know how to do things on each platform. Writing a cross platform desktop application is LOTS of fiddly effort.
I've wanted to create a GUI similar to IntelliJ Community Edition but I worry that the code shall be outside my reach in understandability.
> In some ways Mozilla achieved the impossible: a truly cross platform, compatible desktop application infrastructure that is powerful and rich. It can play video, show images and play sound and do 3D graphics. Unfortunately the market doesn't value those things, it thinks of them as dated. Firefox market share where it is.
The market does value the above, it just prefers Electron instead of whatever Mozilla's version is (XULRunner?).
I've used thunderbird for decades.
The biggest "modernization" benefit they could achieve would be making it actually fetch mail!
It will only load new mail into folders when the folder is clicked.
I've looked for years for a replacement, but using the integrated calendar has made finding one difficult.
If anyone knows of a GUI email client, that supports integrated calendar, please tell...
This was something that bothered me too. I found that you need to set mail.server.default.check_all_folders_for_new to true in the config editor (can be found under settings).
Mine definitely fetches mail in the background. All my accounts are IMAP, if that's different. I'll be working away and the notifications pop up. Maybe some setting?