maybe use whichever is faster in engine internals and leave choice on using generics to engine 'end' users?
imo modern engine should run on many platforms out of the box and expose scripting language as main way of coding the game.
ability to mess with the source code is a big advantage but not everyone would need or want that