Qual è la tecnologia migliore?

Giovanni Luca Scuderi aka Lebby
The Wave Studio
Published in
6 min readMar 10, 2020
Immagine con titolo e tante persone davanti al computer

La risposta è dentro di te! Ma è la domanda ad essere sbagliata!

TL;DR):

Questo articolo non ha lo scopo di fornire una risposta esaustiva a questa domanda. Piuttosto mira ad evidenziare che la domanda in oggetto non ammette una sola risposta giusta. Infatti, il discorso funzionerebbe anche se sostituissimo la parola “tecnologia” con le parole : linguaggi, framework, libreria, sistema operativo, database, cms, etc.
Basandomi sulla mia conoscenza e la mia esperienza cercherò di spiegare:

  • Come porre una domanda che possa avere una buona risposta.
  • Quali sono i fattori che devono influenzare la costruzione della domanda e della risposta.
  • L’importanza del confronto con più persone per ottenere una risposta alla propria domanda originale e il perché lo si deve fare.

La fine di tutto

Sicuramente è capitato a tutti voi di trovarvi in mezzo ad una accesa diatriba tra persone senza più ricordarvi qual è la frase che ha fatto nascere il tutto.
Alla fine di ogni discussione, è comune ritrovarsi dinanzi a fazioni, tavoli rotti, amici che ti dicono “secondo me hai ragione”, un tizio rannicchiato in bagno mentre si dondola e urla disperato, rapporti arrivati alla rottura.
E, cosa più deplorevole, ci si ritrova sempre in mezzo a birre, alcolici e cibo impunemente distribuiti per terra.

Ma cosa ha dato inizio a tutto? Una domanda “sbagliata” , tra le possibili frasi a scatenare il tutto è:

Qual è il migliore linguaggio di programmazione?
Qual è il database migliore?
Qual è il migliore framework per frontend?
Qual è il migliore framework per backend?
Qual è il sistema operativo migliore?

E così il saggio rispose … la risposta non ti piacerà

Le mie risposte sono sempre state due:

In base alle mie conoscenze, non esiste ad oggi una tecnologia migliore di altri; esistono tecnologie più adatte e meno adatte a determinati contesti.

O la fastidiosissima ( così mi è stato riferito ), sintetica ma altrettanto vera risposta:

Dipende.

Anche se a mio parere, questa è la risposta che un saggio analista dovrebbe sempre dare, molte volte questa risposta non accontenta tutti, ma quale verità accontenta tutti?

Avere UNA risposta non ti darà LA risposta

Adesso che sapete qual è la risposta che una persona saggia vi potrebbe dare, bisogna prendere in considerazione la risposta lunga affinché possiate capire e contestualizzare qualsiasi risposta vi venga data.
Per fare ciò, voglio quindi evidenziare alcuni elementi della mia precedente risposta:

  • mie conoscenze
  • ad oggi
  • contesti

Mie conoscenze: in informatica le cose cambiano velocemente e oramai il campo è così vasto e ramificato che si deve ammettere fin dall’inizio di non poter conoscere tutto. Inoltre per la vastità che ha assunto ad oggi l’informatica, nessuno può professarsi onnisciente. È assolutamente normale che non si conosca tutto ed è responsabilità dell’interlocutore evidenziare questo limite.
Quindi ogni risposta che verrà data è relativa alla conoscenza limitata dell’interlocutore che risponde, sarà basata sua esperienza e dall’ambito in cui lavora.

Ad oggi: significa che si prende in considerazione lo stato attuale; molte tecnologie cadono in disuso, altre aumentano la loro popolarità e uso, altre si evolvono, altre vengono create e altre scompaiono senza lasciare traccia.
Quindi ogni risposta che verrà data sarà basata dal grado di aggiornamento dell’interlocutore che risponde.

Quindi adesso avete un punto di vista in più per capire che è necessario confrontarsi con più persone e che ogni risposta va dimensionata all’interlocutore.

…e dopo disse: adesso sei pronto, rifammi la domanda!

Nella precedente risposta vi sono indicazioni sia per prepararsi a recepire in maniera giusta una risposta ma anche sul come porre una domanda a voi utile ed è contenuta nella parola “contesto”.

Il contesto è una cosa molto importante da considerare, perché deve contenere dentro molti fattori quali:

  • lo scopo attuale
  • lo scopo futuro
  • l’ambito di applicazione
  • i requisiti
  • l’esperienza e la specializzazione
  • il tempo di vita del progetto
  • l’evoluzione prevista e la fase attuale

Questi ed altri fattori influenzano la scelta della tecnologia da proporre come più adatta a determinati contesti ed è molto importante capire che la scelta della tecnologia più adatta è estremamente sensibile a variazioni per ogni singolo fattore che ne determina il contesto.

Quindi in base a questa risposta potete utilizzare e preparare una domanda atta a ricevere una risposta, considerando che alla domanda dovete associare tutti i punti che vi sono stati richiesti.

Fino adesso, non abbiamo esplicitato nulla di concreto, ma solo evidenziato che in realtà, se si vuole una vera risposta, si deve essere preparati a fare una domanda più corposa e a dare più dettagli.

Quale è allora la risposta? Non c’è LA risposta ma UNA risposta

Ma cosa rende più adatto una tecnologia rispetto ad un’altra, qualora fosse esplicato tutto il contesto?

Le caratteristiche della tecnologia stessa e del suo ambiente.

Ogni tecnologia ha varie peculiarità come:

  • il paradigma su cui si fonda: ovvero il suo approccio;
  • l’ambito per cui è stata sviluppata e i suoi requisiti/dipendenze: ovvero quale piattaforma software o hardware e quale ambiente supporta;
  • il set di strumenti a disposizione: ovvero le librerie, gli strumenti a sua disposizione;
  • lo scopo per cui è stata sviluppata e i suoi elementi di forza;
  • se è attualmente in uso e quanto lo è;
  • documentazione, supporto e community attiva a disposizione;
  • è Open Source ? O ha un supporto commerciale attivo?

Quindi è chiaro che ci siano tecnologie più adatte di altre in alcuni ambienti, altre più aggiornate, altre non hanno alternative su ambienti nuovi o su ambienti legacy (vecchi) e altre che nonostante non siano supportate continuano ad essere lo standard de facto.

Bonus 1 : Ma quindi qual è la migliore tra tutte? ;)

Quindi non si può dire che esita una tecnologia migliore in assoluto, pertanto vorrei dare dei consigli a tutti i temerari che sono arrivati fino a qui, basandomi sul mio precedente non casuale e abbastanza esplicito elenco, evidenziando i penultimi due punti riassumibili in “supporto alla tecnologia”.
Per esperienza sono tra le cose che dovrebbero incidere di più nello sviluppo e nella scelta della tecnologia più adatta.

È fondamentale non trascurare il supporto alla tecnologia: molte tecnologie, pur essendo il “best fit” non sono più portate avanti o non hanno avuto successo e di conseguenza non sono più mantenute (ovvero migliorate e attivamente sviluppate). Questo implica che, in caso di dubbi, in presenza di problemi o possibili bug, non si trova documentazione o non si trova chi può chiarire un dubbio o chi può spiegare determinati comportamenti.

Questo implica che non avendo supporto, si potrebbe arrivare ad un punto morto nello sviluppo o nell’utilizzo e a dover mettere mano nei meccanismi interni della tecnologia che potrebbe essere difficile… ma non è sempre possibile!

Ma difficile è una cosa, “quasi impossibile”/”estremamente difficile” è una altra cosa.

Bonus 2: Prima o poi raggiungerai il limite… preparati a farlo

E qui analizzo l’ultimo punto: è Open Source? O ha un supporto commerciale attivo?

Ora, qualche “purista dell’Open Source” si starà rivoltando dentro le bara o organizzando una caccia all’uomo, per aver associato Open Source e commerciale; la verità e che non farà di certo rabbrividire i più esperti che distinguono Open Source da free ;).

È importante capire che è sempre necessario avere un piano di supporto quando si raggiunge il limite attuale della tecnologia e per questo è utile che la tecnologia sia o Open Source e che quindi sia possibile accedere al codice/progetto e avere quindi gli strumenti per modificarlo, estenderlo, correggerlo e adattarlo alle proprie esigenze o che ci sia un supporto commerciale al quale chiedere ciò!

Bonus 3: Se hai una risposta troppo secca e sintetica, scartala

Infine vi voglio lasciare con un ultimo suggerimento: sono rarissimi i casi in cui una tecnologia è indiscutibilmente migliore in un determinato ambito e non ha altre alternative. Se avete una risposta secca di questo tipo, è bene consultare qualcun altro, perché probabilmente o avete preso una nicchia o avete preso un fan boy.

--

--

Giovanni Luca Scuderi aka Lebby
The Wave Studio

I’m a just a man passionate on I.T., living beings, science, art and reading. As job, I am a Computer Engineer focused on software development and architecture