Après la compétition de 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 les 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.