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?
>> Nee, dat bedoelde ik niet. ;-)

Fraai is dat! :-P

>> Het journaal en de voetbalfinale die daarop worden uitgezonden, zijn software.

Ook als het gestreamed wordt en niet fysiek op je computer aanwezig is?
Ozzie PHP op 24/06/2016 21:15:45

>> Het journaal en de voetbalfinale die daarop worden uitgezonden, zijn software.

Ook als het gestreamed wordt en niet fysiek op je computer aanwezig is?

Iets dat op je televisie wordt uitgezonden is sowieso niet op je computer aanwezig. ;-)

Je noemt het woord 'fysiek' in relatie met 'software'. Software is echter per definitie niet fysiek, anders zou het hardware zijn. Het kan dus niet fysiek op je computer aanwezig zijn. En je moet ook afstappen van het idee dat software per se opgeslagen moet zijn op een medium (het kán worden opgeslagen, maar het hóeft niet). Iets wat in RAM staat is ook software, en als iets gestreamd wordt, zal het eerst in RAM opgeslagen moeten worden voor je computer er iets mee kan doen.
>> Iets dat op je televisie wordt uitgezonden is sowieso niet op je computer aanwezig. ;-)

Hehe, lol ... iets te snel getypt, maar je snapt wat ik bedoelde ;-)

Fysiek is inderdaad niet de meest lekkere woordkeuze. Met fysiek bedoelde ik in dit geval "aanwezig" tegenovergesteld aan "vervlogen" wanneer je iets streamt.

Anyhow ... het idee is wel duidelijk nu. Thanks :-)
Voor de wat meer jeugdigen onder ons:
Er bestaan ook analoge apparaten als radio's, tv's, en computers.
In die gevallen kan je niet spreken van software omdat de inhoud niet bestaat uit bits. Zo is muziek op een audio-tape ("bandje") of LP geen software, maar op een DAT-tape of MiniDisc wel. Tenzij het geluidsspoor bestaat uit discrete stappen, zoals bij het telefoneren waar een telefoonnummer wordt gekozen aan de hand van tonen: https://nl.wikipedia.org/wiki/Telefoontonen.
Goed bekeken is een analoog signaal beeld- of audio- signaal geen software. Het ligt ook niet in de geest van het woord software, daar is het woord nooit voor bedacht of nodig geweest.
Bij een analoge computer kan je wel spreken van een programma, maar dan slaat dat op de manier waarop een analoge computer is geprogrammeerd: hoe de patch-kabels zijn aangesloten op de verschillende elektrische componenten. Het programma bestaat dan niet uit software maar hardware.
Ik gebruik altijd deze stelregel en die heeft bij mij nog nooit gefaald:

als je het met je vingers kan aanraken: hardware.
Zo niet: software.
@Eddy, ik vind hem mooi gevonden, maar ik vrees dat het niet voor alles opgaat...
Kan je de met licht ge-etste atomen van een moderne microchip aanraken met je vingers?
Raken elektronen je vingers niet via een opgewreven (statisch geladen) ballon?
An tje op 26/06/2016 21:18:54

@Eddy, ik vind hem mooi gevonden, maar ik vrees dat het niet voor alles opgaat...
Kan je de met licht ge-etste atomen van een moderne microchip aanraken met je vingers?
Raken elektronen je vingers niet via een opgewreven (statisch geladen) ballon?

Dat is het mooie van vuistregels: ze hoeven niet voor 100% sluitend te zijn.

En als je zover inzoomt als jij nu doet, krijg je weer andere vraagstukken: op atomair niveau bestaat het begrip 'aanraking' niet, dus hoe kun je dan uberhaupt voorwerpen aanraken? Volgens mij kun je beter in het oude zoomlevel blijven, want daar zijn nog zat andere vragen te bedenken. Zo zou je je kunnen afvragen waar je firmware moet indelen.
Het is aan de ene kant hardware, maar aan de andere kant software. Of, iets breder: wat is een FPGA? Je kan het aanraken, dus het is hardware, maar functioneel gezien is het software. Of misschien is het zelfs geen van beide en kun je het zien als een drager van software. In dat geval zou het een medium zijn.
We zijn het er over eens dat Eddy een mooie vuistregel heeft die voor iedereen te begrijpen is.

Om buiten het zoomlevel te blijven.. volgens de aanraakdefinitie is een FPGA software, net als firmware. En ik zie niet in waarom dat niet zou kloppen.
Bij firmware of "stevige" software in flash ROMs ed, zit de software vast in ROM, net als bij CD-ROM's, het bestaat uit bits bedoeld om verwerkt te worden door een microcontroller dus is het software.
Nou heb ik weinig kennis genomen van een FPGA, naar ik lees is het een hardware-emulator, met een microprocessor die volledig softwarematig wordt beschreven. Die gesimuleerde microprocessor is dus software, vergelijk het met VirtualBox. Wellicht maakt de software van een FPGA gebruik van circuits binnen de FPGA. Dan zijn die circuits dus hardware, waar vanuit de software gebruik kan worden gemaakt. Een FPGA is dus hardware met software, en voor de software heeft een FPGA een intern medium aan boord.
Het FPGA-voorbeeld vind ik niet vergezocht, CPU's zijn vergelijkbaar omdat de processorinstructies zelf opgebouwd zijn met microcode wat weer software is. Wanneer je assembleertaal programmeert hoef je je daar niet mee bezig te houden, maar het kan handig zijn om dat te beseffen. Uiteindelijk is de fysieke layout van de chip de hardware.

Samenvattend: kenmerkend voor software is dat het zich in de vorm van bits in geheugen bevindt (RAM, ROM of een signaal op bv. een tape) en het is passief. Er gebeurt alleen is mee wanneer deze bits door een molen van microchip(s) worden verwerkt.

De verleiding was groot om het signaal te duiden als elektrisch, maar dat is geen voorwaarde omdat een signaal allerlei vormen aan kan nemen: optisch, via geluid, of wat er verder nog te verzinnen valt. Deze kunnen worden opgeslagen in chips, op tape, ponskaarten, schijfjes, etc. Die dingen zijn het medium, en dus ook hardware. Echter de combinatie van bits is wat we software noemen.

Nogmaals, ik vind de vuistregel van Eddy echt mooi gevonden, en makkelijk te begrijpen.
Maar bovenstaande dekt de lading preciezer ondanks dat het moeilijker te begrijpen is.
>> Nou heb ik weinig kennis genomen van een FPGA, naar ik lees is het een hardware-emulator, met een microprocessor die volledig softwarematig wordt beschreven. Die gesimuleerde microprocessor is dus software, vergelijk het met VirtualBox.

Niet helemaal. Sommige FPGA's bevatten een CPU, andere niet. En je hoeft deze ook niet te gebruiken (er zitten vaak hoge licentiekosten aan het gebruik). Een FPGA is een gate array, dus een bak met flipflops die mbv een bitstream aan elkaar geknoopt kunnen worden. Er komt hier geen emulatie aan te pas.

Een mogelijkheid is om op FPGA's een CPU na te bouwen (ik heb zelf ook een aantal gebouwd) en hoewel VHDL en Verilog programmeertalen zijn wordt dit niet als zodanig uitgevoerd door de FPGA maar worden de interne gates geopend of gesloten op basis van welke bits aan en uit staan in de bitstream. Hiermee is de programmering van de FPGA feitelijk gewoon data die tijdens de start van de array uit een bijhorende ROM kan worden gelezen.

Er zijn ook nog FPGA's die geen externe ROM nodig hebben welke fysiek geprogrammeerd worden; de gates worden semipermanent geopend of gesloten tijdens het programmeerproces. Ik zeg hier semipermanent omdat het proces meerdere malen kan worden uitgevoerd.
Als je alles in het hokje 'software' of het hokje 'hardware' wilt passen, krijg je het standaardprobleem van rubriceren en classificeren: dat moet op basis van overeenkomsten, maar de verschillen gaan dus in de weg zitten.

Als je een spreadsheet nou gewoon een spreadsheet noemt, of een rekenblad of werkblad, dan heb je daarvan geen last meer...

Het viel mij op dat Wikipedia drie hele alinea's nodig heeft om tot een werkbare definitie van software te komen. Dat is veel voor een definitie.

Computer software, or simply software, is that part of a computer system that consists of encoded information or computer instructions, in contrast to the physical hardware from which the system is built. The term is roughly synonymous with computer program.

The term "software" was first proposed by Alan Turing and used in this sense by John W. Tukey in 1957. In computer science and software engineering, computer software is all information processed by computer systems, programs and data.

Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.

Reageren