...ma porca miseria, come si semplifica 'sto cazzo di hello world?
startup displayStatus engage
include string ToText
include textIo on console
include util Pause
to Begin "framed
here messenger ~ textIo::Create -> Bind To console
here message ~ { Hello_world! } as string -> To Text
messenger -> Say message
util::Pause
return
Ah, ho cambiato le freccine "comes from", quelle che prima erano <- ora sono rappresentate dall'asciitilde (~). A parte quello, che l'ho fatto perche` vedere freccine di qui e di la` sulla stessa riga lo trovavo distraente, difficile da leggere. Pero` a parte quello,
minchia!Tutto per scrivere "hello world", prima era piu` semplice ma non aveva static typing (che controlla tutti i bindings delle istanze e che fra l'altro gli dice che { Hello_world! } e` una stringa (null-terminated) alla quale viene applicato il metodo "To Text" che la trasforma in un oggetto "text" allocato sull'heap, che lo wrappa in informazioni aggiuntive (per esempio diventa non piu` null-terminated ma di una lunghezza nota, che e` una proprieta` dell'oggetto).
E poi prima non passava da un'opportuna interfaccia: e se poi voglio scriverlo su un file? O su uno schermo grafico? O mandarlo attraverso una socket? Mi toccava sempre cambiare la chiamata a "Say" che prima si riferiva direttamente a un metodo dell'oggetto "text" che assumeva che i testi si scrivessero tutti tramite stdout. Cosi` invece uso un metodo virtuale di "textIo" che POI, a scelta e in questo specifico caso, s'interfaccia con la console (cioe` scrive su stdout, per via di "Bind To console").
Cioe`, non so, dal punto di vista logico mi sembra tutto molto bello, ma come mai mi e` rimasta addosso la sensazione di aver costruito una centrale nucleare per far funzionare un aspirapolvere?