← Neueste Arbeiten
💻 computer science

A Longitudinal Study of Dependency Reclassifications in JavaScript Projects

Diese Studie analysiert die weit verbreitete Praxis der Neuordnung von Abhängigkeiten in JavaScript-Projekten und zeigt, dass das Entfernen und Umdefinieren von Rollen (Core, Dev, Peer) ein häufiger, oft langwieriger Wartungsprozess ist, der über reine Versionsupdates hinausgeht.

Ursprüngliche Autoren: Yuxin Liu, Cristian Bogdan, Benoit Baudry

Veröffentlicht 2026-04-13
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Yuxin Liu, Cristian Bogdan, Benoit Baudry

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stell dir vor, ein JavaScript-Projekt ist wie ein großes, lebendiges Haus, das von Entwicklern gebaut wird. Um dieses Haus zu errichten und zu pflegen, nutzen die Bauherren Werkzeuge und Materialien von außen – das sind die Abhängigkeiten (Dependencies).

In der Welt von JavaScript gibt es ein kleines Regelbuch namens package.json. In diesem Buch wird für jedes Werkzeug genau festgehalten, wofür es gedacht ist:

  1. Core (Kern): Werkzeuge, die das Haus täglich braucht, um zu funktionieren (wie Strom oder Wasser).
  2. Dev (Entwicklung): Werkzeuge, die nur beim Bauen oder Reparieren gebraucht werden (wie eine Säge oder einen Hammer), aber nicht im fertigen Haus stehen müssen.
  3. Peer (Gast): Werkzeuge, die der Hausbesitzer (das Projekt) eigentlich nicht selbst besitzt, sondern vom Mieter (dem Nutzer) mitgebracht werden sollen.

Das Problem: Das Chaos der Umzüge

Bisher haben Forscher vor allem geschaut, wie oft die Bauherren die Version eines Werkzeugs updaten (z. B. von Säge-Modell 1.0 auf 1.1). Aber sie haben fast nie beachtet, wie oft die Bauherren die Rolle eines Werkzeugs ändern.

Stell dir vor, du hast einen riesigen Staubsauger im Keller (Core), aber du merkst nach einem Jahr: „Moment mal, den brauche ich nur, wenn ich renoviere!" Also räumst du ihn in den Schuppen (Dev). Oder du hast einen Gast, der seine eigene Kaffeemaschine mitbringt (Peer), aber du merkst: „Nein, die Kaffeemaschine ist so wichtig, dass wir sie selbst kaufen und betreiben sollten" (Core).

Diese Studie von Liu, Bogdan und Baudry hat sich genau diese Umzüge und Rollenwechsel angesehen. Sie haben über 33.000 JavaScript-Projekte wie ein riesiges Archiv durchsucht, um zu sehen, wie oft und warum diese Umzüge passieren.

Die wichtigsten Entdeckungen (in einfachen Worten)

1. Es passiert ständig!
Fast 80 % aller Projekte haben mindestens einmal ein Werkzeug umgeschichtet. Es ist keine Ausnahme, sondern ein ganz normaler Teil des Lebenszyklus eines Projekts.

2. Das große Aufräumen (Entfernung)
Die häufigste Aktion ist das Wegwerfen. Fast alle Projekte (97 %) haben irgendwann Werkzeuge entfernt, die sie nicht mehr brauchen.

  • Der „Säuberungs-Effekt": Oft werden viele Werkzeuge auf einmal in einem großen Haufen weggeräumt (wie beim Frühjahrsputz).
  • Das „Bereuen": Manchmal werfen die Bauherren Dinge zu schnell weg. Etwa ein Drittel der Projekte holt entfernte Werkzeuge später wieder zurück, weil sie doch noch gebraucht wurden.

3. Das Rollen-Spiel (Umgruppierung)
Manchmal wird ein Werkzeug nicht weggeworfen, sondern nur umgedeutet.

  • Vom „Kern" zum „Schuppen": Ein Werkzeug, das im fertigen Haus stehen sollte, wird als zu schwerfällig erkannt und nur noch für Reparaturen genutzt.
  • Vom „Gast" zum „Eigentum": Manchmal entscheiden die Bauherren: „Wir wollen nicht, dass der Mieter das Werkzeug mitbringt, wir kaufen es selbst."
  • Das Hin-und-Her: Bei etwa 11 % der Projekte ist die Entscheidung schwierig. Ein Werkzeug wandert hin und her: Erst Kern, dann Schuppen, dann wieder Kern. Es ist, als würde man sich nicht entscheiden können, ob ein Möbelstück im Wohnzimmer oder im Gästezimmer stehen soll.

4. Es dauert lange!
Das ist vielleicht die überraschendste Erkenntnis: Diese Umzüge geschehen nicht über Nacht.

  • Im Durchschnitt dauert es über ein Jahr (ca. 408 Tage), bis ein Werkzeug von seiner ursprünglichen Rolle in eine neue Rolle gewechselt oder endgültig entfernt wird.
  • Es ist wie ein langer Prozess des Ausprobierens: Erst nutzt man das Werkzeug falsch, dann merkt man es, dann korrigiert man es, und manchmal dauert es Jahre, bis man die perfekte Lösung gefunden hat.

Warum ist das wichtig?

Stell dir vor, du mietest eine Wohnung. Wenn der Vermieter Werkzeuge im Haus lässt, die nur für den Bau gedacht waren (z. B. eine riesige Baustelle im Wohnzimmer), ist das unnötig teuer und gefährlich.

  • Für die Werkzeuge (Tools): Bisherige Software-Tools zeigen nur an, was gerade im Haus ist. Sie sagen nicht: „Hey, dieser Staubsauger war vor zwei Jahren noch im Wohnzimmer, aber eigentlich gehört er in den Keller." Die Autoren sagen: Wir brauchen Tools, die diese Geschichte zeigen, damit Bauherren bessere Entscheidungen treffen.
  • Für die Vermieter (Package Manager): Die Plattformen, die diese Werkzeuge verteilen, sollten warnen, wenn jemand ein Bauwerkzeug (Dev) versehentlich in das Wohnzimmer (Core) stellt. Das macht das Haus schwerer und unsicherer.
  • Für die Forschung: Wir müssen verstehen, warum Menschen diese Fehler machen. Oft ist die Grenze zwischen „Bauwerkzeug" und „Alltagswerkzeug" einfach unklar.

Fazit

Diese Studie zeigt uns, dass die Liste der Werkzeuge in einem Software-Projekt niemals statisch ist. Sie ist wie ein lebendiger Organismus, der ständig wächst, schrumpft und sich neu sortiert. Entwickler sind keine perfekten Architekten, die alles beim ersten Mal richtig machen. Sie lernen durch Versuch und Irrtum, räumen auf, holen Dinge zurück und passen ihre Pläne über Jahre hinweg an.

Das Verständnis dieser „Umzüge" hilft uns, Software sicherer, sauberer und effizienter zu machen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →