DWIM

I databehandling er DWIM et akronym for Gjør hva jeg mener . Det betyr "gjør hva jeg mener". Den brukes innen informatikk for å betegne kvaliteten på språk som gjør det mulig å unngå å spesifisere "på langs, bredt og på tvers" hvilken handling som skal utføres. Med andre ord: du kan spesifisere "hva" uten å spesifisere "hvordan". Men ofte, som i eksemplet som er utviklet nedenfor, er det selve "hva" som er utelatt og derfor må utledes.

DWIM er også kvaliteten på programmene eller deler av programmer som utnytter DWIM for språket som brukes. Som på engelsk, der den grammatiske rollen til substantiv er ganske fleksibel, kan DWIM også brukes som et verb  : " Low-level languages ​​do not DWIM " .

Når vi skriver et program på monteringsspråk , må vi faktisk spesifisere detaljer om implementeringen, for eksempel registrene som de beregnede verdiene går gjennom. Verre, disse detaljene låser programmet i den valgte maskinvarearkitekturen og forhindrer bærbarheten .

Den ønskelige konsekvensen av DWIM er å skaffe konsise, men lesbare programmer.

DWIM er kvaliteten på noen kraftige, men komplekse språk. Denne kvaliteten er veldig subjektiv og takknemligheten avhenger mye av smaken til programmereren. Vanligvis et språk som bruker DWIMe kontekstuell informasjon. Kompleksiteten i språket øker også den kognitive belastningen på programmereren, som må kjenne til mekanismene for å forstå et tilsynelatende tvetydig program.

De høyt nivå språk ikke nødvendigvis har dwim kvalitet.

Betydningen av DWIM og sammenhengene med rimelig bruk er kontroversiell. DWIM av den ene er ofte mørkere av den andre.

Enkelt eksempel

I Perl 5 , variabelen $ _ er en slags generell pronomen . Verdien påvirkes av et stort antall operasjoner. Det er en implisitt parameter for mange funksjoner. Det er derfor en form for implisitt bruk av konteksten. For noen er denne stilen akseptabel bare i en linje .

$_ = "Salut le monde"; print; # équivalent de "print $_"

Men denne kvaliteten på DWIM må være en integrert del av språket, ellers blir det fort irriterende og skjørt. Så Perl 5 har ikke en formell funksjonssigneringsmekanisme. I mangel av signatur , en form for kortfattet og formell dokumentasjon som er inkludert i selve koden, er det derfor nødvendig å referere til dokumentasjonen for å vite at det $_er en implisitt parameter for funksjonen print. Mekanismen er skjør fordi den ikke forventer at den vanligste printbruken av å bruke en terminal linjefôring. Perl 6 gir en funksjon saysom legger til denne terminallinjefeeden.

print "$_\n"; # Perl 5 : impossibilité d'utiliser le $_ implicite say; # Perl 6 : équivalent à print "$_\n"

Designeren av Perl 6 forventer at saymer vil bli brukt enn print. Dette er grunnen til at han valgte et kort navn på tre bokstaver i samsvar med Huffmans prinsipp . I likhet med DWIM hjelper Huffmans prinsipp med å holde Perl-programmene konsise.