Darazaki / Spedread

GTK speed reading software: Read like a speedrunner!
GNU General Public License v3.0
61 stars 5 forks source link

Rewrite using newer technologies #24

Open gregorni opened 6 months ago

gregorni commented 6 months ago

I really like the concept of this app, and I'd like to see it go further than where it is currently, possibly even joining the GNOME Circle one day :)

However, Spedread would have to be re-written to make use of some newer technologies in order to advance to make use of a more modern platform. Notably, the rewrite would have to make use of GTK4 and libadwaita. Perhaps it could even be extended to changing the underlying programming language, or using UI templates to define the interface.

Is this sort of rewrite a conceivable goal of the project?

Darazaki commented 6 months ago

I'm not planning for a rewrite right now but it'll probably have to be done at some point to properly support languages like Chinese

I'm not sure what you mean by "newer technologies" though? Spedread already support GTK4 and libadwaita although its use of libadwaita can be disabled

I agree that changing the underlying programming language would probably be a good idea considering Vala's popularity and third-party library support... With a lot of NLP library being in Python, it'd probably be the best choice for supporting all kinds of human languages :)

UI templates though is something that I'm against using when it comes to GTK. Spedread was originally written in C & GTK3 with UI templates but, when GTK4 came out, there was no proper transition guides for UI templates. Not only that but GNOME's official IDE didn't even support GTK4 UI templates and couldn't find any examples of how to use them in GTK's documentation. I simply don't trust GNOME to properly support their UI template files anymore. Sorry :/


TL;DR: Yes a rewrite is conceivable although not right now. The rewrite would probably be in Python. No UI templates

I've probably misunderstood what you meant by "newer technologies" so please do correct me!

gregorni commented 6 months ago

I basically meant GTK4 and libadwaita, I must've somehow missed that the app already uses libadwaita. However, speaking of, I don't really see the benefit of allowing the user to turn off libadwaita. You might consider just removing that option.

Python as a language choice is nice, I fully support it! 😃

Concerning UI templates: I can only recommend them. GNOME Builder's support for them is really good now, and there's even a new markup language now called Blueprint which is a lot nicer to use than XML. I think it's very future-proof, as it has a small, active community behind it, amd it's documentation is held up-to-date very well. It's also easy to look at XML examples in the libadwaita docs and translate it to Blueprint in your head.

Darazaki commented 6 months ago

Thanks for telling me about Blueprint! That seems like a good option :)

I don't think I'll drop the option to turn off libadwaita anytime soon though. I want Spedread's users to have the freedom to theme it for as long as possible. Maybe libadwaita will become necessary once I want to properly support Linux phones. We'll see!