¿Cuál es el mejor lenguaje de programación para una aplicación que tiene requisitos de GUI y comunica datos a través de WiFi?

Realmente, la calidad del software creado depende de usted, no del lenguaje que usa. Sin embargo, para las aplicaciones GUI, deberá consultar los diversos kits de herramientas disponibles y lo que más le convenga.

Python tiene enlaces a Qt (entre otros), lo que se considera un muy buen kit de herramientas de interfaz de usuario.

Java, por otro lado, no dudaría en usar JavaFX, que es un excelente kit de herramientas para crear aplicaciones GUI.

En términos de redes, cualquier cosa con soporte para sockets puede hacer eso, y eso es casi todos los idiomas.

Sin embargo, debe tener en cuenta que Python en este momento no admite múltiples subprocesos en el verdadero sentido, por lo que manejar muchas conexiones de red a la vez puede ser una tarea difícil.

Personalmente, iría a Java, pero Python es una opción perfectamente decente también.

Como está más familiarizado con Python, use Python. Tiene módulos portátiles para redes y para acceder a comandos específicos de wifi para Linux (python-wifi 0.6.1). (Para Windows, es posible que deba acceder a través de las API de red de Windows, como se menciona en ¿Cómo conecto / desconecto / configuro una red inalámbrica en Python?)

Python tiene interfaces para múltiples GUI. Cuál (es) utiliza depende de varios factores, como qué sistemas operativos necesita admitir y con cuáles ya está familiarizado.