← Nieuwste papers
💻 computer science

A Longitudinal Study of Dependency Reclassifications in JavaScript Projects

Deze studie toont aan dat het herclassificeren van afhankelijkheden, inclusief verwijdering en rolwijziging, een veelvoorkomende en langdurige onderhoudsactiviteit is in JavaScript-projecten die vaak wordt verwaarloosd ten opzichte van versie-updates.

Oorspronkelijke auteurs: Yuxin Liu, Cristian Bogdan, Benoit Baudry

Gepubliceerd 2026-04-13
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Yuxin Liu, Cristian Bogdan, Benoit Baudry

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Titel: De Grote Verhuizing van Software-Bouwblokken

Stel je voor dat een softwareproject (zoals een website of een app) een enorm huis is dat je zelf bouwt. Om dit huis te bouwen, gebruik je niet alleen je eigen materialen, maar huur je ook gereedschap en meubels van anderen. In de programmeertaal JavaScript noemen we deze gehuurde stukjes code "afhankelijkheden" (dependencies).

De onderzoekers van dit paper hebben gekeken naar 33.000 van deze "huizen" en hoe de bouwers (de ontwikkelaars) omgaan met hun gehuurde spullen. Ze ontdekten iets verrassends: het is niet alleen een kwestie van welke spullen je huurt, maar vooral waar je ze in het huis plaatst.

Hier is wat ze vonden, vertaald naar alledaagse taal:

1. De Drie Kamers in je Huis

In JavaScript-projecten zijn er drie soorten kamers waar je je spullen in kunt zetten:

  • De Woonkamer (Core): Dit zijn de spullen die je altijd nodig hebt om in het huis te wonen. Als je de woonkamer sluit, kan niemand het huis meer betreden. (Voorbeelden: de koelkast, de verwarming).
  • De Werkplaats (Dev): Dit zijn gereedschappen die je alleen nodig hebt als je aan het bouwen of klussen bent. Als het huis klaar is en je gaat erin wonen, heb je de hamer en de ladder niet meer nodig. (Voorbeelden: verf, schroeven, testmateriaal).
  • De Gastenruimte (Peer): Dit zijn spullen die je verwacht dat je gasten meebrengen. Je zegt: "Jullie moeten jullie eigen stoelen meenemen, ik heb er genoeg voor mezelf." (Voorbeelden: specifieke plugins die een gebruiker zelf moet installeren).

2. Het Grote Verwarringsspel

De onderzoekers keken naar de geschiedenis van deze huizen. Ze zagen dat ontwikkelaars vaak vergeten om te zeggen in welke kamer een spul hoort.

  • Soms staat een hamer (werkplaats) per ongeluk in de woonkamer. Dat betekent dat je elke keer dat je je huis opent, die hamer meeneemt. Dat maakt je huis zwaar en onnodig groot.
  • Soms staat een stoel (woonkamer) in de gastenruimte. Dan moet de gast die stoel zelf meenemen, wat vervelend is als ze vergeten zijn om hem te pakken.

De ontdekking: De meeste ontwikkelaars zijn niet perfect bij het begin. Ze zetten spullen in de verkeerde kamer. Maar het goede nieuws is: ze corrigeren dit later!

3. Wat doen de ontwikkelaars? (De Drie Manieren van "Huisverbetering")

De onderzoekers zagen drie hoofdmanieren waarop mensen hun spullen opnieuw ordenen:

  • Het Grote Opruimen (Verwijderen):
    Vaak merken mensen dat ze een spul helemaal niet meer nodig hebben. Ze gooien het weg.

    • Interessant detail: Soms gooien ze 50 spullen tegelijk weg in één grote opruimbeurt. Maar soms merken ze later: "Oh nee, die ene schroevendraaier hadden we toch nodig!" en halen ze een paar spullen weer terug. Het is een proces van proberen en fouten maken.
  • De Verhuizing (Herschikking):
    Soms is een spul wel nodig, maar op de verkeerde plek.

    • Voorbeeld: Een ontwikkelaar merkt dat een bouwtool (Werkplaats) per ongeluk in de Woonkamer staat. Hij verplaatst het naar de Werkplaats. Hierdoor wordt het huis lichter voor de bewoners.
    • Het rare: Soms verplaatsen ze iets van Woonkamer naar Werkplaats, en een jaar later weer terug naar de Woonkamer. Het is alsof ze twijfelen: "Is dit nu een woonkamer-spul of een werkplaats-spul?"
  • De Gastenverwarring (Peer Dependencies):
    Soms zeggen ze: "Jullie gasten moeten dit meenemen." Maar later merken ze dat gasten dit vergeten of dat het te lastig is. Dan zeggen ze: "Oké, wij nemen het zelf maar mee." Ze verplaatsen het van de Gastenruimte naar hun eigen Woonkamer.

4. Het Duurt Lang!

Een van de belangrijkste ontdekkingen is dat dit geen snelle beslissingen zijn.

  • Het duurt gemiddeld 408 dagen (bijna een jaar en een half) voordat iemand een spul verplaatst of verwijdert.
  • Het is alsof je een jaar lang een grote, zware kast in je slaapkamer hebt staan, terwijl je eigenlijk weet dat hij in de garage hoort. Pas na een jaar besluit je: "Oké, ik ga hem verplaatsen."
  • Soms duurt het zelfs jaren voordat een spul definitief de juiste plek heeft gevonden.

Waarom is dit belangrijk?

Stel je voor dat je een pakketje bestelt bij een winkel. Als de winkel denkt dat je een hamer nodig hebt (en deze in je pakketje stopt), maar jij wilt alleen een stoel, dan is je pakketje zwaarder en duurder dan nodig.

In de digitale wereld betekent dit:

  1. Veiligheid: Als je onnodige spullen in je Woonkamer hebt staan, kunnen hackers die spullen misschien misbruiken om je huis binnen te komen.
  2. Snelheid: Een huis vol met onnodige gereedschap is traag om te openen.
  3. Kosten: Het kost tijd en geld om die onnodige spullen te onderhouden.

Conclusie

Deze studie zegt eigenlijk: "Wees niet te streng voor jezelf als je de eerste keer de verkeerde kamer kiest."

Het is heel normaal dat ontwikkelaars hun spullen verplaatsen, terug halen en opnieuw ordenen. Het is een continu proces van leren en verbeteren, net als het inrichten van een nieuw huis. De boodschap voor de makers van software-tools is: Help ontwikkelaars niet alleen bij het kopen van nieuwe spullen, maar help ze ook om te zien welke spullen al jarenlang in de verkeerde kamer staan, zodat ze hun huis lichter en veiliger kunnen maken.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →