Pourquoi faire de la programmation de la concurrence les concurrents d'utiliser C++ et Java?

Après la compétition et cette année Google Code Jam de la concurrence, je ne pouvais pas aider mais noter le nombre incroyable de [réussi] les participants qui ont utilisé le C/C++ et Java. La répartition des langues utilisées tout au long de la compétition peut être vu ici.

Après la programmation en C/C++ depuis plusieurs années, j'ai récemment tombé en amour avec Python pour ses lisible et simple de la nature. Plus récemment, j'ai appris les langages fonctionnels comme OCaml, Régime, et même de la logique de langues comme le Prologue. Ces langues ont certainement leurs mérites et, à mon avis, peuvent être appliquées plus facilement que C++ et Java pour certaines situations. Par exemple, le Schéma de l'utilisation de call/cc simplifie les retours en arrière (un outil nécessaire pour répondre à plusieurs problèmes) et le Prologue de la logique de spécification, bien que peu efficace en raison de sa force brute de la nature, peut considérablement simplifier (et même de résoudre automatiquement certains problèmes qui sont difficiles à enrouler son cerveau autour de.

Il est clair qu'un concours concurrent doit utiliser les outils qui sont les mieux adaptés pour le défi. Même x86 assemblée est Turing - ce qui ne veut pas justifier la résolution de problèmes avec elle. Dans ce cas, pourquoi les concurrents qui utilisent des langues moins courantes comme le Régime de/Lisp, Prolog, et même le Python beaucoup moins de succès que les concurrents qui utilisent C/C++ et Java? Formulé différemment, pourquoi ne pas réussie concurrents utilisent des langages qui, bien que peut-être moins "mainstream", sont sans doute de meilleurs outils pour le travail?

Il y a plusieurs motivations pour ma question. Plus important encore, je voudrais devenir un meilleur développeur - à la fois dans l'aspect pratique et l'aspect compétition. Après avoir été présenté à ces belles paradigmes comme fonctionnelle et logique de programmation, il est décourageant de voir autant de gens jeter en faveur de C/C++ et Java. Elle même me fait douter de mon admiration pour ces paradigmes, inquiétant de constater que je ne peut pas réussir en tant que Lisp/Scheme/Prolog programmeur dans une programmation de la concurrence.

  • Je suppose que la vitesse d'exécution peut aussi être un facteur.
  • Question intéressante; ce serait bien d'obtenir des réponses de la part des participants, dans le Code de la Confiture ou d'autres compétitions (ACM, etc). Temps de fonctionnement limites de partialité à l'encontre des langages interprétés, mais...
  • Dynamique des langues ont un énorme problème de performance: voir benchmark
  • Qu'en C#!?
  • Pour Topcoder, c'est tout simplement parce qu'ils ont une règle interdisant l'utilisation de rien, mais les bibliothèques standard Python, qui fait autre chose que des tâches insignifiantes impossible. Recherche d'astéroïdes dans l'espace des images? Trop mauvais, vous ne pouvez même pas utiliser NumPy.
InformationsquelleAutor advait | 2010-08-01