Forscher der University of California, Davis, haben hunderte Projekte auf Github untersucht und fanden unter anderem Einflüsse der verwendeten Sprache auf die Codequalität.
Die Forscher untersuchten 729 Projekte mit zusammen 80 Millionen Zeilen Code in 17 Sprachen von C bis C++, Java bis JavaScript oder Scala bis Clojure. Sie fanden statistisch signifikante Hinweise dafür, dass strenge Typisierung besser ist als schwache und funktionale Sprachen wie Clojure, Scala, und Haskell besseren Code ergeben als prozedurale, Diese Einflüsse seien jedoch verhältnismäßig gering angesichts der dominierenden Faktoren wie Projektgröße oder Größe des Teams.
Programmierfehler, so die Forscher, traten zwar in allen Sprachen auf, aber einige sind für bestimmte Sprachen eher typisch als andere. So fanden sie beispielsweise 122 Runtime Errors in Javascript, die es in der typisiserten Abart Typescript nicht gibt, weil sie dort der Compiler bereits in der Entwicklungsphase erkennt. Speicherfehler – verantwortlich für 5,44 Prozent der Bugfix Commits – fanden sich gehäuft in Sprachen, die den Speicher nicht managen, also in C, C++ und Objective-C. In den Sprachen mit verwaltetem Speicher traten Speicherfehler am häufigsten in Java auf. Cocurrency Errors, die häufigste Spielart sind hier Race Conditions, traten ebenfalls unterschiedlich oft auf, von 41 Prozent C++ bis 92 Prozent in Go.Die starke Häufung in Go, erklären die Forscher, liege daran, dass Go mit einem Race-Detection Tool ausgeliefert wird, dass es dem Programmierer erleichtert, diese Fehler zu finden.




http://macbeth.cs.ucdavis.e… – warum kein link zur studie? world wide web nicht verstanden?
Die Überschrift ist irreführend. Wo geht es nun bitte um “funktionale Programmierung”? (und was sind auch “Funktionale Sprachen”, abgesehen von ML und Haskell?) Im dem Beitrag scheint es nur um starke Typisierung zu gehen.Und diese Konstruktion macht auch keinen Sinn: “Cocurrency Errors, die häufigste Spielart sind hier Race Conditions, traten ebenfalls unterschiedlich oft auf, von 41 Prozent C++ bis 92 Prozent in Go.Die starke Häufung in Go, erklären die Forscher, liege daran, dass Go mit einem Race-Detection Tool ausgeliefert wird, dass es dem Programmierer erleichtert, diese Fehler zu finden.”In Go-Programmen sind die meisten Race Conditions, weil es ein Tool gibt,… Mehr »