hgm wrote:And my point was that this "hard part" is far more work than writing an entire beginner's engine. So not recommended. Beginners better start with the "easy part".
I'm not sure I agree. For decades, computer scientists have debated where a person should start their programming career with regard to programming languages. And for years, many very well-known schools answered "assembly language". As once you learn things at that level, you are a better programmer at the next level. Others have opined the opposite, that it is quicker to get going using a high-level language. And quicker to learn bad habits. And to never have any idea of what your program might look like from the machine's point of view, and could you have made it any more efficient.
It's always been a lively debate. I started CS in 1968, and our first course was a 2-hour (3 was normal) course in FORTRAN. The second was a 3 hour course in IBM /360 assembly language. At the time, some used basic (Dartmouth, for example) rather than FORTRAN. And we have been through Pascal, then C, then C++, and now Java. At the bottom of the pile, and just as important today as ever, is still assembly language. And it gets overlooked too often.
Some of the _best_ programming students I had back in the 80's and 90's were the guys that were at home hacking on their 8080/z80 boxes in assembly language, learning how the thing _really_ worked.