lanier schreef:Het is onmogelijk een programma te schrijven zonder fouten; eigenlijk beter gezegd: een programma te schrijven wat rekening houdt met alle wensen. Uit een recentelijk onderzoek bleek dat ongeveer één derde van alle automatisering niet leidt tot het gewenste resultaat.
Ik heb m'n HTS studie Informatica niet afgerond, maar in de twee jaar tijd dat ik de studie volgde werd me verteld dat 90% van je tijd je nodig hebt om goed te begrijpen wat de wensen van de klanten zijn en dat in de resterende 10% van de tijd om te zetten in een werkbaar programma. Nog steeds hou ik me zeer intensief met praktijk gerichte software bezig en ik kom vaak machines (geen computers) tegen met fouten in de software die een compiler er echt niet uithaalt.
Logisch gezien klopt het helemaal softwarematig, maar je kunt altijd uitzonderingen (delen door '0' bijvoorbeeld) over het hoofd zien.
Ik begrijp wat je bedoelt en dan gaat het over twee verschillende soorten fouten. Die moet je niet door mekaar halen. Delen door nul is sowieso blunderen en dan loopt de boel vast. Maar iets anders maken dan de klant wiol is een ander soort fout die met programmeren niets te maken heeft.
Gelukkig schrijf ik geen software voor anderen dus die 90% om te bespreken wat het moet worden spaar ik lekker uit. Vroeger heb ik conversiepragrramma's geschreven om van verschillende kleine machientjes en tekstverwerkers die teksten in te kunnen lezen voor een fotozetmachine, zodat je er een boek van kunt maken zonder alles nog eens helemaal over te tikken. Dat was in een jaartje vrije tijd wel klaar en de opdracht was erg simpel. Je hebt een floppie met tekst en zorg dat we het lezen kunnen. Goudmijntje hoor. Ontzettend simpel werk.
lanier schreef:Programma's die ik krijg aangleverd zijn geschreven in C++ en worden door mij in Flashrom geplaatst. Nog nooit heb ik een vlekkeloos werkend programma ontvangen. In alle versies heb ik fouten ontdekt.
Geen vakwerk, hè?
lanier schreef:Een softwareprogramma is zo intelligent als de maker ervan. Ik herinner me dat er ooit een wedstrijd was uitgeschreven voor programmeurs ergens begin jaren '90. Een programmeur in dienst van Microsoft had toen ongeveer 1Mb nodig, een andere programmeur leverde hetzelfde resultaat in een programma van 25kB.
De opdracht kan zo simpel zijn dat intelligentie van de maker nauwelijks iets uitmaakt. Toen ikzelf nog eenoog was in het land der blinden, vóór 1970, schreef ik voor een UNIVAC in assembler en Algol een perspectiefprogramma met hidden lines removal, bestemd voor ontwerpers en kunstenaars. Daar kreeg ik een IEEE-award voor en ik was nog zó groen dat ik dat instituut niet eens kende. Het bleek het snelste perspectiefalgoritmne te zijn en snelheid was indertijd van zeer groot belang. Tja, ik mocht bij de Heidemij maar een paar keer per week even met die UNIVAC spelen en de ponstypistes mochten ook niet zoveel belast worden met een experiment. Dan wordt het vanzelf een vluggertje. Het wordt nog steeds in elk programma dat de ruimtelijke weergave met vectoren berekent gebruikt. Anderen hebben het wel verder ontwikkeld en dat heb ik dan weer overgenomen.
lanier schreef:Elke programmeertaal is uniek en levert een set commando's waarmee een programmeur uit de voeten kan. De processor is natuurlijk ook ontzettend belangrijk, de machines waarmee ik werk bepalen de beschikbare functies in de processor de mogelijke bruikbare functies. Zo zijn bepaalde functies totaal overbodig wanneer de processor te lang moet rekenen. Maar door 'intelligent' te programmeren is het mogelijk om hetzelfde resultaat te verkrijgen met minder rekencapaciteit.
Dit is onjuist.
Vrijwel iedere toepassing wordt in enige variant van de C-familie geschreven, zelfs andere programmeertalen. Pascal nog niet, maar Turbo-pascal weer wel. Zelfs ADA moest eraan geloven. De C-familie richt zich direct tot alle instructies die de instructieset van de processors te bieden hebben. Je hebt wel verschillende protocollen bij die verschillende varianten. C++ is het meest bij de tijd. Schrijf het in C en het is oké.
C++ verhoudt zich tot andere talen als de bijbel tot de koran.
Waarom zou je een programmeertaal kiezen (zoals Java of Delphi) als die taal zelf in een C-variant is ontstaan? Alleen als zo'n taaltje speciaal voor een bepaald vakgebied is ontwikkeld, kun je er voordeel van hebben, zoals PHP voor dynamische webapplicaties of Java voor verschillende platforms.
Over softwaredarwinisme gesproken, zou je C de stam van de boom kunnen noemen, die vele vartakkingen heeft. Het betreft echter geen spontane mutaties. Dat iedere programmeertaal uniek is, kun je dus niet staande houden. Eigenwijs ja, maar als je in Java een tekstverwerker als Word schrijft, moet je heel veel koffiedrinken terwijl je ermee werkt. Weg ermee en doe het in C.