Molto spesso i linguaggi di programmazione vengono paragonati a due cose: le lingue parlate o gli strumenti professionali. Oggi analizzeremo il primo e faremo un'analogia tra la programmazione e le lingue parlate. Questo ci permetterà di vedere i vantaggi e le sfide del poliglottismo nella programmazione o nello sviluppo di software multilingue.
Le lingue parlate identificano gruppi di persone che appartengono tra loro. Nella nostra società questi gruppi sono solitamente, ma non necessariamente, le nazioni. Le persone che parlano la stessa lingua di una nazione hanno spesso caratteristiche specifiche che ne costruiscono l'identità. L'India è nota per l'outsourcing dell'assistenza tecnica. La Romania è nota per i suoi professionisti IT. Gli Stati Uniti sono noti per le loro imprese. Se volete ottenere grandi risultati in uno dei settori specifici di una lingua, dovete parlare quella lingua.
I linguaggi di programmazione sono molto simili tra loro. Ogni linguaggio di programmazione ha un punto di forza, una singola cosa specifica che fa meglio. Il C/C++ è ottimo per la programmazione a basso livello, vicina all'hardware. HTML e CSS sono ottimi per presentare contenuti visivi su una pagina web. PHP è eccellente nel fornire un ponte tra i client web e le risorse di un server. Ecco perché noi di Syneto parlare sempre la lingua giusta per il problema.
"Il poliglottismo o poliglottismo è la capacità di padroneggiare, o lo stato di aver padroneggiato, più lingue".
- Wikipedia
L'uso di molte lingue comporta anche molti problemi. Il fatto che le persone debbano superare la barriera linguistica è più impegnativo di quanto si possa pensare. Supponiamo che siate un francese. Volete sfruttare il mercato degli Stati Uniti, dove si mangia molto formaggio. Per poter vendere lì, dovete promuovere i vostri prodotti nella loro lingua e per la loro cultura specifica. Sì. Ogni lingua ha un potente aspetto culturale Ogni lingua ha un potente aspetto culturale che dovete padroneggiare per avere successo.
Nella programmazione si ha la stessa sfida. È necessario comprendere la filosofia e la cultura che sta alla base di ogni linguaggio di programmazione. È necessario farlo e adottarne la cultura per diventare produttivi in quel linguaggio di programmazione. Una volta fatto ciò, è possibile utilizzare la filosofia di un linguaggio per migliorare il modo in cui si scrive codice in un altro linguaggio. Un bel bonus, direi.
Ma che dire della Cina? Imparare il cinese sarebbe così difficile che non funzionerebbe. Potreste voler imparare un'altra lingua che sia voi che la vostra controparte cinese possiate utilizzare. L'inglese è la soluzione più comune per superare la barriera linguistica.
Lo stesso problema esiste nella programmazione. Come può un programma scritto in Perl parlare con un altro scritto in Java e interpretare le risposte di un altro scritto in Scala? La risposta è semplice. È necessario un linguaggio comune, o protocollo, conosciuto da tutti i linguaggi. Tali protocolli sono HTTP, REST, JSON ecc.
Nella nostra cultura aziendale, combiniamo le influenze di molti linguaggi, sia nel modo in cui ci comportiamo sia nel modo in cui scriviamo il codice sorgente. Per saperne di più, leggete il nostro Sito web dell'Alleanza Agile, intitolato Un bug al mese.