Templates don’t have to be complicated.
Just very basic type substitution is one of the most useful uses of templates and is useful in pretty much all software
They’re also useful when you can’t use virtual dispatch. Concepts help a lot in making that tolerable.
Sure they can get stupid complicated and ugly as hell, but you don’t have to do that. Even their basic form is very useful
That said, RAII is probably the must useful thing