Aggirandomi u npo per la blogsfera, mi sono imbattuto in un articolo che mi é piaciuto molto. lo trovate Nel blog “Types, Programming, etc.“, piú specificamente mi riferisco al articolo “How to write programs in two steps“. È un approccio veramente interessante alla programmazione. Invece di scegliere (come ci hanno insegnato all’ universitá) la lingua piú versatile/adatta o quella (come ci hanno insegnato alle superiori) che conosciamo meglio, qui si consiglia di Analizzare i lproblema, ed insieme ad un esperto del campo specifico, scrivere una lingua adatta, ad-hoc per le necessitá, semplice da capire, cosicche gente del settore possa poi creare i proggramm icome servono a loro.

Questo approccio mi ricorda molto da vicino la creazione di Hardware: Ti fai un Adder, Un Multiplexr, E cosí via.. Poi con questi ti costruisci una Alu, che combinata con altri pezzi crea un processore, che cobinato con altri pezzi crea un computer, che combinata con altri pezzi crea una rete…

L’astrazioen é una tecnica molto potente, peró é sempre la scelta giusta? se si tratta di creare applicazioni/hardware/$prodotto con alte richieste di performance, secondo me’e mgli ocreare un programma che svolga il lavoro di ottimizzazione, partendo sol oda input e output. Questo non é sempre possibile, ma oggigiorno i computer hanno capacitá fino a poco tempo fa inimmaginibili, e in un futuro no ntroppo lontano i temi di calcol osaranno cosí bassi da permettere questo tipo di appliccazioni. Un esemio: vogliamo creare un processore? Scriviamo un programma che segua una logica da noi scelta, il piú low-level possibile, e implementiamo le metologie desiderate. Poi ci passiamo l’instruction-set in binario, e cosa deve essere l’output in ogni caso(cioé la truth table), e questo programma ti ottimizza il tutto, cercando di usare il meno circuiti possibli, non limtato da “spazio”, nr. di strati, o che ne so io cosa.

Astrazione bene in genre, ma non sempre. Questo per dirla breve.

‘notte