UE4 is “young” in the same way that Unity 5.x is “young” – they both build on earlier versions of very mature engines.
Unreal shipped a major, AAA, game, before Unity even existed.
That being said, of course there are differences. And, if you’ve spent years learning and adapting to a particular engine, of course a transition would be expensive.
However, don’t listen to the mis-information from those who have only used one of the engines.
For example, callback functions in C++ are very easy to write:
void my_function(SomeObject * obj, int someArg) {
obj->installCallback(&](Whatever *what) {
what->do_the_thing(someArg);
});
}
This is no more syntax than in C#.