Je pense que tous les langages sus-cité peuvent être utilisé pour faire un bot dofus.
Pour commencer la programmation si tu n'en a jamais fait je te conseille un langage un peu plus simple ou tu ne vas pas trop te prendre la tête et découvrir les fonctions, les boucles, les variables etc.
Ensuite tu vas avoir besoin de sockets pour ton bot du coup tu auras deux choix :
Maîtriser complètement le bot en écrivant soit même son gestionnaire de sockets etc.
Utiliser des librairies ou des objets déjà présent pour gérer ses sockets.
J'ai toujours fait le deuxième choix car je considère que les gens qui ont développé les sockets (dans java par exemple) sont plus expérimentés que moi et ont forcément mieux fait le boulot. Du moment que j'arrive à me concentrer sur ce qui est le code métier de mon programme je suis content.
Le choix de la première solution va te permettre de connaître et maîtriser en profondeur ton programme. Cependant tu vas perdre de vu ton code métier et te concentrer grandement (du moins au début) sur des fonctionnalités essentielle au bot mais qui ne vont pas différé de ce qui peut déjà exister.
Il y a toujours en informatique des décisions à prendre. On ne peut pas tout faire, on ne peut pas tout suivre. On est obligé de s'éloigné de certains sujets et de se spécialiser.
Je comprends comment fonctionne une socket, comment les packets arrive à l'ordinateur, les différentes couches qu'il va traverser mais je serais incapable de coder de A à Z une socket. Je préfère utiliser des librairies ou je peux rentrer mon ip et mon port et récupérer les bytes qui transitent dans ma socket.
J'ai touché à pas mal de langage, le C/C++ peut être compliqué du fait des types de données, des pointeurs etc. En contrepartie tu comprends exactement comment ça fonctionne, tu maîtrises entièrement ce qu'il se passe et tu peux devenir un très bon dev en partant de C/C++.
Le java est très verbeux, il te faut taper du code encore et encore pour reproduire certaines choses. Cependant tu maîtrise assez bien ce qu'il se passe et il est, je trouve, plus accessible et tout aussi bien que le C/C++ pour comprendre comment ça fonctionne. J'ai par contre été très ennuyé par les convertions de types ou les choix logique du langages qui ne sont pas trop évident.
Le python à le vent en poupe ces temps-ci, c'est un langage qui peut être très puissant, cependant on ne sait pas trop en profondeur comment ça se passe au niveau de la machine. Les dev Python sont recherchés et très bien payés. C'est un langage qui est souvent associé aux postes de sysadmin ou de devsystème (je ne connais plus le terme, entre développer et sysadmin...).
Il te reste le ruby, pareil que le python il a le vent en poupe, il permet de faire pas mal de choses plus ou moins facilement. Les devs sont très recherchés et sont parmis les mieux payés.
On ne sait absolument pas comment ça se passe au niveau de la machine. L'installation d'un environnement ruby peut être rude au début (rbenv etc).
C#, je dirais que c'est du JAVA en plus simplifié et avec plus de code haut niveau.
Voilà. A toi de choisir ton poison. Il n'y a pas forcement de meilleurs langages pour commencer, tu choisis ce que tu veux et tu regardes si ça te correspond et surtout si ça correspond au projet que tu veux faire.