Door donderslag: Ligt dat aan de "spaghetticode" ik denk het wel. Microsoft heeft altijd de eigenschap gehad dat ze alles willen integreren en dat terwijl in UNIX alles werd losgetrokken van elkaar.
Ik denk dat je de spijker op zijn kop slaat met die focus op integratie in contrast met een focus op losse onderdelen die zelfstandig goed werken en ondertussen goed in samenhang te gebruiken zijn. De integratie is marketinggedreven, het verkoopt goed als je tegen een klant kan zeggen dat die met één produkt klaar is, de andere benadering is domweg goed technisch ontwerp. En natuurlijk houdt de "integratie" in de praktijk in dat de klant helemaal niet met een produkt klaar is maar gaandeweg ontdekt dat er allerlei produkten nodig zijn om de mogelijkheden te ontsluiten, die er goed mee "geïntegreerd" zijn. Je wordt als klant dan een platform ingezogen: het zuigt. En voor de consumentenmarkt worden er vergelijkbare afhankelijkheden gecreëerd, maar nu ook met als doel om dingen automagisch te laten gebeuren voor gebruikers die anders niet met hun eigen systeem weten om te gaan.
Maar de term "spaghetticode" vind ik daarvoor misplaatst. Dat is wat je krijgt als programmeurs hun code niet structureren, overal globale variabelen gebruiken, als de taal het toelaat met goto's de meest rare sprongen maken. Spaghetticode is code die zo ondoorgrondelijk is dat het een drama is om het te onderhouden.
Het is heel goed mogelijk dat die om commerciële redenen "geïntegreerde" code op technisch niveu keurig modulair opgezet is en goed onderhoudbaar is, en dan is het voor mij geen spaghetticode. Het probleem is eerder een spaghetti-ontwerp op een veel globaler niveau, ingegeven door die hang naar integratie en automagie. Voor een deel zijn de consequenties daarvan natuurlijk heel vergelijkbaar, het kan zich heel goed in dit soort bugs uiten.
@The FOSS: Jou heb ik er ooit op gewezen, als reactie op je beeld van spaghetticode, dat ik in mijn arbeidsverleden sites heb meegemaakt waar Windows-servers en -werkstations indrukwekkend stabiel en probleemloos draaiden. Mijn argument was dat het beeld van een chaotische basis niet kan kloppen als dat ermee te bouwen is. Ik denk dat mensen die Windows tot op het bot kennen een stabiele basis zien waar goed op te bouwen is, en moeiteloos door het alles-hangt-aan-alles-effect weten heen te prikken, voor zover dat al aanwezig is op het niveau waar zij zich op richten. Ik ben zelf niet een van die mensen, maar ik heb met ze samengewerkt en heb het met eigen ogen goed zien gaan. Op een van die plekken was tegelijkertijd op functioneel niveau het zuig-effect gaande van alles dat aan alles hing, waardoor management zich geroepen voelde steeds meer software van Microsoft aan te schaffen om de voorgespiegelde utopie te bereiken.
Ik vind dat bij een beeld passen waar op de diepere technisch niveaus een heleboel goed geïmplementeerd is, maar op het niveau waar commerciële keuzes hun stempel drukken dingen aan elkaar hangen op manieren die meer het belang van de leverancier dan dat van de klant dienen.
Geen spaghetticode dus, wel een probleem op een ander niveau, waar Microsoft als grote leverancier overigens in de verste verte niet uniek in is.