37 Stimmen

Entwicklungszeit in verschiedenen Sprachen

Kennt jemand Untersuchungen oder Benchmarks darüber, wie lange es dauert, die gleiche Anwendung in verschiedenen Sprachen zu entwickeln? Eigentlich suche ich nach Java vs. C++, aber jeder Vergleich wäre nützlich. Ich habe das Gefühl, dass es in Code Complete einen Abschnitt zu diesem Thema gibt, aber mein Exemplar ist auf der Arbeit.

Bearbeiten:

Es gibt viele interessante Antworten auf diese Frage, aber es scheint ein Mangel an wirklich guter Forschung zu bestehen. Ich habe eine Vorschlag drüben bei meta über dieses Problem.

40voto

John R. Strohm Punkte 7404

Pratt & Whitney, Anbieter von Düsentriebwerken für zivile und militärische Anwendungen, hat vor vielen Jahren eine Studie zu diesem Thema durchgeführt, ohne die Absicht zu haben, eine solche Studie durchzuführen.

Sie haben in den 1990er Jahren den gleichen Metrik-Kick wie alle anderen gemacht. Sie sammelten eine Reihe von Daten über ihre Triebwerkssteuerungsprojekte, darunter auch Zeitkartendaten. Sie werteten sie aus. Dem armen Trottel, der die Daten auswerten sollte, fiel etwas an den Ergebnissen auf: Die militärischen Projekte hatten einheitlich die doppelte Produktivität der Programmierer und ein Viertel der Fehlerdichte als die zivilen Projekte.

Dies ist an sich schon bedeutsam. Es bedeutet, dass Sie nur noch halb so viele Programmierer brauchen und nicht mehr so viel Zeit mit der Behebung von Fehlern verbringen werden. Noch wichtiger ist jedoch, dass es sich um einen Vergleich von Äpfeln zu Äpfeln handelt. Ein Triebwerksregler ist ein Triebwerksregler.

Er suchte dann nach Erklärungen für die Kandidaten. Alle üblichen Kandidaten wurden angeführt: individuelle Erfahrung, Teamgröße, Werkzeuge, Softwareprozesse, Stabilität der Anforderungen, alles, und sie wurden ausgeschlossen, als sich herausstellte, dass die Geschichte zu diesen Punkten auf beiden Seiten der Kluft die gleiche war. Am Ende des Tages zeigte sich nur ein statistisch signifikanter Unterschied.

Die zivilen Projekte wurden in allen erdenklichen Sprachen verfasst. Die militärischen Projekte waren alle in Ada geschrieben.

In JEDEM EINZELNEN FALL führte der Einsatz von Ada bei Pratt & Whitney im Vergleich zu allen anderen Anbietern zu einer Verdoppelung der Produktivität und zu einem Viertel der Fehlerdichte.

Ich weiß, was die fliegenden Code-Affen sagen werden. "Man kann in jeder Sprache gute Arbeit leisten." Theoretisch ist das wahr. In der Praxis hat es jedoch den Anschein, dass zumindest bei Pratt & Whitney die Sprache einen Unterschied macht.

Das letzte Mal, als ich davon hörte, verfügte die Unternehmensleitung von Pratt & Whitney, dass ALLE Projekte zur Steuerung von Strahltriebwerken in Ada durchgeführt werden sollten.

Nein, ich habe kein Zitat. Es wurde nie eine Arbeit geschrieben. Meine Quelle für diese Geschichte war der arme Trottel, der die Zahlen ausgerechnet hat. Hier ist eine ähnliche Studie aus dem Jahr 1995:

http://archive.adaic.com/intro/ada-vs-c/cada_art.html

Das war übrigens, BEVOR Boeing die 777 gebaut hat und BEVOR die Geschichte mit den 777-Bremsenzulieferern passierte. Aber das ist eine andere Geschichte.

23voto

Don Stewart Punkte 136046

Eine der wenigen mir bekannten finanzierten wissenschaftlichen Studien zur sprachübergreifenden Produktivität stammt aus den frühen 90er Jahren und wurde von der ARPA und dem ONR finanziert,

Wir beschreiben die Ergebnisse einer Experiment, bei dem mehrere konventionelle Programmiersprachen, zusammen mit der funktionalen Sprache Haskell, verwendet wurden, um den Prototyp eines Naval Surface Warfare Center (NSWC) Anforderung für einen Geometric Region Server. Die resultierenden Programme und Entwicklungsmetriken wurden von einem von der Ausschuss geprüft, der von der Marine ausgewählt wurde. Die Ergebnisse zeigen, dass das Haskell Prototyp deutlich weniger Zeit in Anspruch nahm weniger Zeit für die Entwicklung benötigte und wesentlich prägnanter und leichter zu verstehen war als der.

15voto

ChristopheD Punkte 106139

Dieser Artikel (ein pdf) enthält einige Benchmarks (beachten Sie, dass sie aus dem Jahr 2000 stammen) zwischen C, C++, Perl, Java, Perl, Python, Rexx und Tcl.

Eine allgemeine Weisheit, die meiner Meinung nach zutrifft (auch irgendwo in diesem Artikel):

The number of lines written per hour is independent of the language

9voto

Pavel Radzivilovsky Punkte 18418

Meinung: Wichtiger ist, was für einen bestimmten Entwickler, zum Beispiel Sie selbst, schneller ist. Was Sie gewohnt sind, wird in der Regel schneller sein. Wenn Sie 20 Jahre lang an die Fallstricke von C++ gewöhnt sind und niemals eine nicht initialisierte Variable überspringen, wird das für jeden schneller sein als Java.

Wenn Sie sich alle Parameter von CreateWindowEx() auswendig merken, wird es schneller sein als MFC oder Winforms.

7voto

Carl Smotricz Punkte 64366

Ein paar anekdotische Daten:

Zum Projekt Euler, das zum Programmieren von Lösungen für mathematische Probleme auffordert,

  • die kürzeste Lösungen sind fast ausnahmslos in J oder K geschrieben, einem Verwandten von APL; gelegentlich gibt es auch MatLab-Lösungen im gleichen Bereich. Man kann jedoch argumentieren, dass diese Sprachen auf Mathematik spezialisiert sind.
  • Auf dem zweiten Platz lagen Ruby-Lösungen. Eine Menge Algorithmus kann in sehr wenig Code verpackt werden, und es ist viel besser lesbar als J / K.
  • Python- und Haskell-Lösungen schnitten ebenfalls sehr gut ab, was die LOC betrifft.

Die Frage bezog sich auf die "schnellste Entwicklung", nicht auf den "kürzesten Code". Aber es ist denkbar, dass kürzere Lösungen schneller zu entwickeln sind - jedenfalls für langsame Tipper!


Es gibt einen jährlichen Wettbewerb unter Robotikern. Die Teilnehmer erhalten einige Spezifikationen für eine bestimmte Hardware, ein praktisches Problem, das sie in Software lösen müssen, und eine begrenzte Zeit, um dies zu tun. Natürlich wieder sehr bereichsspezifisch. Die Programmierer haben die Wahl zwischen verschiedenen Werkzeugen, darunter natürlich auch die Sprache. Jedes Jahr verwendete das Siegerteam (oft eine einzelne Person) Forth.


Diese zugegebenermaßen begrenzte Stichprobe deutet darauf hin, dass die "Entwicklungsgeschwindigkeit" und die "Auswirkung der Sprache auf die Geschwindigkeit" oft sehr stark von der Problemdomäne abhängen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X