Artikel
De store softwarevirksomheder som Microsoft, IBM, Sun og mange programmører arbejder med softwarekomponenter. Udviklingen af software præges af ideen om at bygge servere på internet, der leverer programmer til alle nettets computere som Lego-klodser.
Vi finder forståelsen af softwarekomponenter med en nøgle, der hedder genbrug.
Udgangspunktet er, at vi har konstrueret et produkt, som vi vil genbruge senere - så vi undgår at lave det om. Computerudviklingen giver genbrug i mange faser.
Programmering
Genbrug er et tema, der er ældre end computerindustrien. Ideen er, at samme program skal genbruges på mange maskiner, og samme maskine skal genbruges til forskellige opgaver. Det er den basale ide i al programmering .
Ideen med at alle programmer kan køre på alle computere er god og gammel. Men den er aldrig realiseret. Først var programmerne i praksis bundet til hardware med specifik processor. Det problem blev teknisk løst med styresystemet.
Styresystemer
Styresystemer som DOS, Windows og UNIX isolerer elektronikken fra programmerne. Det sikrer, at du ikke skal reinstallere dine programmer, hver gang du skifter printer, skærm eller andet. Styresystemet og driverne understøtter, at programmerne kører nogenlunde videre som før. Styresystemet bygger en bro, som giver både maskiner og programmer en neutral genbrugelig flade:
Men på dette sted i historien viser det sig, at programmerne stadig er dybt afhængig af platformen - styresystemet. Det er kostbart at overføre store programmer til andre styresystemer.
Denne binding bruger virksomheder som Microsoft til at sikre deres egne produkter. Windows-programmer kan umuligt genbruges på en Mac. Dermed er den oprindelige ide med uafhængighed og genbrug udskudt.
Objektorienteret genbrug
Argumentet for objektorienteret programmering er også genbrug. Når programmørerne organiserer deres programmer systematisk i objekter og klasser, kan programmører anvende moduler, som andre har lavet. Når dagens programmører udvikler software, skriver de kun en mindre del af programkoden selv. De basale funktioner hentes ind fra klassebiblioteker. Disse biblioteker følger altid med kompilerne, og de indeholder de funktioner som alle programmer har brug for.
Den objektorienterede filosofi understøtter genbrug for programmører, men den medførte også, at få linier programkode giver programmer på mange megabytes. Når programmerne bygges skal der en masse objekter med før det fungerer med de moderne grafiske brugerflader.
Men genbruget i objektorienteret programmering er programmørernes genbrug af programkode. Det er programmørerne, der arbejder med objekter og klasser. Når brugerne får det, er produktet blevet til et voldsomt stort program, der kun kan distribueres på CD-ROM, hvor alle programmørernes moduler er lænket sammen i en gigantisk portion spaghetti.
Microsoft Windows og Microsoft Office er gode eksempler på disse store programmerpakker, som tilbyder en stor totalløsning for computerbrugerne.
Med udbredelsen af internet og med interessen i at distribuere programmer over nettet, er sådanne store programmer ikke relevante. Her er idealet små programmer, der hurtigt overføres.
Softwarekomponenter
Softwarekomponenter er et varmt emne idag. Ideen er, at servere på internet kan levere aktive komponenter til alle. Komponenterne er funktioner pakket ind i små moduler, som kan køres på alle internet-computere. Komponenterne giver aktive programmer i modsætning til de passive web-sider, der idag dominerer internettet.
De store softwarefirmaer fører dette videre i strategien, at brugerne ikke skal købe programmerne, og selv have ansvaret for at de vedligeholdes. I fremtiden kan brugerne abonnere på programmer hos leverandører, som distribuerer dem over internet. Dette benyttes allerede idag ved internet-software. Her kan du opleve, at der automatisk åbnes vindue, som tilbyder dig en opgradering via internet til næste version af programmet.
Sun formulerede med Java sloganet for internet-programmering: write once - run everywhere. Hvilket er en ny-formulering af drømmen om det totale genbrug.
Her står situationen idag: Softwarekomponenter er genbrugelige Lego-klodser, som via internet kan distribueres til alle og enhver i en funktionel form. Men der er intens konkurrence om at beherske platformen for dette, for kontrollerer man grundlaget for systemet, da har man en stærk position i den videre udvikling.
Java-miljøet tilbyder komponenter, som er knyttet til sprogets platform. Microsofts tilbyder ActiveX komponenter, som er tæt knyttet til styresystemet Windows med deres programmer.
I Danmark har Forskningsministeriet frarådet offentlige institutioner i at bruge ActiveX komponenter på websider, fordi de gør brugerne afhængig af en firmaspecifik browser. Fødslen af den universelle genbrugelige softwarekomponent er hård.