Ich habe viele Tests gesehen, die die Ausführungsgeschwindigkeit von Programmiersprachen messen, aber ich habe nie Tests gefunden, die die Entwicklungsgeschwindigkeit messen.
Ich habe gehört, dass die Entwicklungsgeschwindigkeit bei der Arbeit mit dynamischen Sprachen erhöht wird, aber gibt es dafür einen Beweis? Ich versuche nicht zu sagen, dass dynamische Sprachen nicht effizient sind, aber ich würde gerne die Ergebnisse einer wissenschaftlichen Studie sehen, wenn es so etwas gibt.
Noch besser wären Informationen zur Wartungseinrichtung. Sind einige Sprachen einfacher zu debuggen als andere?
EDIT: Ich interessiere mich hauptsächlich für die Unterschiede zwischen zwei Sprachen, die in der Syntax nahe beieinander liegen. Ich denke zum Beispiel, dass die Programmierung in C normalerweise langsamer ist als die Programmierung in Java. Aber ist das Programmieren in Java schneller als das Programmieren in C #?
quelle
Antworten:
Absolut die Programmiersprache macht einen Unterschied. Ich denke jedoch, dass der Unterschied weitaus mehr darin besteht, wie vertraut der Programmierer mit jeder Sprache ist, als mit einem bestimmten Aspekt der Sprache, insbesondere angesichts Ihrer Einschränkung von Sprachen mit ähnlicher Syntax.
quelle
Für mich ist dies eine Art Analogie zu der Art von Pinsel, mit der Sie schneller malen können.
Wenn Sie überlegen, was Sie als Ware malen, malen Sie umso schneller, je größer der Pinsel ist.
Wenn Sie guten Code als Kunstform sehen, entspricht er weniger der Größe des Pinsels als vielmehr dem, was Sie genau mit Ihren Pinseln tun.
Entschuldigung, dies ist eine Art Nichtantwort auf die eigentliche Frage.
quelle
Ich bin nicht sicher, ob dies relevant ist, aber es ist interessant
In The Mythical Man Month erwähnt Fred Brooks Studien zum Vergleich von Assembler- und höheren Sprachen. Sie stellten fest, dass Programmierer in beiden Fällen die gleiche Anzahl von Anweisungen pro Jahr produzierten, die Anweisungen für eine Hochsprache jedoch mehreren Anweisungen in Assemblersprache entsprachen. Durch die Umstellung auf die Hochsprache erzielten die Programmierer eine Steigerung der Produktivität unabhängig vom durchschnittlichen Vielfachen des Assemblierungsunterrichts gegenüber dem Sprachunterricht.
Das gleiche sollte für C vs Java / C # gelten, ich kenne den wirklichen Unterschied zwischen C # und Java nicht. Aber jedes Mal, wenn Sie den Abstraktionsgrad erhöhen, erhöhen Sie die Produktivität. Ich denke jedoch auch, dass dies die Kontrolle darüber, was die Maschine tatsächlich tut, verringern wird. Sie müssen darauf vertrauen, dass die Sprache tut, was Sie wollen. In Hochleistungssoftware ist die Speicherbereinigung beispielsweise nicht akzeptabel, es sei denn, Sie haben die vollständige Kontrolle darüber, wann und wie lange sie ausgeführt wird.
quelle
Was ist Produktivität? Was ist überhaupt ein Produkt ? Mathematisch gesehen weiß es niemand.
KLoC?
Zyklomatische Komplexität?
Funktionspunkte?
Ich glaube, Sie müssten sich die Geschäftsebene ansehen und Perzentilvergleiche mit anderen Programmierern durchführen, die ähnliche Arbeiten ausführen, und dann die pro Programmierer bereitgestellten Funktionen messen. Dies sind sehr ausgefeilte und subtile Punkte, um die Bedeutung statistisch messen und beibehalten zu können.
quelle
Stellen Sie sich vor, wie dies getestet werden würde: Sie müssen ein reales Projekt unabhängig voneinander entwickeln lassen, sowohl wiederholt mit derselben Sprache (um die Variabilität der Programmiererfahrung und -kenntnisse zu beseitigen) als auch mit verschiedenen Sprachen (um einige Daten zum Vergleichen der Sprachen zu erhalten). Mir scheint, dass das Experiment schnell zu einer unüberschaubaren Größe wächst.
Ich würde gerne hören, wie das Experiment "verkleinert" werden kann oder wie versucht wird, das Experiment tatsächlich wie angegeben durchzuführen.
quelle