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.

6voto

Brian Punkte 115257

Siehe auch

Gibt es statistische Studien, die belegen, dass Python "produktiver" ist?

für einige Diskussionen über diese Art von Fragen.

3voto

Mark Byers Punkte 761508

Es wäre sinnvoller, die Programmierer zu bewerten, nicht die Sprachen. Wie lange es dauert, ein Programm in einer gängigen Sprache zu schreiben, hängt eher von den Fähigkeiten des Programmierers in dieser Sprache ab als von den Eigenschaften dieser speziellen Sprache.

3voto

duffymo Punkte 298898

Ich denke, dass die meisten Benchmarks und Erklärungen zu diesem Thema sehr wenig aussagekräftig sein werden.

Benchmarks können immer manipuliert werden; siehe die Geschichte von "Pet Store".

Eine Sprache, die für die Lösung einer bestimmten Art von Problemen gut geeignet ist, lässt sich möglicherweise nicht so gut auf eine andere anwenden.

Am wichtigsten sind die Fähigkeiten Ihres Teams, sein Wissen über eine bestimmte Technologie und wie gut Sie den Bereich kennen, den Sie zu lösen versuchen.

UPDATE: Steuerungssoftware für Düsentriebwerke und Hubschrauber ist eine sehr spezielle Untergruppe von Computerproblemen. Sie zeichnet sich durch sehr strenge, vollständige und detaillierte Spezifikationen und Qualitätssicherungsmaßnahmen aus, die sicherstellen, dass das mehrere Millionen Dollar teure Flugzeug nicht abstürzen kann.

Ich kann das (sehr gute) Zitat von John Strohm über die in Ada geschriebene Steuerungssoftware von Pratt & Whitney unterstützen. Die Steuerungssoftware für Kaman-Hubschrauber, die nach Australien verkauft wurden, wurde ebenfalls in Ada geschrieben.

Daraus lässt sich jedoch nicht schließen, dass Sie, wenn Sie sich entschließen, Ihre nächste Website in Ada zu schreiben, eine höhere Produktivität und weniger Fehler haben werden als wenn Sie C# oder Java oder Python oder Ruby wählen. Nicht alle Sprachen sind in allen Problemdomänen gleich gut.

2voto

Lutz Prechelt Punkte 32254

Vergleich von Sprachen/Frameworks für Webanwendungen

Le site Plattform_Formulare Projekt bietet einige Informationen dieser Art für Webanwendungen.

Es gibt drei Studien mit unterschiedlichen Aufgaben (2007, 2011, 2012), die alle das folgende Format haben: Mehrere Teams aus drei professionellen Entwicklern implementierten dieselbe Anwendung unter kontrollierten Bedingungen innerhalb von zwei Tagen. Die Studie deckt Java, Perl, PHP und Ruby ab und hat mehrere Teams für jede Sprache. Bei der Auswertung geht es um weit mehr als nur die Entwicklungszeit.

Zu den Ergebnissen der ersten Iteration gehören zum Beispiel

  • dass erleben Der Umgang mit der Sprache und dem Rahmen schien wichtiger zu sein als der Rahmen selbst.
  • dass Java die Tendenz, die Teams zu mühsamen Konstruktionen zu veranlassen, während Perl veranlasste sie zu pragmatischen (und recht praktischen) Konstruktionen.

Zu den Ergebnissen der zweiten Iteration gehören

  • dass Ruby on Rails war bei dieser Art von Projekt (das aufgrund seiner Dauer eher ein Rapid Prototyping als die vollständige Entwicklung einer ausgereiften Anwendung war) produktiver
  • und dass die einzige Ausnahme von der oben genannten Regel das Team war, das Symfony , a PHP Framework, das ähnliche Konzepte wie Ruby on Rails hat (aber immer noch die sehr unterschiedliche Basissprache darunter).

Siehe unter http://www.plat-forms.org oder suchen Sie im Internet nach "Plat_Forms". In den Berichten sind viele weitere Einzelheiten enthalten, insbesondere in dem dicken Techreport über Iteration 1.

1voto

Jonathan Fischoff Punkte 1437

Die meisten Programme müssen eine Schnittstelle zu einem anderen Framework haben. In der Regel ist es eine gute Idee, die Sprache zu wählen, die über Bibliotheken verfügt, die speziell auf Ihre Bedürfnisse zugeschnitten sind. Versuchen Sie zum Beispiel, ein verteiltes, redundantes Nachrichtensystem zu entwickeln? Wenn ja, würde ich Erlang verwenden. Wenn Sie versuchen, eine schnelle und schmutzige datengesteuerte Website zu erstellen, verwenden Sie Ruby und Rails. Sie verstehen die Idee. Für Echtzeit-DirectX, bei dem es auf Leistung ankommt, würde ich C++/C/Asm verwenden.

Wenn Sie etwas schreiben, das auf Algorithmen basiert, würde ich mich für eine funktionale Sprache wie Haskell entscheiden, obwohl sie eine sehr hohe Lernkurve hat.

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