J'ai vu beaucoup de tests mesurant la vitesse d'exécution des langages de programmation, mais je n'ai jamais trouvé de tests mesurant la vitesse de développement.
J'ai entendu dire que la vitesse de développement augmentait lorsque l'on travaillait avec des langages dynamiques, mais y a-t-il une preuve de cela? Je n'essaie pas de dire que les langages dynamiques ne sont pas efficaces, mais j'aimerais en quelque sorte voir les résultats d'une étude scientifique, si une telle chose existe.
Encore mieux seraient des informations sur les installations de maintenance. Certaines langues sont-elles plus faciles à déboguer que d'autres?
EDIT: Je suis principalement intéressé par les différences entre deux langues qui sont proches dans la syntaxe. Par exemple, je suppose que la programmation en C sera généralement plus lente que la programmation en Java; mais la programmation en Java est-elle plus rapide que la programmation en C #?
la source
Réponses:
Absolument, le langage de programmation fait la différence. Cependant, je pense que la différence est beaucoup plus sur la façon dont le programmeur est familier avec chaque langue que n'importe quel aspect particulier de la langue, en particulier compte tenu de votre contrainte de langues avec une syntaxe similaire.
la source
Pour moi, c'est un peu le type de pinceau qui vous permet de peindre plus rapidement.
Si vous considérez ce que vous peignez comme une marchandise, plus le pinceau est gros, plus vous peindrez vite.
Si vous voyez un bon code comme une forme d'art, alors il est moins proche de la taille du pinceau et plus exactement ce que vous faites avec vos pinceaux.
Désolé, c'est un peu une non-réponse à la vraie question.
la source
Je ne suis pas sûr que ce soit pertinent, mais c'est intéressant
Dans The Mythical Man Month, Fred Brooks mentionne des études comparant l'assemblage et les langages de niveau supérieur. Ils ont constaté que les programmeurs produisaient le même nombre d'instructions par an dans les deux, mais les instructions pour un langage de haut niveau étaient égales à plusieurs instructions en langage d'assemblage. Ainsi, en passant au langage de haut niveau, les programmeurs ont réalisé une augmentation quel que soit le multiple moyen de l'instruction d'assemblage à l'enseignement du langage en termes de productivité.
La même chose devrait être vraie de C vs Java / C #, je ne connais pas la vraie différence entre C # et Java. Mais chaque fois que vous augmentez le niveau d'abstraction, vous augmentez la productivité. Cependant, je pense également que cela réduira le contrôle sur ce que la machine fait réellement. Vous devez avoir confiance que la langue fait ce que vous voulez. Par exemple, dans un logiciel hautes performances, la récupération de place est inacceptable, sauf si vous avez un contrôle complet sur son exécution et sa durée.
la source
Qu'est-ce que la productivité? Qu'est-ce qu'un produit , même? Personne ne sait, mathématiquement parlant.
KLoC?
Complexité cyclomatique?
Points de fonction?
Je pense que vous devrez examiner le niveau de l'entreprise et effectuer des comparaisons de centiles avec d'autres programmeurs effectuant un travail similaire, puis mesurer les fonctionnalités fournies par programmeur. Ce sont des points très sophistiqués et subtils pour pouvoir mesurer statistiquement et conserver du sens.
la source
Imaginez comment cela serait testé: vous devez avoir un projet réel développé indépendamment à la fois à plusieurs reprises avec le même langage (pour éliminer la variabilité de l'expérience et des connaissances du programmeur) et avec des langues différentes (pour obtenir des données pour comparer les langues). Il me semble que l'expérience se développe rapidement à une taille ingérable.
Je serais ravi d'entendre parler des moyens de «réduire» l'expérience, ou des tentatives de réaliser réellement l'expérience comme indiqué.
la source