pexels-photo-5926382

Ottimizzazione e scalabilità

Prima venne l’ottimizzazione: le reti di computer erano poche e per addetti ai lavori in camice bianco.

Io programmavo in C, e non mancava mai qualche punto critico in assembler messo con il preprocessore pragma direttamente in mezzo al codice C.

Allora i compilatori non erano ottimizzati come quelli odierni, oggi questa pratica sarebbe inutile.

Poi vennero le reti di computer, e si iniziò a parlare di concorrenza, di semafori, di prenotazione delle risorse, di lock.

Si ottimizzava ancora, badando ad una minima scalabilità delle risorse condivise. Parliamo di poche decine di client.

I linguaggi e i processori crebbero rapidamente, si arrivò al punto che i linguaggi compilati erano un freno alla creatività dello sviluppo. Linguaggi lenti, farraginosi, ma meglio in grado di affrontare la realtà che cambiava vennero fuori.

Internet iniziò a dominare la scena, presto le CGI vennero rimpiazzate da Perl e PHP. L’ottimizzazione spesso consisteva nel scrivere un cuore calcolatore direttamente in C e chiamarlo dal linguaggio di scripting quando c’era necessità di elaborare.

L’hosting divenne più democratico, ci giravano però soltanto i linguaggi di scripting più diffusi. Ottimizzare il codice divenne più teoria che pratica: bastava evitare castronerie come mettere le query dentro ai loop e tutto andava bene.

Alcune applicazioni web iniziarono ad avere successo: con la gloria giunsero immediati i problemi, non si trattava di ottimizzare, ma di scalare.

Database performanti vennero migliorati in ottica multiprocesso, si iniziò a scrivere architetture per distribuire i carichi.

L’ottimizzazione divenne sempre meno pressante, si iniziò ad usare lo stesso linguaggio per i client e i server: javascript.

La scalabilità pretese che molti soggetti ripetano le stesse operazioni, nello stesso modo, in zone diverse della stessa internet.

Si iniziò a astrarre tutto, dai server hardware al cloud, dal cloud alle architetture a micro servizi.

Oggi l’ottimizzazione si fa in rari casi, quando ci sono di mezzo elaborazioni molto costose o che necessitano di estrema rapidità.

La scalabilità bisogna farla sempre, o il prodotto non scalerà e resterà il miglior prodotto del vostro condominio.

Però ancora mi piace soffermarmi sul codice, e renderlo più veloce, anche se servirà a poco.

Lascia un commento