Door
Ozzie PHP
op 24-06-2016 01:20
gewijzigd op 24-06-2016 01:26
6.809 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?
>> Als je een spreadsheet nou gewoon een spreadsheet noemt, of een rekenblad of werkblad, dan heb je daarvan geen last meer...
Lol, dat is zeker waar. Dat was alleen de (insteek van de) vraag niet. De vraag was wat software is, en of bijv. een spreadsheet of plugin ook software is. Die vraag is in ieder geval beantwoord met een volmondig 'ja'.
De grap is nu dus wel dat iedereen die wel eens een digitale foto schiet, zich een 'software-ontwikkelaar' mag noemen :-) Vrijwel iedereen maakt tegenwoordig dus software! :D
In lijn met OOP programmeren zou je inderdaad wel kunnen zeggen dat we naast software en hardware nog data als derde object hebben. Data is iets. Software en hardware doen iets. Maar dat is bijna wetenschapsfilosofie.
Waar ik concreter meer moeite mee heb, is SELECT SUM(...) in SQL of array_sum(...) in PHP wél software noemen, maar een @SUM(...) géén software noemen. Dan maar liever alles software noemen, als compromis vooral.
?Onbekende gebruiker
27-06-2016 21:19
gewijzigd op 27-06-2016 21:23
Digitale opslag is ook software, maar wie zegt dat die ontwikkeld moet worden?
Hiermee is de programmering van de FPGA feitelijk gewoon data die tijdens de start van de array uit een bijhorende ROM kan worden gelezen.
Ik vrees dat je in het geval van FPGA's dan eea. moet verduidelijken, is dan de programmering van de FPGA dan geen software? Terwijl de interne gates de hardware zijn?
Ik bedoel, dat geldt toch ook voor 'gewone' software op een DVD (hardware)?
@Ward, het grootste probleem van classificeren zijn juist de overeenkomsten, want die overlappen doorgaans waar een classificatie hierarchisch is. Je kunt dan niet alle eigenschappen in een enkele classificatie vastleggen. Classificeren is vaak een beetje koffiedik kijken. Maar in het geval van software en hardware moet het toch duidelijk zijn?
@Ward, het grootste probleem van classificeren zijn juist de overeenkomsten, want die overlappen doorgaans waar een classificatie hiërarchisch is.
En dát is het fundamentele probleem van de vraag. De vraag "is het software of hardware" sluit elk alternatief uit. Er is geen derde of vierde mogelijkheid. Er is ook geen alternatief voor de geboden keuzen, want het is software óf hardware, maar niets dat erop lijkt én niets dat van de tweedeling software of hardware afwijkt. Dat is een sturende vraag.
Methodologisch dan hè, want juist op een forum kun je daarover discussiëren. :-)
Dus een normale gate array (grote verzameling elektrische componenten in chipvorm) wordt in de fabriek geprogrammeerd, en verkocht als hardware. Hoe een gate array geprogrammeerd wordt is beschreven in software. De uiteindelijke programmering wordt niet opgeslagen als bits maar veroorzaakt hardwarematige koppeling in de chip tussen elektrische componenten, en is dus hardware. Dit principe is 1-op-1 te vergelijken met het met een patchen van een analoge computer, alleen is de schaal letterlijk anders. Zie https://en.wikipedia.org/wiki/Analog_computer
Bij een FPGA kan soms zelfs de eindgebruiker de hardwarematige werking van de chip herconfigureren. De configuratie is software zolang het als data is opgeslagen, bijvoorbeeld in een bijbehorende ROM. Wanneer met die software een FPGA is geprogrammeerd heeft de software zijn uitwerking gehad en is het resultaat hardware.
Ik trek een parallel met de tekenmachine van LEGO, waar de tekening software is zolang het in bits is opgeslagen. Wanneer die software eenmaal (of vaker) is gebruikt om een tekening te maken, is die tekening hardware.
Het enige dat ik me kan voorstellen is dat er juristen en andere ambtenaren zijn die het begrip software involledig begrijpen, en daar hun eigen voorstelling bij hebben, waardoor scheve wetgeving ontstaat.
Er zijn dan ook wel erg weinig mensen die het wezenlijk interesseert, zoals bij de term muziek. Muziek is altijd live, is muziek opgenomen dan heet hetgeen dat is opgenomen een (muziek-)registratie. Velen beschouwen zelfs het opslagformaat (LP of MP3) synoniem aan muziek, en toegegeven, in de volksmond maakt het weinig uit.
Maarja, we zijn hier nu aan het discussiëren geslagen...
Dus "mediumware" zal niet nodig zijn :)
Er schiet me nog te binnen dat iemand kan aanvoeren dat de schakelaars in een FPGA ook te beschouwen zijn als bits, en dat als je die uit zou kunnen lezen, de configuratie van de FPGA kunt lezen.
Het cruciale verschil dat ik dan zou willen aanbrengen is dat die bits in een FPGA niet bedoeld zijn om te worden verwerkt door een microcontroller, het is dus geen software. Die bits zijn de microcontroller, en dus hardware.
Echter, de bits van een FPGA die configuratiedata bevatten (bv. ROM) waarmee je de FPGA zou kunnen programmeren is software. Zoals Ben kunnen FPGA's uit software (ROM) en hardware (CPU, ..) tegelijk bestaan. Zouden we dit onderscheid tussen de onderdelen van een FPGA negeren dan wordt de typering onzinnig, zoals de vraag of een complete PC nou hardware OF software is.
Overigens blijft Wards punt van kracht; stel dat je een FPGA wel zou moeten classificeren onder hardware of software? Dan zou dat hardware zijn, omdat de essentie van het ding is dat het iets is en doet, een FPGA is geen programma en wordt niet typisch ingezet als geheugenchip voor opslag van software.
>> Er schiet me nog te binnen dat iemand kan aanvoeren dat de schakelaars in een FPGA ook te beschouwen zijn als bits, en dat als je die uit zou kunnen lezen, de configuratie van de FPGA kunt lezen.
Exact, en dat kan ook, omdat deze instelling niet op de FPGA wordt opgeslagen maar op een ROM chip die vaak onder de naam "configuration device" genoemd wordt. Wanneer de bits de FPGA zijn ingestuurd door het omliggende circuit heb je een stuk hardware dat op dezelfde wijze als bijvoorbeeld een decadeteller, PIC, CPU of wat voor IC je maar zou willen bouwen dienst kan doen. The sky (en het aantal discrete gates in de FPGA) is the limit.