Quel langage de programmation (java, python, Groovy, ruby, php ou C #) est le plus rapide en termes de performances pour la création d’applications Web d’entreprise?

Concernant, techcrunch et killerstartups:
Ils sont tous deux basés sur php (en utilisant wordpress).
Vous pouvez effectuer une recherche technologique à l’aide de BuiltWith

Cliquez ici pour voir:
KILLERSTARTUPS.COM
contre
TECHCRUNCH.COM

Ainsi, la langue n’est pas la raison des performances de killerstartups.

Et une raison évidente pour laquelle killerstartup est rapide, c’est parce que son poids léger en dehors de nombreuses autres raisons, que je n’expliquerai pas car ce n’est pas la question principale que vous avez à l’esprit.

Les statistiques ci-dessous sont prises à l’aide des outils Pingdom
La page d’accueil de Killerstartup n’est que de 923,0 Ko, par rapport à techcrunch (page d’accueil 1,3 Mo)

Découvrez les captures d’écran ci-dessous:

Maintenant, concernant le langage de programmation…

PHP est beaucoup trop lent, comme tous les langages interprétés, python et ruby ​​inclus, sauf si vous effectuez une optimisation. Vous voudrez peut-être différer si vous avez entendu dire que Facebook est basé sur PHP. Cet article vous donnera un aperçu des performances de Facebook et des performances des langages de script – HipHop pour PHP: Move Fast.

Déjà d’autres choses ont été soulignées par d’autres dans ce post.

Ce n’est pas aussi simple!

Tout d’abord, 500 kbps, vous mentionnez une métrique de bande passante . Cela détermine la taille de la pipe de vos clients. Vous pouvez écrire votre programme en C ou en Ruby mais si vous devez envoyer 200K de HTML / CSS / JS dans le tuyau pour afficher votre page Web sur le navigateur de votre client, alors cela va prendre le même temps (200K / 500 / 8 = ~ 3s) pour tout transférer à vos clients quel que soit le langage de programmation que vous utilisez. C’est pourquoi il est important de réduire la taille des pages (utiliser la compression), d’augmenter le nombre de connexions simultanées (c’est-à-dire d’utiliser toute la bande passante de vos clients), etc. Et aucune de ces optimisations ne dépend évidemment d’un langage de programmation.

Donc, le prochain élément important dont vous devez vous préoccuper est la latence – le temps d’aller-retour entre l’ordinateur de votre client et votre serveur. Cela dépend évidemment de plusieurs facteurs différents – la latence du dernier kilomètre de votre client, non. de sauts entre votre client et votre serveur, combien de temps vos serveurs ont besoin pour cracher les octets pour rendre une page, etc. Donc, dans la liste des facteurs qui affectent la latence, il n’y a vraiment qu’un seul facteur que vous pouvez affecter par votre choix du langage de programmation – le temps passé à générer la page (contenu à la fois dynamique / statique). Et même ici, la durée réelle affectée par la vitesse de votre langage de programmation est très limitée – de nombreux autres choix font une différence plus importante (utilisez-vous la mise en cache côté serveur? À quelle vitesse vos appels à la base de données? Utilisez-vous un CDN? ).

Alors arrêtez de vous obséder sur les performances de votre langage de programmation Web. Il y a une raison pour laquelle des langages comme Ruby / PHP / Python sont utilisés pour la programmation Web même s’ils ne sont pas aussi rapides que C / C ++.

Pour les performances côté serveur, je dirai que la vitesse des principaux langages de script comme ruby, perl, python et PHP est très comparable, mais la plupart des benchmarks suggèrent que python est le plus rapide parmi les langages de script. Dans l’ensemble (y compris les langages compilés), C / C ++ peut facilement être considéré comme le plus rapide et en fait est très utilisé par facebook & goolge pour calculer les secteurs critiques de leurs applications. Voici une comparaison entre eux http://blog.famzah.net/2010/07/0… vous trouverez la plupart des benchmarks ayant le même schéma.
Mais plutôt que le choix de la langue, les performances côté serveur sont plus affectées par le choix des frameworks que vous utilisez, le serveur Web, l’implémentation de votre base de données ainsi que l’ensemble de votre architecture de serveur.

Surtout :
Je suis d’accord avec Peter Sandtner pour optimiser un site pour une bande passante lente, vous devez plutôt optimiser le contenu de votre site et essayer de mettre en cache autant de contenu sur le navigateur.
Voici quelques choses que vous pouvez faire en général

  • Compressez vos images
  • Utilisez CSS Sprites pour minimiser les requêtes http
  • Si possible, utilisez des images clipart ou des dessins animés amusants au lieu de photos pour représenter quelque chose car ils sont de tailles beaucoup plus petites et hautement compressibles
  • éviter les grandes tailles de page plutôt les diviser en plusieurs pages ou sections et les charger en utilisant un appel ajax (une connexion de 500 kbit / s cible une taille de page de 50 à 100 Ko)
  • Avoir une conception et une structure de site uniformes afin de minimiser le nombre de fichiers CSS et de profiter de la mise en cache.
  • Utilisez les outils d’optimisation de fichiers CSS et js pour les compresser également (cela aura l’effet minimal mais toujours une option)
  • Essayez de trouver une bonne solution d’hébergement et, si disponible, utilisez des services CDN dans votre pays. Cela peut avoir un impact significatif.

Vous pouvez trouver un contenu un peu détaillé ici http://developer.yahoo.com/perfo…

Si votre algorithme est optimisé, peu importe le langage de développement Web que vous utilisez. En fait, la plupart des langages de script sont livrés avec des bibliothèques intégrées pour les algorithmes les plus largement utilisés, donc utiliser l’un de ces évite d’avoir à écrire un tri de fusion non optimisé ou une recherche binaire non optimisée à chaque fois que vous codez.
En ce qui concerne les performances, il s’agit principalement d’une compétence d’optimisation du frontal, des requêtes de base de données et de la mise en cache. Les règles d’optimisation frontales telles que le conditionnement js / css, la compression d’image, la réponse gzip, etc. doivent être suivies. http://developer.yahoo.com/perfo…

Les requêtes de base de données back-end doivent être optimisées avec des index et d’autres trucs et astuces (peuvent être trouvés dans High Performance MySQL par Peter Zaitsev).

Mettez vos pages Web en cache sur le serveur et actualisez-les périodiquement. Il empêche le serveur d’exécuter votre script chaque fois que votre navigateur envoie une demande. Le contenu dynamique peut être servi avec jQuery et AJAX.

Les langages de programmation / script dépendent du développeur. Si le développeur pense qu’il peut écrire du code optimisé avec un langage, c’est son choix. Mais les bibliothèques intégrées pour les algorithmes (tri, recherche, fusion, etc.) sont presque également optimisées pour toutes les langues que vous avez mentionnées ci-dessus.

Pour vous, il est important de se concentrer sur le frontend et non sur le backend, car vous passez généralement environ 200 ms au maximum sur le backend, mais en quelques secondes à charger des actifs qui nécessitent une meilleure bande passante. Concentrez-vous donc sur l’optimisation des images, js, css, la mise en cache du navigateur, qui est principalement indépendante de la plate-forme.

Je dois dire que C ++ est plus rapide car Java et c # essaient de rendre la même chose que c ++ mais plus facile et en conséquence ils perdent un peu de leur vitesse en faisant cela.

C ++ est donc plus rapide mais beaucoup plus difficile à maintenir en raison de ses vulnérabilités, telles que les fuites de mémoire, etc.

Ce genre de problèmes ne devrait pas se produire si vous codez en toute sécurité tout en détectant ce type de vulnérabilités dans votre code.

Si vous rencontrez des difficultés à le faire, vous obtenez de l’aide de tout programme de sécurité de code que vous souhaitez. J’ai entendu parler d’un ami appelé Checkmarx. Pas sûr de leur coût mais vous pouvez essayer.

Bonne chance.

Joseph.