Why haven't you added C# as a supported Programming Language?

You can think of UE4 C++ as a superset of the language, similar to how you can think of C++ as a superset of C. What you get in UE4 C++ is a lot of nice features that bring it much more in line with something like C#, especially when considering memory management.

UE4 C++ is “hard”, not so much because of the language itself, but more because of the complexity of the engine API and its lackluster documentation. Compared to the nice “flat” feeling of an API surface like Unity’s, UE4’s API is built on layer upon layer of inheritance in a massive hierarchy. It can be difficult to even know where to look in that hierarchy for what you need, and if you find it there may not be any documentation besides the source code.

However, UE4 C++ is also easier in some ways than Unity C# because you are given a very thorough architecture to start with. An analogy might be that the challenge in UE4 C++ is like searching around a large messy room for shapes to fit in the holes in your puzzle board. The right shapes probably already exist, you just need to look around for them. Unity C# is more like a jigsaw puzzle. All the pieces are sitting out in front of you, but you need to figure out how they all come together. There is no framework for you to build on. In a lot of ways developing in UE4 C++ feels like modding, where as developing in Unity C# feels like working from scratch. I think many people discount how helpful a preexisting architecture like UE4’s can be. There is a lot of hidden work that has already been done for you.