Die Befürworter der funktionalen Programmiersprachen behaupten, dass die funktionale Programmierung es einfacher macht, über Code nachzudenken. Die Befürworter statisch typisierter Sprachen geben an, dass ihre Compiler genügend Fehler erkennen, um die zusätzliche Komplexität von Typsystemen auszugleichen. Aber alles, was ich zu diesen Themen lese, basiert auf rationalen Argumenten, nicht auf empirischen Daten.
Gibt es empirische Studien darüber, welche Auswirkungen die verschiedenen Kategorien von Programmiersprachen auf Fehlerraten oder andere Qualitätsmetriken haben?
(Die Antworten auf diese Frage scheinen darauf hinzudeuten, dass es keine derartigen Studien gibt, zumindest nicht für die dynamische oder die statische Debatte.)
Antworten:
In der Wissenschaft wird zu diesem Thema geforscht. Ich kenne einige Beispiele, obwohl Sie die Schlussfolgerungen mit Vorsicht behandeln sollten:
Ein Experiment über statische und dynamische Typsysteme: Zweifel an den positiven Auswirkungen statischer Typsysteme auf die Entwicklungszeit, Stefan Hanenberg. In Proc OOPSLA, 2010. ACM Link
Eine empirische Studie zur statischen Typisierung in Ruby, M. Daly, V. Sazawal, J. Foster. In Proc PLATEAU, 2010. PDF
Ein kontrolliertes Experiment zur Bewertung der Vorteile der Argumenttypprüfung, Lutz Prechelt und Walter F. Tichy. IEEE TSE, 1998. IEEE Link
Ich bin sicher, dass es noch andere Papiere gibt. Im Allgemeinen ist dieser Bereich jedoch aus offensichtlichen Gründen äußerst umstritten - es ist wirklich schwierig, eine objektive Bewertung vorzunehmen !!
quelle
Eine berühmte Studie ist Lutz Prechelt. Ein empirischer Vergleich von sieben Programmiersprachen. IEEE Computer [33 (10): 23-29], Oktober 2000
Prechelt diskutiert die Programmzuverlässigkeit und untersucht auch die Ausführungszeit und den Speicherverbrauch.
quelle
Obwohl es nicht mit der Codequalität als solcher zu tun hat, wird in dieser Studie untersucht, wie Anfänger mit verschiedenen Sprachen lernen. Sie vergleichen insbesondere, wie sich Anfänger beim Lernen von Perl gegen Quorum schlagen, einer Unterrichtssprache, die die Autoren vergleichen möchten. Das wirklich Coole an diesem Artikel ist, dass sie tatsächlich eine Kontrollsprache entwickeln, bei der die Syntax zufällig generiert wird, als eine Art "Placebo" -Sprache. Dieser Ansatz kann sehr interessant sein, wenn er auf Sprachen und Codequalität angewendet wird und dabei hilft, einige dieser kniffligen Störfaktoren beim Vergleich von Sprachen zu kontrollieren.
quelle