¿Qué lenguaje de programación se usa para hacer pequeños programas de utilidad para Windows?

Como dijo Steve Whiting, eso es “lo que quiera usar el escritor”. Por lo general, yo mismo uso Pascal (Free Pascal – Compilador Pascal avanzado de código abierto para Pascal y Object Pascal – Página de inicio).

Supongo que estás hablando de utilidades de línea de comandos. Un buen lenguaje para eso sería algo que le permita crear un ejecutable independiente que no requiera instalación o dlls para funcionar. Probablemente las opciones más comunes que pueden cumplir con ese criterio son C o C ++. Establezca las opciones del vinculador para que el código compartido esté vinculado a ese único ejecutable. Los lenguajes de secuencias de comandos (como AWK, bash, Python, etc.) no son excelentes candidatos porque es más difícil crear un ejecutable autónomo, aunque estoy seguro de que se puede hacer.

Si habla de utilidades con una interfaz de usuario, entonces probablemente necesite un instalador que relaje los criterios anteriores.

PowerShell debería ser una consideración importante al escribir utilidades de Windows si no necesita una GUI completa. Está integrado en las instalaciones modernas de Windows, por lo que no necesita instalar nada. Tiene excelentes capacidades de secuencias de comandos y proporciona una interfaz poderosa para el sistema operativo Windows (por ejemplo, para controlar redes, directorios activos, archivos, procesos y servicios).

Ver Windows PowerShell Scripting.

VB6, si sabe cómo usarlo, probablemente sigue siendo la forma más rápida de crear un pequeño programa de Windows. Está compilado, y los binarios son extremadamente económicos y tienen dependencias mínimas que se incluyen con todos los sistemas operativos Windows. ¡Simplemente no use ningún control personalizado con su programa!

Citando la Declaración de soporte para Visual Basic 6.0 en Windows:
El equipo de Visual Basic está comprometido con la compatibilidad “Simplemente funciona” para las aplicaciones de Visual Basic 6.0 en Windows Vista, Windows Server 2008, incluidos R2, Windows 7 y Windows 8.

Realmente no te ayuda, pero esencialmente la respuesta es “cualquier cosa que el escritor de la pequeña utilidad quiera usar (y tenga disponible para ellos)”.