Makkelijk en moeilijk

Wat is makkelijk, wat is moeilijk? Als we het snel en zonder problemen kunnen doen, heet het makkelijk. Als het moeite kost, is het moeilijk. Dat geldt voor rekenen: machtsverheffen 22 is makkelijk, dat is 4. Vierkantswortel uit 4 is makkelijk, dat is 2. Vierkantswortel uit 5 is moeilijk: wat meer dan 2, maar niet al te veel meer.

Deze zelfde definitie voor makkelijk en moeilijk geldt ook voor andere zaken. Bijvoorbeeld voorspellen of het morgen regent (juli 2011). Dat is gemakkelijk: waarschijnlijk wel.

Voor de computer werkt het anders: die vindt de vierkantswortel uit 8694234906431 even gemakkelijk als de vierkantswortel uit 4. Maar voorspellen of het morgen regent? Dan moet de computer weten wat de temperatuur is, de barometerstand, andere invloeden op het weer, wolkenlaag, en wat al niet meer. En als de computer dan met een antwoord komt, weet je meteen dat de kans niet zozeer ‘waarschijnlijk’  is, maar (bijvoorbeeld) 78%, en niet 75%. Dat is een nauwkeurigheid die ik niet kan geven. En die ik, eerlijk gezegd, niet nodig heb. “Waarschijnlijk” is genoeg om de paraplu mee te nemen, en verder zien we wel.

Dit verschil tussen persoon en computer zet zich voort in het programmeren. Moeilijke berekeningen zijn vaak verrassend makkelijk te programmeren, en makkelijk ‘natte vinger werk’ blijkt onbegonnen werk te zijn. Ik heb dan ook een vuistregel: als je denkt dat het moeilijk is, is het vaak gemakkelijk, en als je denkt dat het gemakkelijk is, is het vaak erg ingewikkeld. (Let op: vaak, niet altijd!)

Weet je wat nu pas echt moeilijk is? Een klant uitleggen dat dat ene ‘onbeduidende’ vraagje eigenlijk onbegonnen werk is. Ook al heb je net het ‘onmogelijke’ in een uurtje voor elkaar gekregen.