Da molti anni per lavoro mi confronto con programmatori di tutte le estrazioni e di tutte le parti del mondo.
Nella mia carriera ho incontrato laureati, studenti ed anche semplici appassionati, tutti con caratteristiche differenti e tutti fissati con una singola cosa: il linguaggio.
Il linguaggio di programmazione per molti è un vero e proprio cruccio, simile ad una scelta religiosa.
Si può trovare facilmente chi è fissato con un linguaggio, chi invece sostiene che “more is better” e quindi nei loro CV millantano conoscenze in molteplici linguaggi (manco fosse la lista di wikipedia sui linguaggi di programmazione).
In realtà la mia filosofia (e quella che dovrebbe essere a mio avviso di qualsiasi software house con un senso logico) è ben diversa, e si basa su una questione perlopiù pratica.
Innanzitutto quando si sviluppa un progetto bisogna avere ben chiaro cosa si vuole fare e quale risultato si vuole ottenere, e ancora più importante bisogna partire senza alcun preconcetto (o come preferisco definirlo io “razzismo tecnologico“).
Avere ben chiaro in testa il punto di arrivo, l’esperienza utente che si vuole offrire e la piattaforma su cui deve girare il software sono punti fondamentali.
Senza piena consapevolezza di questi parametri pensare al linguaggio di programmazione migliore è totalmente inutile.
Bisogna poi stare attenti alle “mode”: qualche anno fa era il momento di Java, ora invece il mondo pensa a Python.
Intendiamoci, sono 2 linguaggi di programmazione molto validi, ognuno con le sue caratteristiche peculiari, ma dire che uno è “assolutamente migliore” di qualsiasi altro linguaggio non ha assolutamente senso, anzi rischia di essere un discorso quasi controproducente in azienda, quando devi scegliere un programmatore o una software house per sviluppare un progetto.
Quindi ricapitoliamo.
Se devi scegliere un programmatore o un’agenzia per sviluppare una soluzione software prima di pensare al linguaggio devi porti le seguenti domande:
Quale esperienza utente voglio offrire?
Su quale/i piattaforma/e (sistema operativo) girerà la mia applicazione?
Quante risorse hardware ho a disposizione?
Poi in base alle risposte che avrai a disposizione farai la tua scelta.
Ad esempio se vuoi realizzare un’automazione industriale che gira su un server Windows come applicazione nativa e non è necessaria alcuna interfaccia utente la soluzione potrebbe essere quella di sviluppare il tutto con uno dei linguaggi supportati da Visual Studio (VB .net, C#, …).
Viceversa se devi sviluppare un piccolissimo servizio web su una piattaforma embedded Linux, forse diventa controproducente installare Apache e sviluppare in PHP, a quel punto è sicuramente più conveniente sviluppare un’applicazione Web dedicata in Node.JS ed in casi estremi sviluppare un’interfaccia in C/C++ per risparmiare più memoria possibile e non gravare eccessivamente sul processore.
E tu non ti sei mai scontrato in azienda sul linguaggio da usare per sviluppare un progetto? In quei casi come ti sei comportato?
E non dimenticare che se hai bisogno di una consulenza per lo sviluppo di un software personalizzato, puoi contattarci cliccando qui.
LEAVE A COMMENT