2009-09-03 10 views

Répondre

14

Dépend du type de système. Le C++ est traditionnellement associé aux applications de finance parce que les gens l'utilisent pour coder rapidement les modèles de monte-carlo pour le prix des produits dérivés. Ceci est probablement hors de propos si vous n'êtes pas un analyste quantitatif (quantitatif). Pour un système de salle des marchés ou une autre application transactionnelle, C++ vous procurera certainement des performances plus rapides et un plus grand volume de transactions dans un encombrement mémoire moindre et moins de CPU. Cependant, les performances de la base de données et du réseau sont plus susceptibles d'être un facteur limitant, et Java ou C# peut être mis à l'échelle en utilisant des architectures en cluster. Java et C# peuvent faire une pause pour la récupération de place, ce qui entraîne des espaces morts dans les temps de réponse de votre application. Ces retards peuvent être inacceptables pour certaines applications (plates-formes de négociation algorithmiques, par exemple) qui doivent prendre en charge des réponses fiables en temps réel. Dans ce cas, C++ vous permet de mieux contrôler ce comportement et peut être préférable.

Faire des recherches rapides sur Jobserve pour les travaux du contrat sur la base de la Banque "mots-clés et « C++ », « Net » et « Java » tours dans:

  • 60 matchs pour « C++ et Banque »
  • 128 résultats pour 'Java et des activités bancaires
  • 186 résultats pour « .Net et Banking »

en supposant une certaine corrélation (1) entre le nombre d'offres d'emploi pour les entrepreneurs et le nombre de projets actifs (2) un c utilisez-le comme une métrique approximative indiquant la prévalence relative de ces plates-formes dans les projets actifs.

  1. disponibilité relative des personnes atteintes de la compétence affectera aussi - un ensemble de compétences bien fourni signifie plus d'emplois se remplissent et un ensemble de compétences en pénurie signifiera que plusieurs positions sont ouvertes plus longtemps. Les secteurs de la banque et de l'assurance ont une pénurie permanente de bons spécialistes du développement ayant de l'expérience dans l'industrie, de sorte qu'il existe un marché contractuel important pour de nombreux ensembles de compétences.

2

Cela dépend vraiment de l'objectif de l'application. De nombreuses applications sont maintenant basées sur le Web, et C++ ne se prête pas aussi bien à cet environnement. Je suis d'accord avec l'autre répondeur, mais j'ajouterais que d'autres langages deviennent de plus en plus populaires pour les quants au-delà de ces derniers en raison de leur facilité de codage et de leur capacité à gérer les données: R, Matlab et Python en particulier.

3

Évidemment, il varie beaucoup entre les différentes entreprises/secteurs de l'industrie, mais dans mon expérience, il se casse à peu près comme suit:

  • Java pour les grands systèmes d'entreprise, le dos des plateformes de négociation de fin, etc.
  • C++ pour la substance à faible latence/haute performance
  • C# pour front-end/apps de bureau

Java est globalement le plus grand de ces trois - ce qui est logique car il est le mieux adapté à un usage général , les applications d'entreprise multi-plateforme côté serveur. La seule zone où Java/C# est réellement et non est la très faible latence, où les pauses GC peuvent être très problématiques. Vous avez vraiment besoin de C++ ici (ou assembleur, ou un autre langage qui vous permet d'obtenir un comportement garanti en temps réel)

Il y a occasionnellement quelques autres langues lancées aussi (par exemple Haskell pour les modèles de prix), mais ceux-ci ont tendance à être dans des domaines plus spécialisés/spécialisés.

J'ai également vu un peu d'expérimentation avec certains des langages JVM les plus récents (par exemple Scala, Clojure). Encore assez petit à l'heure actuelle, mais si vous cherchez un endroit pour développer vos compétences, je pense que c'est un bon pari pour l'avenir car ils combinent les avantages de la plate-forme Java (où les banques ont énormément d'investissements)) avec beaucoup plus de langues modernes/productives.