Door
Ozzie PHP
op 24-06-2016 01:20
gewijzigd op 24-06-2016 01:26
6.802 views
Hi allemaal,
We weten allemaal wel wat software is, maar toch heb ik er een vraag over.
Is software iets wat per se geïnstalleerd moet worden (een computerprogramma), of kan software ook iets zijn wat voor een ander programma is ontwikkeld? Bijv. een plugin of bijv. een spreadsheet.
Stel mijn buurman wil bijhouden hoeveel en welke vogels er iedere dag voorbij vliegen. Ik maak voor hem een Excel-spreadsheet waarin hij in kolom A kan bijhouden hoeveel vogels hij geteld heeft en in kolom B welke soort het was. Vervolgens wordt in kolom C het totaal aantal vogels getoond dat voorbij is gekomen, plus een Top-5 van meest voorkomende vogels.
We hebben dus nu een spreadsheet met wat 'intelligentie' gebouwd. Mag je dit software noemen? Valt dit onder de definitie van software? Ik vroeg me dat af omdat je de spreadsheet zelf niet hoeft te installeren. Het is geen programma ... maar is het wel software?
Taalkundig en begripsmatig wordt onder software vaak alles geschaard dat geen hardware is. Juridisch zijn er echter wel verschillen tussen bijvoorbeeld data en programma-instructies.
In mijn ogen is software alleen software als er volgens een programma aan regels wordt gewerkt. Een normale spreadsheet telt dan niet, tenzij er knoppen en filters zijn ingebouwd om bijvoorbeeld te sorteren en dergelijke.
Wat mij betreft is eens spreadsheet data en geen software.
Data zijn ook software. Zelfs een televisieprogramma is software. De laatste jaren wordt het begrip software steeds meer gezien als synoniem met 'computerprogramma', maar dat is onterecht.
In lijn met wat Ward al heeft gezegd: als je het op een CD-ROM (of wat voor medium dan ook) kan schrijven, is het software.
>> Een normale spreadsheet telt dan niet, tenzij er knoppen en filters zijn ingebouwd om bijvoorbeeld te sorteren en dergelijke.
Dat kan ik wel volgen als het inderdaad alleen om data-invoer gaat ... maar als er ook iets met die invoer wordt gedaan (er vindt logica plaats, er worden automatisch dingen berekend), dan zou je kunnen zeggen dat het dus een soort van programmaatje is dat iets uitvoert ... en dus software??? Stel je maakt een plugin voor bijv. WordPress. Dan maak je niet het programma zelf (WordPress) maar je voegt er wel bepaalde functionaliteit/logica aan toe. Ik zou dus denken dat een plugin software is ... en een spreadsheet dan ook.
>> In lijn met wat Ward al heeft gezegd: als je het op een CD-ROM (of wat voor medium dan ook) kan schrijven, is het software.
Oké ... maar een tekstbestand of een foto kun je ook op cd-rom zetten ... en dat valt niet onder software (lijkt me althans).
Meer visies zijn welkom hoor. Ik had overigens meer 'consensus' verwacht hierover. Grappig dat de meningen aardig uiteen lopen :-)
Oké ... maar een tekstbestand of een foto kun je ook op cd-rom zetten ... en dat valt niet onder software (lijkt me althans).
Vanuit die redenering wellicht: een statisch bestand is geen software, een dynamisch bestand is wel "software". Het reageert immers op de input van de gebruiker van de "software".
?Onbekende gebruiker
24-06-2016 16:13
gewijzigd op 24-06-2016 16:37
Mijn optiek (in het kort):
- Software is geen computerprogramma, het is data
- Data wordt een programma wanneer het bedoeld is om uit te voeren door een computer
Je kunt het dan vergelijken met een actielijst met processorinstructies voor de CPU.
- Data wordt informatie wanneer het een betekenisvolle bijdrage levert voor een mens, die daar onder meer acties of conclusies aan kan verbinden
Wat betekent voor het voorbeeld met je buurman:
- Excel is een geregistreerd computerprogramma van Microsoft (programma)
- Kolom A en B zijn de data van je buurman (data)
- De intelligentere kolommen C en de Top-5 bevatten geaggregeerde data (informatie)
- De instructies die je buurman geeft aan Excel vormen inderdaad een progamma
Echter kan je je programma niet verkopen als losstaand programma, omdat je dan ook Excel erbij moet verkopen, en dat kan niet zonder instemming van Microsoft. Maar op het programma berust oa. auteursrecht bij je buurman. Je kunt je natuurlijk afvragen hoeveel dat waard is, vanwege trivialiteit. Stel dat je buurman het programma verkoopt, dan heeft de klant een aparte overeenkomst nodig met de buurman en met Microsoft, om het te kunnen draaien op zijn computer.
Overigens: er zijn praktisch geen programma's zonder meegeleverde data. Een programma heeft data nodig om te kunnen functioneren, denk aan de waarden van constante waarden, strings, geografisch, etc. of een combinatie daarvan. Die data wordt daarom beschouwd als intrinsiek onderdeel van het programma. Zo kan bijvoorbeeld ook een scorelijst niet functioneren zonder referentiewaarden, normtabellen e.d. Het hangt af van de licentie die je buurman kiest, of een derde partij vrij over die data mag beschikken of niet.
Jouw gekozen voorbeeld is de orde van de dag in computerland: onderaannemer na onderaannemer. En het kan niet anders vanwege de complexiteit van software. Bij elke onderaannemer, zeg een leverancier van een library of extensie moet je je juridisch via licentie(s) kunnen verantwoorden. De internationale FSF (Free Software Foundation) geeft licentiemodellen uit waaronder mensen hun software kunnen uitbrengen, als 'open source'. Open source impliceert een mate van vrijheid voor de klant waarbij het programma naar eigen inzicht aangepast en aangevuld mag worden. En niet - zoals veel mensen denken - dat het gratis is.
Aanvullend: je kunt niet zomaar elke software verkopen. Je mag geen software verspreiden die iets doet waarvoor een ander al een patent heeft. Zo mag je officieel geen programma maken dat het ribbon (lint) in Microsoft Office-applicaties heeft, zonder toestemming van Microsoft. Anders kan je worden aangeklaagd en wordt verspreiding van je programma verboden. De gemakkelijke weg is om toestemming te kopen van de patenthouder middels licentie(s).
Van echt grote softwarebedrijven wordt gezegd dat ze een patentoorlog houden, en elkaar geregeld in de rechtszaal treffen om elkaar met (hoeveelheden van) patenten om de oren te slaan. Zo verworden patenten tot juridische ammunitie. Niet iedereen is daar even blij mee, het zou innovatie in de weg staan. https://www.ffii.org/Frequently%20Asked%20Questions%20about%20software%20patents
Wellicht gaan wij in onze vaktaal wat genuanceerder om met het begrip "software".
Net zoals alles door buitenstaanders (naar mijn mening) te pas en te onpas bestempeld wordt als "hacking", "hacken", "gehacked".
Tegen de inburgering van begrippen die de definitie niet helemaal, of helemaal niet dekken is geen kruid gewassen.
Dat gezegd hebbende. Een spreadsheet lijkt mij meer een soort van container met data + optioneel code. Onder software versta ik meer een brok enen en nullen die autonoom kan opereren onder een besturingssysteem. Ik zou een spreadsheet dus ook geen software noemen want het heeft een spreadsheetprogramma nodig om iets te kunnen doen. Het stukje code/logica hierin zou je wellicht wel als software kunnen beschouwen. Of misschien moet je tussen data en software nog een derde stap tussenvoegen: ongecompileerde code of "scripts"? In zekere zin is dat ook data want het "doet" niets van zichzelf.
Daarmee zeg je dus min of meer dat software interactief moet zijn. Is volgens jou een spreadsheet software? Of moet deze dan een bepaalde vorm van 'intelligentie' bevatten (dingen doorrekenen).
Misschien ook wel geinig. We bouwen met z'n allen regelmatig aan websites. Stel we maken een tooltje waarmee de bezoeker van de website op basis van eigen wensen en behoeften een computer kan samenstellen. Als webbouwer denk ik dan gewoon dat ik een website aan het maken ben, maar in feite ontwikkel je dan dus ook software?
[size=xsmall]Toevoeging op 24/06/2016 16:22:00:[/size]
>> Een spreadsheet lijkt mij meer een soort van container met data + optioneel code.
Als een spreadsheet leeg is, ben ik het met je eens ... maar er zijn bijv. bedrijven die zelf een heel boekhoudprogramma hebben gemaakt in Excel (dus in de spreadsheet). Waarbij je 1 waarde invoert, die vervolgens weer op andere tabbladen wordt gebruikt om dingen door te rekenen en waarvan grafieken gemaakt worden. In zo'n geval spreek je niet meer over een data container, maar over een programma met intelligentie. Althans dat lijkt mij dan. Die intelligentie zit ingebouwd in die spreadsheet ... dus dan zou ik denken dat zo'n spreadsheet wél software is.
Vandaar dus de vraag ... hardware is makkelijk. Alle onderdelen die je in je computer propt of er aan vast koppelt. Maar wat is software? Als iets een bepaalde mate van intelligentie bevat, is het dan automatisch software? Is een spreadsheet die in cel C1 de cellen A1 en B1 bij elkaar optelt calculator-software? :-)