37 votes

Temps de développement dans différentes langues

Quelqu'un sait de toute recherche ou de repères, de combien de temps il faut pour développer la même application dans une variété de langues? Vraiment je suis à la recherche pour Java vs C++, mais toute comparaison serait utile. J'ai l'impression qu'il y a une section dans le Code Complet à ce sujet, mais mon exemplaire est à l'œuvre.

Edit:

Il y a beaucoup de réponses intéressantes à cette question, mais il semble qu'il y est un manque de bon recherche. J'ai fait une proposition plus au meta sur ce problème.

40voto

John R. Strohm Points 5338

Pratt & Whitney, fournisseurs de moteurs d'avions civils et militaires applications, a fait une étude sur ce il y a plusieurs années, sans réellement l'intention de faire l'étude.

Ils sont allés sur les mêmes mesures au coup tout le monde s'est passé dans les années 1990. Ils ont recueilli un tas de données sur leur jet moteur contrôleur de projets, y compris la carte de pointage de données. Ils croqué il. Les pauvres sap qui a obtenu à croquer les données remarqué quelque chose dans les résultats: les projets militaires de manière uniforme a eu deux fois la productivité du programmeur et un/quart de la densité de défauts que les projets civils.

Cela, en soi, est significatif. Cela signifie que vous avez seulement besoin de la moitié du nombre de programmeurs, et vous n'allez pas passer autant de temps à corriger les bugs. Ce qui est encore plus important, c'est que c'était une des pommes avec des pommes comparaison. Un moteur à réaction contrôleur est un contrôleur de moteur jet.

Ensuite, il est allé à la recherche de candidat pour les explications. Tous les candidats: l'expérience individuelle, la taille de l'équipe, de l'ensemble des outils, logiciels de processus, les exigences de stabilité, de tout, ont été récitait, et ils ont été écartés quand il a vu que l'histoire de ces éléments a été uniformément le même sur les deux côtés de l'allée. À la fin de la journée, seulement une différence statistiquement significative a montré jusqu'à.

Les projets civils ont été écrits dans toutes les langues que vous pourriez penser. Les projets militaires ont tous été écrits en Ada.

DANS TOUS les CAS, à l'encontre de tous les autres comer, pour jet les contrôleurs de moteur Pratt & Whitney, à l'aide de l'Ada a donné le double de la productivité et un/quart de la densité de défauts.

Je sais que le vol de code singes allez dire. "Vous pouvez faire un bon travail dans n'importe quelle langue." En théorie, c'est vrai. Dans la pratique, cependant, il semble que, au moins chez Pratt & Whitney, la langue fait une différence.

Le dernier que j'ai entendu parler de cela, Pratt & Whitney de la haute direction a décrété que TOUS les moteurs de jet contrôleur de projets pourrait être fait en Ada.

Non, je n'ai pas de citation. Aucun document n'a été jamais écrit. Ma source sur cette histoire était le mauvais sap qui croquait les numéros.

Ce qui, incidemment, était AVANT que Boeing a fait le 777, et AVANT que le 777 de frein sous-traitant de l'histoire qui s'est passé. Mais c'est une autre histoire.

23voto

Don Stewart Points 94361

L'un des rares scientifiques financés par les études que je suis au courant sur la langue de la productivité, à partir du début des années 90, financé par l'ARPA et l'ONR,

Nous décrivons les résultats d'une expérience dans laquelle plusieurs les langages de programmation traditionnels, en collaboration avec le langage fonctionnel Haskell, ont été utilisés pour un prototype Naval Surface Warfare Center (NSWC) exigence d'un Géométriques de la Région Serveur. Les programmes qui en résultent et le développement de métriques ont été examinés par un comité choisi par la Marine. L' les résultats indiquent que le Haskell prototype a pris beaucoup moins de temps pour développer et était beaucoup plus concis et plus facile à comprendre que l'..

15voto

ChristopheD Points 38217

Cet article (un pdf) a quelques repères (notez qu'il date de 2000) entre C, C ++, Perl, Java, Perl, Python, Rexx et Tcl.

Une certaine sagesse commune, je crois, est vraie (également quelque part dans l'article):

 Le nombre de lignes écrites par heure est indépendant de la langue 

9voto

Pavel Radzivilovsky Points 11613

Opinion: plus important est ce qui est plus rapide pour un développeur donné, par exemple vous-même. Ce à quoi vous êtes habitué sera généralement plus rapide. Si vous êtes habitué à 20 ans de pièges C ++ et que vous ne sautez jamais une variable non initialisée, ce sera plus rapide que Java pour tout le monde.

Si vous vous souvenez de tous les paramètres de CreateWindowEx () par cœur, ce sera plus rapide que MFC ou winforms.

7voto

Carl Smotricz Points 36400

Un couple anecdotique des points de données:

Sur le Projet Euler, qui invite à la programmation de solutions à des problèmes mathématiques,

  • le plus court des solutions sont presque toujours écrits en J ou K, un parent de l'APL; il y a parfois MatLab solutions dans la même gamme. Il peut être fait valoir, cependant, que ces langues spécialisées en mathématiques.
  • les coureurs ont été Ruby solutions. Beaucoup de l'algorithme peut être enveloppé dans très peu de code, et c'est beaucoup plus lisible que J / K.
  • Python et Haskell solutions a aussi très bien, LOC-sage.

La question posée à propos de "développement plus rapide," pas "le plus court code." Mais il est concevable que la plus courte des solutions les plus rapides à venir avec - certainement pour ralentir les dactylos!


Il y a une compétition annuelle entre les roboticiens. Les candidats ont donné quelques caractéristiques de certains matériels, un problème pratique à résoudre dans le logiciel, et d'un temps limité pour le faire. Encore une fois très spécifique au domaine, bien sûr. Les programmeurs ont le choix de leurs outils, y compris la langue, bien sûr. Chaque année, l'équipe gagnante (souvent une seule personne) utilisé de Suite.


Cette certes limitée de l'échantillon suggère que "le développement de la vitesse" et "effet de la langue sur la vitesse" est souvent très dépendant du domaine du problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X