Since creating an emulator requires relatively low-level programming, there’s very few technologies required besides one’s choice of language (I haven’t even been using an IDE, just my system’s standard text editor!). In the case of our project, that language is C++, which is a new one for me. I’ve definitely had some difficulties learning it, but I’ve come to appreciate it as a powerful and useful tool.
I am familiar with C++’s parent, the (in?)famous C language. In many ways, these languages are quite similar. A programmer can happily write C-like syntax in a .cpp file and probably get something working. This compatibility makes sense, given C++’s origin as being “C with classes”.

Of course, modern C++ is quite different from its humble beginnings. While I am used to using classes (Java-based introductory programming courses have made sure of that), C++ has plenty of other features that make it unique. There are many “C++-isms” that I was not used to (I’m looking at you, “std::cout<<” syntax), which gave it quite a learning curve. After some time, however, I have come to appreciate what this language can do, and I’m enjoying using it and learning more.
