Le noyau de Windows lui-même est écrit en C++. Les premières versions étaient écrites en C et il reste probablement encore du code C dans le système d'exploitation, mais tout est construit avec un compilateur C++ maintenant. C++ est un choix populaire pour écrire des applications Windows.
C# est un langage qui s'exécute dans un environnement de code géré, un peu comme Java. Il utilise le Common Language Runtime (CLR) qui fait partie de la plateforme .NET. C'est le langage le plus populaire pour l'écriture d'applications UWP (Universal Windows Platform), dont certaines sont fournies avec Windows 10. UWP est désormais l'API préférée de Microsoft pour les applications Windows, mais elle présente l'inconvénient de ne pas être rétrocompatible avec les versions précédentes de Windows. C# peut également être utilisé pour écrire des applications qui utilisent l'API Win32 et qui fonctionneront sur des versions antérieures de Windows.
Visual Basic était un langage très populaire pour les applications Windows à une époque. La dernière version du VB classique, VB6, est sortie en 1998 ; elle a ensuite été remplacée par Visual Basic.NET. VB.NET fonctionne dans le même environnement de code géré que C#. De nombreux développeurs ont résisté aux changements de VB.NET et ont continué à utiliser l'ancienne version aussi longtemps qu'ils le pouvaient ; depuis la transition, VB n'a jamais retrouvé son niveau de popularité antérieur. Un parent du VB classique, Visual Basic for Applications, est le langage macro utilisé par Microsoft Office.
Java ne peut pas être utilisé pour produire des applications Windows natives. Mais on peut lui faire utiliser des choses qui leur ressemblent beaucoup, et les applications Java sont fréquemment exécutées sur Windows.
De nombreux autres langages ont été utilisés pour produire des applications Windows. Microsoft propose F#, un langage de programmation fonctionnel, pour .NET, et ils proposaient auparavant J#, un langage semblable à Java. Turbo Pascal et son successeur Delphi (le langage est toujours le Pascal) ont été utilisés par certains développeurs. Il y en a eu d'autres moins populaires en cours de route.
Il y a aussi les langages qui s'exécutent dans leurs propres environnements contenus plutôt que de produire des applications Windows natives. Python, Perl et Lisp en sont des exemples.
Je devrais également mentionner le langage d'assemblage. Je doute que quelqu'un ait produit une application Windows significative entièrement en assembleur, mais cela pourrait être fait. Il est beaucoup plus courant d'utiliser de petits bouts de code assembleur pour accélérer les parties clés d'une application.
Enfin, nous ne pouvons pas ignorer l'importance croissante du navigateur web en tant qu'environnement d'exécution d'applications, et de son langage de programmation natif Javascript.