I need help with how to structure my project
Posted by Big-Topic-832@reddit | learnprogramming | View on Reddit | 3 comments
Hi! I've been coding for a while and know the basics and stuff, but I have never done a "serious" project, so... here I am. My idea is to build an speedcubing timer (similar to CsTimer but simpler and in application form, not web).
The simplest way to do it would probably be with Python, but I decided that it would be a good idea to sepparate the desktop frontend from the core logic, that way me or other people can easily add Android/iOS/Web frontends without rewriting the core logic. The thing is... that approach doesn't exactly seem the easiest one. As far as I'm concerned, the only "real" way of doing it is by using a low-level language (basically C, C++ or Rust), which I'm not wanting to learn because they seem so complicated. Probably C could be managable, but C++ and Rust seem completely overkill, specially for an app like this one, though I would really like to use OOP for that, so I'm not sure.
Another thing I'm concerned about is how to manage the Github of the project. What I've seen that seems the most reasonable is to make a repository for each frontend and the shared library and then join them together using submodules in a sigle repository, but I've also seen thtat there are way more options, and I don't really know what to pick.
In short, I'd like to get your opinion on these things:
- Which language should I use for the backend? Is it worth it to learn C, C++ or Rust early on? Is it easy to migrate from C to either one in the future? Is there any other language that allows me to do that without hosting a server or some weird stuff like that?
- How do I manage my Github/Git?
- (optiona, but,) Is Python a good idea for the frontend? My idea was to use PyQt, muy maybe if it's just the UI, I might as well try to do it in native Qt with C++, though I don't know if it would be a good idea
Thanks in advance (specially after reading all of that)!
DustRainbow@reddit
Honestly as this is a learning opportunity, I would advise to trust your gut and try whatever you think makes sense.
You're going to make bad choices and that's the point.
Big-Topic-832@reddit (OP)
My base idea was C + Python and submodules for git, then I can upgrade to C++ or Rust when (and if) needed, though I wanted to see more opinions
DustRainbow@reddit
You're overthinking it. If you're so undecided I suggest you stick to python for the whole thing, and don't bother with git submodules.