firstly: its doing more than abstracting CPU and memory. its abstracting the very binary logic of the computer its running on. So naturally the code is going to get a bit on the complicated end of things. It has a full development toolchain, including 2 compilers, all custom built.
secondly: that codebase IS in alpha, and the repository structure is due to SBTCVM being designed as a self-contained, multiplatform package. The codebase is actually far better technically than its predecessor. using a modular design, with frontend code compartmentalized for easier development of additional frontends.
Thats not even mentioning the fact that the CPU is clocked at 6.5Khz. that might not seem like much, but that means the CPU parser is running 6500 times a second.
thirdly: python 2 support is staying until at least its EOL in 2020. That's my decision, and I'm sticking with it.
as for the coding style. I'm honestly more concerned with the modularity, maintainability, and speed of it, rather than how it looks.
still Gen2 is a massive improvement. Gen 1, as it was based on the first prototype, was much worse:
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.