Target WWII

I maestri dell'incoerenza


Qualcuno potrebbe dire che ho qualche preconcetto verso le cose che arrivano da Microsoft. Magari è vero. Però in certe occasioni mi sento di poter dire tranquillamente che NON E' COSI'. La verità è che in Microsoft ce la mettono tutta per farsi amare.La ragione di questa disquisizione è in una stupida finestrella del Visual Studio 2003, ambiente di sviluppo che sto usando per il mio lavoro. E' solo un esempio, ma ce ne sarebbero altri di cui non voglio parlare solo per ragioni di tempo. La finestrella si presenta quando il runtime del C++ riceve un messaggio di interruzione provocata da varie cause, ad esempio eccezioni o interruzioni volontarie dell'utente (CTLR+C nel prompt). La finestra presenta quattro pulsanti, collocati in basso uno dopo l'altro distanziati egualmente, senza alcuna considerazione per criteri di chiarezza ed ergonomia. I pulsanti sono: "Break", "Continue", "Ignore" e "Help". La prima volta che l'ho vista è stato quando ho tentato di interrompere con un CTRL+C un programma mandato in esecuzione. Qual'era il pulsante da premere per fermare il programma? "Continue" e "Ignore" sembravano voler dire due cose simili: "continua l'esecuzione del programma" e "ignora il CTRL+C". A parte questo, "Break" sembrava voler dire proprio: "interrompi il programma!". Ovviamente, la risposta corretta era "Continue". Che vuol dire??? Continua a interrompere il programma?! E "Break"? Interrompi l'interruzione del programma?Acquisito il fatto che il significato era invertito, ho applicato questa interpretazione ogni volta che si presentava la finestrella. Bene, oggi ho scoperto che non è sempre così. Ad esempio, se QT fa un controllo sui parametri passati ad una procedura e questi falliscono, il messaggio d'errore arriva al runtime che mostra la stessa finestrella. Solo che questa volta il "Break" interrompe l'esecuzione del programma e passa al debugger, il "Continue" no, come ci si aspetterebbe che sia.Riassumendo: l'IDE di Microsoft riesce ad essere incoerente nell'incoerenza Ci vuole MOOOOOOLTA pazienza!