Re: Logic & Gui
"The only thing stopping you is the fact that the source code belongs to someone else"
No, its the fact that you have built your code to assume a specific API, like win32, and a specific model for GUI, maybe even worse with assumptions of the size of 'int' or similar instead of using int32_t or whatever options were supported. That makes even a small program an absolute PITA to port. That is what most legacy software is like.
The exceptions are stuff that was written to be multi-platform, even if just two variants of "UNIX" (say Linux and later MacOS) as then you have to write your code with some degree of abstraction for GUI and low-level stuff, and that greatly mitigates the pain for porting because you are probably started using two compilers/dev environments and can never be quite sure of what API consistency will be like, so you learn to segregate from the beginning.