Dans le monde de l'entreprise,il n'y à pas de place pour les amateurs.Aucune entreprise sérieuse n'embaucherais un amateur autodidacte qui code tout seul devant son pc.
Se basé sur le travail plus que discutable et indigeste d'un amateur(oui la majorité des autodidactes codent extrêmement mal) pour évaluer la qualité d'un langage de programmation,c'est insensé.
En ce qui concerne l'optimisation des applications,normalement il ne devrait pas y avoir lieu de s'en soucier.Si il faut en faire,c'est que le programmeur est incompétent ou n'a pas réfléchi à la base à un bon design pattern.Un programme qui possède un bon design pattern et qui est écrit avec une bonne logique mathématique,quelque soit le langage utilisé,est un programme performant et conforme au norme d'entreprise.Tout le reste est effectué par le compilateur et n'est que rarement pris en compte par le programmeur.Pour le peu de gain que cela implique,nous ne le faisons que lorsque l'on juge que c'est vraiment utile.
Pour finir,effectivement,plus un langage est évolué et orienté objet,plus il génère de code machine lors de la compilation.Cela est en partie du à cause des multiples niveau d'appels de fonctions provenant de la bibliothèques.Néanmoins,cela n'est rien comparer aux possibilités que le langage nous offre et du design qu'il nous permet d'élaborer.
Il n'y à pas réellement de mauvais langage,il n'y à que des codes affreux,des mauvais programmeurs et ceux qui utilisent les goto 