C est facilement la langue la plus rapide là-bas. C'est si rapide que nous écrivons d'autres langues. Personne n'écrit sérieusement des sites web en C. Pourquoi? Il est très facile de bousiller C de manière très difficile à détecter et il ne fait presque rien pour vous aider. En bref, il mange des programmeurs et génère des bugs.
La construction d'une application robuste et rapide ne consiste pas à sélectionner la langue la plus rapide, c'est-à-dire A) la maintenabilité et B) l'évolutivité. La maintenance signifie qu'il n'y a pas beaucoup de bogues. Cela signifie que vous pouvez rapidement ajouter de nouvelles fonctionnalités et modifier celles qui existent déjà. Vous voulez une langue qui fait le plus de travail possible pour vous et qui ne vous gêne pas. C'est pourquoi des choses comme Perl, Python, PHP et Ruby sont si populaires. Ils ont tous été écrits avec la commodité du programmeur à l'esprit sur la performance brute ou la propreté. C a été écrit pour la performance brute. Java a été écrit pour la propreté conceptuelle. L'évolutivité signifie que vous pouvez passer de 10 utilisateurs à 10 000 utilisateurs sans réécrire le tout. Cela signifiait que vous avez écrit le code le plus serré que vous puissiez gérer, mais le code hautement optimisé est généralement difficile à maintenir le code.Cela signifie généralement faire des choses pour le bénéfice de l'ordinateur, pas l'humain et l'entreprise. Cela sacrifie la maintenabilité et vous devez dire à votre patron qu'il faudra 3 mois pour ajouter une nouvelle fonctionnalité.
Évolutivité ces jours-ci est le plus souvent réalisé en jetant le matériel à et parallélisation. Combien de processus et de processeurs et de machines pouvez-vous exploiter votre travail? Si vous pouvez y parvenir, vous pouvez lancer un autre ordinateur cloud bon marché comme vous en avez besoin. Bien sûr, vous allez vouloir en optimiser certains, mais à cette échelle, vous obtenez beaucoup plus de mettre en œuvre un meilleur algorithme que de resserrer votre code.
Par exemple, je pris une application PHP atone qui a du mal à gérer 50 utilisateurs à la fois, sont passés de Apache avec mod_php à lighttpd avec charge équilibrée à distance FastCGI processus permettant parallélisation avec un minimum de changement de code. Certains profils de base ont révélé que le framework PHP qu'ils utilisaient pour prototyper était lent, donc il a été retiré. Le profilage a également suggéré quelques index pour accélérer l'exécution des requêtes de base de données. Le résultat final était un système capable de gérer des milliers d'utilisateurs et une plus grande capacité pouvait être ajoutée en fonction des besoins tout en laissant intacte la majeure partie du code implémentant la logique métier. Ça m'a pris quelques semaines, et je ne connais pas très bien PHP.
Il peut être bénéfique pour réimplémenter petites pièces tranchantes dans une langue très rapide, mais le plus souvent pour vous a déjà été fait sous la forme d'une bibliothèque ou un outil optimisé. Par exemple, votre serveur Web. Pour la complexité et les besoins en constante évolution de la logique métier, l'important est la facilité de maintenance et la qualité de vos programmeurs. Vous trouverez que la plupart du web est écrit en PHP, Perl et Python parce qu'ils sont faciles à écrire, avec des petits morceaux tranchants écrits dans des choses comme C, Java et exotiques comme Scala (par exemple, Twitter) . Wikia, par exemple, est un Mediawiki modifié qui est écrit en PHP mais il est performant (entre autres raisons) en faisant un heroic amount of caching.
Étape 1. Déterminez les cas qui vous intéressent. Étape 2. Concevoir des systèmes pour recueillir des chiffres pour ces cas dans diverses langues. Étape 3. Comparer, choisir une langue et mettre en œuvre. –
Il est communément dit que les bons programmeurs peuvent coder de super programmes dans un langage merdique, et qu'un programmeur merdique peut coder des programmes merdiques dans un langage génial. donc ce qui compte le plus, c'est comment vous le codez, le choix du langage est secondaire. ;) – Lukman
Si vous avez besoin de choisir un langage rapide pour implémenter un algorithme connu, les repères de fusillades ont un sens. Si vous devez choisir une langue pour écrire une application métier, les critères ne signifient pas squat. Le problème n'est pas "quelle langue peut faire X plus vite", car il n'y a pas de X simple pour "votre entreprise". La performance et la robustesse dépendent en grande partie de la qualité de vos programmeurs, pas du langage. – Schwern