La sintessi del file rc (controlllo) include parole chiave opzionali che vengono ignorate. La sintassi che queste consentono � molto pi� leggibile delle tradizionali coppie parola chiave-valore che rimangono togliendo tutte le parole opzionali.
Ci� � cominciato come un esperimento di tarda notte, quando ho notato che le dichiarazioni del file rc cominciavano ad assomigliare a un minilinguaggio imperativo. (Questo � anche il motivo per cui ho cambiato la parola chiave 'server' del popclient in 'poll').
Mi � sembrato che tentare di far assomigliare il minilingaggio all'inglese potesse renderlopi� semplice. Ora, sebbene io sia un convinto sostenitore della scuola 'fanne un linguaggio', come fatto da Emacs e HTMLe molti motori per database, non sono di solito un sostenitore delle sintassi 'English-like'.
I proggrammatori tradizionali hanno favorito i controlli di sintassi, che sono precisi, compatti e non hanno ridondanza. Quest� � un'eredit� culturale di quando le risorse informatiche erano molto costose, e allora l'interpretazione doveva essere la pi� chiara e semplice possibile. L'inglese, con circa il 50% di ridondanza, sembrava un modello del tutto inappropriato.
Ma non � questa la ragione per cui normalmente evito le sintassi 'English-like': l'ho menzionata solo per demolirla. La semplicit� non deve pi� essere un obiettivo. Ora un linguaggio deve essere pi� adatto agli umani che al computer.
Restano per� buone ragioni per essere cauti. Una � il costo della complessit�; un'altra � che una sintassi 'English-like' spesso richiede modifiche cos� forti dell'inglese che la superficiale somiglianza col linguaggio naturale confonde non meno di una sintassi tradizionale. (Si pu� constatare questo brutto effetto in molti 'database-query languages' commerciali cosiddetti di quarta generazione.
La sintassi di controllo di Fetchmail evita questi problemi perch� il dominio del linguaggio � estremamente ristretto. Non � in alcun modo un linguaggio 'general-purpose'; le cose che dice in modo semplice non sono complicate, cos� � basso il potenziale di confusione insito nel trasferire mentalmente frasi inglesi nel linguaggio di controllo. Penso che ci possa essere una lezione ancor pi� vasta:
16. Quando il tuo linguaggio non � in alcun modo simile a quello completo di Turing, allora si pu� mettere zucchero nella sintassi.
Un'altra lezione riguarda la sicurezza e l'oscurit�. Alcuni utenti di Fetchmail mi hanno chiesto di effettuare le modifiche necessarie per memorizzare password crittografate nel file rc.
Non l'ho fatto, perch� in realt� non � una protezione. Chi ha il permesso di leggere il file rc, pu� eseguire Fetchmail e se cercano la tua password, possono estrarre da Fetchmail il codice per decriptarla. Encriptare le password avrebbe solo dato un falso senso di sicurezza alla gente che non riflette molto. La regola generale �:
17. Un sistema � tanto sicuro quanto � segreto. Guardati dagli pseudo segreti.