In most programming languages, dictionaries are preferred over hashtables. What are the reasons behind that?
In most programming languages, dictionaries are preferred over hashtables
I don't think this is necessarily true, most languages have one or the other, depending on the terminology they prefer.
In C#, however, the clear reason (for me) is that C# HashTables and other members of the System.Collections namespace are largely obsolete. They were present in c# V1.1. They have been replaced from C# 2.0 by the Generic classes in the System.Collections.Generic namespace.