PHP vs Java vs C# vs Python vs Ruby vs Node.JS

Voglio dirti quello che gli altri non ti dicono!

Di solito quando si mettono a confronto i linguaggi si analizzano le specifiche tecniche, io invece voglio fare una cosa diversa.

Voglio dirti quello che IO STESSO avrei voluto conoscere quando ho iniziato a programmare:

  • Quali linguaggi/tecnologie mi permettono di trovare lavoro facilmente?
  • Quali sono semplici da imparare e quali no?
  • Quali aziende (startup, enterprise o piccole medie imprese) usano un determinato linguaggio?

In questo video ti spiego vantaggi e svantaggi di usare i più popolari linguaggi per la programmazione backend: PHP, Java, C#, Python, Ruby, Node.js.

Clicca sull'immagine per aprirla in alta risoluzione!


Trascizione video

Voglio dirti quello che gli altri non ti dicono sui vari linguaggi di programmazione. Di solito quando si mettono a confronto i linguaggi, si vogliono analizzare le specifiche tecniche di uno piuttosto che dell’altro. Io invece voglio fare una cosa diversa. L’argomento di questo mese, che la Developer Society ha votato nel sondaggio e quindi l’ha scelto, è proprio il linguaggio backend, pro e contro.

Quindi immaginati questo spiegone più come una chiacchierata tra amici. Siamo al bar, io ho il mio drink e tu hai il tuo e nel mentre ti racconto quelli che secondo me sono i pro e i contro dei vari linguaggi Backend. Quindi benvenuto o benvenuta al nuovo spiegone del mese di agosto: Linguaggi backend, pro e contro. Iniziamo!

Ciao, io sono Alberto Olla del sito imparareaprogrammare.it e in questo video andremo a fare un’analisi di quelli che sono i vari linguaggi backend o i linguaggi che sono lato server in generale.

Innanzitutto, come abbiamo spiegato nel precedente spiegone, servono per fare tendenzialmente due cose:

  1. Creare proprio dei siti internet, ok, quindi il classico sito;
  2. Il secondo invece è creare dei servizi a supporto di applicazioni esterne.

PHP

linguaggio-php-comparazione-piu-usato-cms-framework-pro-contro-vantaggi-svantaggi
Il linguaggio PHP è il più usato per lo sviluppo backend

I suoi pro sono che è il più usato, il CMS e i framework. Adesso andiamo a vederli punto per punto. Il primo è il più usato.

Più usato

Circa l’80% dei siti internet utilizza proprio PHP lato backend. Questo per un motivo essenzialmente: è nato esattamente per fare questo, cioè è un linguaggio che è nato per lo sviluppo backend. Quindi per lo sviluppo dei siti internet. Essendo nato per questo è molto semplice da utilizzare.

Anche tu ti puoi sedere davanti al tuo computer, apri il tutorial di PHP e in 10 minuti sei subito in grado di creare qualcosa che funzioni. Questo è uno dei fattori per il quale è più usato. È semplice da utilizzare ed è semplice creare delle cose che funzionino anche senza avere nessun tipo di base di programmazione. Ok? Secondo punto a favore: i CMS.

Che cosa sono i CMS?

Sta per Content Management System. Vuol dire semplicemente che sono degli strumenti che ti consentono di gestire dei contenuti senza saper scrivere neanche una riga di codice essenzialmente. Per esempio: se vuoi creare un sito internet, ma non sai programmare, potresti utilizzare WordPress! L’hai mai sentito nominare? Oppure Drupal, Joomla, o ancora se vuoi creare un e-commerce potresti utilizzare Magenta o Prestashop, tutti questi sono dei CMS e sono proprio scritti in PHP.

Perché l’ho inserito come punto a favore del linguaggio? Perché c’è un’enorme opportunità lavorativa. Ti spiego. Chi utilizza i CMS crea magari un sito internet in WordPress però non sa modificare il suo codice. Non sa aggiungere delle funzioni quindi nel momento in cui gli servirà qualcuno che gli faccia delle modifiche. Deve per forza andare a chiamare un esperto di PHP che vada a intervenire sul codice e vada a fare le modifiche, delle aggiunte, risolvere i problemi e così via. Quindi proprio qua dentro, grazie ai CMS si è creata un’enorme richiesta di mercato per quelli che sono gli sviluppatori PHP. Quindi porta un vantaggio da un punto di vista economico. CMS – importanti. Altra cosa importante per quanto riguarda lo sviluppo lato backend, sono sicuramente i framework.

Cosa sono i framework?

Sono degli strumenti questa volta che servono per gli sviluppatori. I framework danno una struttura del sito internet, ma non soltanto. mi danno anche degli strumenti che mi aiutano nello sviluppo. Quindi se io devo creare un sito da zero, utilizzando un framework sono avvantaggiato perché ho degli strumenti che mi aiutano a farlo, ok?

Per quanto riguarda php c’è una situazione un po’ particolare per i framework, perché di solito, o almeno per tutti gli altri linguaggi di programmazione, noi abbiamo uno o al massimo due framework che si sono imposti nel mercato. Cioè, che vengono richiesti negli annunci di lavoro e che vengono utilizzati effettivamente per lavorare.

Invece in PHP noi non abbiamo un framework, abbiamo tanti framework. Anche molto diversi tra loro e tutti vengono richiesti negli annunci di lavoro. Abbiamo Synfony, Laravel, Cake PHP, Zend framework, Phalcon, insomma ce ne sono veramente tanti.  Adesso passiamo a quelli che sono gli aspetti negativi del linguaggio.

Il primo: la cattiva fama.

Viene considerato uno dei linguaggi più poveri tra tutti quelli che trovi in questa lavagna. Questo perché? Prima ti ho detto che puoi diventare produttivo, quindi puoi creare qualcosa anche in dieci minuti senza avere nessun tipo di base, ok? Però quel codice scritto in dieci minuti, sono sicurissimo che sarà pieno di bug, non è riusabile, non è modularizzato, non utilizza e non va a usare le best practice del linguaggio e così via.

Quindi si porta dietro una serie di problematiche. Questo ha influenzato tantissimo la percezione che si ha dei programmatori php perché la maggior parte dei codici che sono scritti in questo linguaggio sono da un punto di vista qualitativo, scadenti. Pessimi, veramente brutti. Quindi ovviamente questo si riflette anche per quanto riguarda il punto di vista economico. Infatti i programmatori PHP hanno un salario medio molto più basso rispetto a tutti gli altri linguaggi che vedi nella lavagna.

Altro aspetto negativo sono le performance.

Ovvero la velocità di esecuzione del codice. Tendenzialmente il codice PHP è più lento rispetto ad altri linguaggi di programmazione come per esempio java. Bisogna dire che comunque le performance e la velocità di esecuzione sono relative a tante cose. Per entrambi, questi due fattori negativi si è fatto tanto durante gli ultimi anni. Innanzitutto nell’ultima versione di php si è riusciti ad aumentare moltissimo le performance e si sono dati anche degli ottimi strumenti per migliorare il linguaggio e di conseguenza migliorare la percezione che si ha del linguaggio e degli sviluppatori che lo utilizzano.

Ma non soltanto. Ti ricordi che Facebook ha messo già lo zampino per quanto riguarda lo sviluppo di applicazioni ibride/native tramite React native? Ok, l’ha fatto anche con PHP. Anzi, ci ha messo tutta la zampa questa volta perché Facebook utilizza nei suoi server proprio il linguaggio PHP e da subito si è accorto di questo grave problema delle performance. E quindi cos’ha deciso di fare? Di provare a risolverlo. E ci è quasi riuscito. Creando l’Hiphop Virtual Machine che è una sorta di programmino, chiamiamolo così, che prende il codice PHP, lo compila e dà un enorme incremento di quelle che sono le prestazioni e le performance di esecuzione quindi di velocità del codice.

Ma non soltanto. Ha creato anche un altro linguaggio, basato su php, immaginati una scala, qui abbiamo php e qua sotto tutte le funzioni di php, ok? Loro hanno creato un linguaggio chiamato Hack che sta qua sopra, quindi sta ad un livello superiore di php e lo include al suo interno. Hack è interessante, te lo lascio in descrizione. Facebook lo utilizza proprio all’interno del suo server, quindi utilizza sia l’HHVM che Hack come linguaggio in sé. Non solo, anche Wikipedia utilizza linguaggio PHP e nello specifico anche loro utilizzano l’HHVM di Facebook e Hack. Ovviamente entrambi questi progetti sono rilasciati in maniera opensource e quindi completamente gratuiti, e chiunque li può utilizzare.

Altri siti che utilizzano php sono Mailchimp che probabilmente hai già sentito nominare se ti occupi di web marketing in generale, perché Mailchimp è proprio il leader mondiale per quanto riguarda la gestione di newsletter e l’invio di campagne per e-mail. Ti lascio un link in descrizione del blog di Mailchimp scritto dai loro ingegneri in cui scrivono che quando stavano assumendo dei nuovi programmatori gli dicevano “ah, guardate che noi usiamo php nei server”. I candidati rimanevano un po’ così, dicevano, “ma come? io pensavo che voi foste un’azienda figa, un’azienda cool, come fate a usare php?” Questo andando a rimarcare il fatto che abbia una pessima fama.

Un altro link che ti lascio in descrizione è un articolo dell’ingegnere di Slak, Slak non so se lo conosci, è un sito per quanto riguarda la comunicazione interna tra dipendenti o tra team in generale. È molto famoso. io personalmente non lo uso però ho trovato l’articolo molto interessante perché il suo titolo è “Prendete PHP sul serio”. Infatti Slak utilizza proprio php all’interno del suo sistema, quindi all’interno dei suoi server.

Ultime considerazioni molto veloci e anche molto personali:

Per quanto riguarda php è ottimo per fare il freelancer, diciamo così, infatti puoi imparare le basi di PHP e scegliere un qualsiasi a caso CMS, per esempio WordPress, e andare a studiarlo nello specifico. Non andare a studiare come si usa per quanto riguarda l’utente finale che non sa programmare, ma andrà a guardare i codici, andrà a guardare come si può modificare, come si possono aggiungere dei plug in, come modificare il tema, come fare integrazioni con servizi esterni e così via.

E quindi proporti all’interno del mercato, italiano o estero però, in generale per un esperto di WordPress dal punto di vista dello sviluppo. C’è molto mercato dato che WordPress è il CMS più usato. La stessa cosa la puoi fare con qualsiasi altro CMS della lista. L’altra cosa importante, i framework. Se vuoi invece creare proprio dei siti da zero, quindi lasciamo perdere i CMS e le modifiche dei cms, ma puoi proporti come sviluppatore di php, ti basta imparare le basi di php ovviamente, e poi andare a prendere un framework e studiartelo alla perfezione.

Basta essere bravo almeno in un framework per essere già competitivo nel mercato. Poi se ne vuoi usare più di uno, ben venga. Ogni framework php tendenzialmente usa degli approcci diversi per quanto riguarda lo sviluppo, quindi scegline uno che ti “ispira” di più e buttati su quello. Questo è il mio consiglio personale. Ok. Passiamo al prossimo linguaggio.

JAVA

linguaggio-java-lato-server-comparazione-piu-richiesto-lavoro-difficile-pro-contro-vantaggi-svantaggi-enterprise
Java è il linguaggio più richiesto nel lavoro

I suoi più grandi pro sono due:

  • È il più richiesto nel mercato del lavoro.
  • Ci sono tantissime librerie e risorse.

Spieghiamo perché.

Il primo: è il più richiesto nel mercato del lavoro.

Sì, il linguaggio in sé, non tanto nel backend, però in generale java è il più richiesto dalle aziende che sono chiamate entreprise. Cosa sono le entreprise, anzi, chi sono le entreprise? sono quelle grandissime aziende, quindi grandi compagnie, anche multinazionali, quindi con sedi sparse in tutto il mondo, quindi che hanno tanti dipendenti a disposizione, che prendono dei lavori con dei budget molto elevati.

Facciamo un esempio pratico: immaginiamo l’applicazione di una banca, quindi inviare i bonifici online. Secondo te, una banca che vuole realizzare un’app del genere, a chi si rivolge? Ad una realtà locale, quindi ad un’azienda locale, che magari ha 10 dipendenti per farsi sviluppare l’app oppure preferisce rivolgersi ad un entreprise? Che ha tanti dipendenti, può offrire delle garanzie, degli standard di sicurezza e quant’altro, mh? Ovviamente si rivolge a delle entreprise.

Java è il linguaggio più richiesto da questo tipo di aziende e quindi c’è un enorme vantaggio dal punto di vista economico. Cioè: sei uno sviluppatore java? Hai più o meno il lavoro sicuro.

Altro aspetto positivo sono le librerie e le risorse.

Il linguaggio java in sé non viene utilizzato soltanto nel backend, ma viene utilizzato un po’ per tutto, dalla creazione di software, ad applicazioni android, viene usato in tantissimi ambiti molto diversi. Questo ci mette a disposizione tantissime librerie, tantissime risorse che noi possiamo prendere e utilizzare all’interno del nostro backend, quindi all’interno del nostro server, in base a quelle che sono le nostre esigenze ovviamente. Inoltre qui nelle risorse noi abbiamo anche i framework. Il framework principale che si è imposto nel mercato per quanto riguarda lo sviluppo di java è uno e si chiama Spring, che viene largamente utilizzato all’interno delle entreprise. Passiamo agli aspetti negativi:

Poco immediato

È poco immediato. ovviamente. Non è nato per lo sviluppo backend quindi è normale che non sia così immediato quanto PHP, ok? Noi in dieci minuti con java, senza avere nessun tipo di base non possiamo andare a creare una pagina di un sito internet. Non ci verrà facile, sarà anzi complicato. quindi è poco immediato sicuramente.

Applicazioni complesse

Tutti gli strumenti che si sono creati e si sono evoluti attorno a java nel backend come appunto Spring, si basano proprio sulla creazione di progetti molto complessi. Quindi questo, a mio parere, è un altro aspetto negativo. Primo perché sono poco immediati da utilizzare e secondo perché noi possiamo andare a creare solo applicazioni complesse dal momento che questa è l’esigenza dell’entreprise. Non possiamo usare Spring per creare un sito molto semplice e veloce come prototipo; è assolutamente sconsigliato. Quindi: aspetti negativi.

E adesso è arrivato il momento dei consigli personali su java.

Per poter entrare a lavorare in un’entreprise solitamente viene richiesta la laurea, quindi devi aver seguito un determinato percorso di formazione e di studi. Poi se già sai usare java e conosci già spring questo è un bene, però di norma le entreprise possono anche formarti. Chi utilizza java nel backend, quindi nei propri server? Abbiamo Twitter, Paypal, Ebay e Netflix. Forse. Questi li usavano in precedenza e adesso? chi lo sa. te lo dirò alla fine del video. Ok, prossimo linguaggio.

C#

linguaggio-csharp-comparazione-microsoft-asp.net-pro-contro-vantaggi-svantaggi
ASP.net consente di usare C# per lo sviluppo backend

Asp.net che non ha nulla a che fare con il vecchio asp che era un linguaggio backend simile a PHP, Ma completamente trascurabile, quindi eliminiamo asp e ci rimane il punto net. Il .net non è altro che un framework che ci consente di poter utilizzare il linguaggio C# anche nello sviluppo backend. Non è altro la risposta della Microsoft al linguaggio java. Immaginati che le enterprise sono formate da due gruppi principali: Chi utilizza le tecnologie Microsoft, quindi non solo utilizza C# ma ne utilizza anche altre perché microsoft offre tante tecnologie, e chi non le utilizza e sceglie di utilizzare java e sta il più lontano possibile dalle tecnologie Microsoft. Quindi tutto quello che abbiamo detto sulle entreprise per java, è anche valido per C# nel backend, con un grande pro.

Pro: Ecosistema Microsoft

Infatti abbiamo tantissimi strumenti che Microsoft ci mette a disposizione, sia per quanto riguarda la documentazione ovvero le risorse per andare a studiarci quelle che sono le tecnologie, sia le tecnologie in sé, infatti vogliamo un database? abbiamo un database in Microsoft. Vogliamo un sistema di server in cloud o comunque scalabili? Abbiamo Azure, o comunque abbiamo quello di Microsoft. Vogliamo unire, quindi un programmino che ci consente di programmare in maniera semplice e pulita e che ci aiuta nello scrivere il codice? Abbiamo Visual Studio. Insomma abbiamo una lunga serie di strumenti che la Microsoft ci mette a disposizione per andare a gestire quelle che sono le problematiche comuni dei progetti entreprise.

Punto negativo: ecosistema sistema Microsoft

Stiamo usando dei prodotti microsoft, e i prodotti Microsoft hanno la licenza. Quindi vuoi usare C# nel tuo backend? devi pagare una licenza. Vuoi usare il database sql di Microsoft? devi pagare una licenza. Vuoi usare l’IDE di Microsoft? devi pagare anche qui la licenza. È vero, ci sono delle licenze gratuite che microsoft mette a disposizione però queste licenze sono limitate, nel senso che ti danno proprio delle limitazioni nell’utilizzo degli strumenti. Inoltre un’altra cosa importante che secondo me è sempre negativa è il fatto che il suo utilizzo è relegato soltanto all’interno della entreprise. Che sono collegate in qualche modo all’ecosistema Microsoft. ok? Quindi è limitato da questo punto di vista. Infatti ho avuto anche difficoltà a trovare dei siti famosi che lo utilizzassero.

L’unico degno di nota che ho trovato è Stack Overflow, che probabilmente già conosci. Infatti è il sito più famoso e più importante per quanto riguarda le domande e le risposte inerenti la programmazione. Ti lascio il link in descrizione. Un bell’articolo in cui vanno a spiegare tutte quelle che sono le tecnologie che utilizzano e in che modo le utilizzano per farle interagire tra loro.

Andiamo avanti. Python e Ruby. Se C# era la risposta di microsoft a java e quindi C# è contrapposto a java, possiamo dire che Python è contrapposto a Ruby.

Python

linguaggio-python-lato-server-comparazione-django--framework-semplice-pro-contro-vantaggi-svantaggi
Il web framework più famoso di Python si chiama Django

Python è un linguaggio di programmazione che non è nato per lo sviluppo backend. È nato per tutt’altro ma poi è stato adattato e può essere usato anche per questo. io lo sto citando in questa lista per un semplice motivo, ovvero Django. Ma andiamo con ordine.

Semplicità

Il linguaggio in sé ha una grandissima qualità, ovvero che è stato ideato e pensato per essere semplice da imparare e semplice da utilizzare. Infatti è uno dei linguaggi più leggibili ed è uno dei linguaggi più consigliati per imparare la programmazione, ma non farti confondere. Il fatto che il linguaggio sia nato per essere semplice non vuol dire che non sia potente, anzi. Tutt’altro.

Django

Django non è altro che il principale framework che ci consente di utilizzare il linguaggio nello sviluppo backend. Uno dei grandi pro è il fatto che ha tantissime funzionalità. quindi cerca sempre di mantenere la semplicità e la filosofia che sta dietro il linguaggio, ma cerca di aggiungere anche molte funzionalità che servono per renderci lo sviluppo del nostro sito molto più semplice e più veloce. Aspetti negativi: ho avuto un po’ di difficoltà a trovare i contro di Django sul web. Tendenzialmente il primo è che è un framework monolitico, ok? e il secondo che è molto più importante rispetto al primo, è che è poco richiesto nel lavoro. Vediamoli uno alla volta.

Monolitico

Cioè, è vero che ci mette tante funzioni a disposizione, però una volta che noi scegliamo di usare questo framework, dobbiamo prendercele tutte, non possiamo eliminarne alcune, ce le abbiamo e le dobbiamo tenere. Punto. Devo dire che questo primo problema è stato risolto con la creazione di un altro framework che si chiama Flask, dà molte meno funzionalità rispetto a Django e quindi il primo problema può essere risolto diciamo utilizzando Flask. Il secondo problema è però che è poco richiesto nel lavoro.

Poco richiesto nel lavoro

C’è da dire una cosa riguardo Python: sicuramente il backend non è il suo settore principale, infatti è tutt’altro. è molto richiesto, molto famoso in ambiti di ricerca e scientifici, come ad esempio Machine Learning, l’intelligenza artificiale, tutto quello che è inerente a calcoli numerici avanzati e complessi. Lì Python è veramente forte ed è il linguaggio di punta, diciamo così. Nel backend invece il discorso è diverso. Andiamo avanti. Chi utilizza Django sul web? Abbiamo Instagram, Pinterest, Dropbox. Mi pare che o Instagram o Pinterest tra l’altro utilizzino anche Flask, quindi per rimanere proprio in tema con Python.

Ruby

linguaggio-ruby-on-rails-lato-server-comparazione-approccio-framework-pro-contro-vantaggi-svantaggi
Puoi usare Ruby per lo sviluppo backend con il framework Ruby on Rails

Ruby ha forse uno dei pro più interessanti che c’è, ovvero il suo approccio.

Approccio

Il suo stesso creatore dice che l’obiettivo principale col quale è stato creato era creare un linguaggio che permettesse allo sviluppatore di essere più produttivo quindi di produrre di più, che gli permettesse di godersi la programmazione e di essere felice quindi di essere contento.

Rails

Noi non possiamo usare Ruby così diretto, nudo e crudo all’interno del nostro backend, ma dobbiamo utilizzare un framework. Come abbiamo visto per Python in cui c’era un solo framework molto grosso e importante, anche per Ruby è successa la stessa cosa. Il framework principale è uno e si chiama Rails. E prende esattamente l’approccio e lo incarna alla perfezione, quindi è completamente concentrato a rendere il programmatore più produttivo. Più produttivo vuol dire lavorare meno ore, quindi stare meno tempo davanti al computer e raggiungere lo stesso risultato. Aspetti negativi.

Lentezza

Ho scritto lentezza perché in realtà è lento per due fattori. uno: è lento nell’esecuzione del codice, cioè, potenzialmente è più lento di php ed è sicuramente più lento degli altri che vediamo nella lavagna. Quindi questo è un fattore importante. due: lentezza nell’apprendimento. sia Ruby che Rails non sono degli strumenti facili da imparare, possono sembrare semplici, ma in realtà sono abbastanza complicati per poterli utilizzare al meglio. Soprattutto Rails bisogna fare molta pratica e bisogna studiarli, quindi c’è anche una lentezza per quanto riguarda l’apprendimento.

Chi utilizza Ruby o Rails nel backend? Abbiamo Airbnb, Groupon e Linkedin. Forse. Tra poco vedremo.

Node.js

nodejs-comparazione-javascript-lato-server-real-time-performance-pro-contro-vantaggi-svantaggi
Node.js ti consente di usare il linguaggio Javascript lato server

Parliamo finalmente di Node js. Node non è un linguaggio di programmazione, ma bensì è una tecnologia che consente di utilizzare il linguaggio javascript lato server. non voglio entrare troppo nel tecnico, però essenzialmente introduce concetti nuovi per quanto riguarda la programmazione backend e questi concetti ci portano tanti vantaggi. Per esempio: è ottimo per le applicazioni Realtime, ci dà un enorme incremento delle performance, della produttività e viene usato nelle start-up. Adesso vediamole uno ad uno.

Real Time

Realtime: esempio pratico una chat. Immaginati una chat tra due persone, ok? Quando una persona scrive un messaggio, l’altro lo riceve e viceversa. Il concetto è semplice se abbiamo due persone connesse. Ma nel momento in cui abbiamo più di due persone? quindi magari non sono due ma sono duemila? Oppure sono ventimila? Oppure sono 40, 50mila persone connesse nella stessa chat nello stesso momento, che cosa accade? Come viene gestita quella chat da tutti gli altri linguaggi di programmazione? Ci sono dei problemi effettivamente. Invece Node js grazie al suo approccio diverso si comporta benissimo per la gestione di questo genere di applicazioni. Lo stesso discorso della chat lo possiamo fare con un sito internet, infatti dopo vedremo che qualcuno lo utilizza anche per questo.

Performance

Performance: riesce a gestire un enorme numero di connessioni simultanee nello stesso momento e allo stesso tempo però abbiamo anche un utilizzo delle risorse del nostro server molto basso, quindi va a utilizzare poca RAM e poca CPU.

Produttività

Un altro aspetto positivo è la produttività. Infatti le aziende che hanno deciso di utilizzare Node js per quanto riguarda il proprio sviluppo backend si sono accorti che i propri programmatori diventavano più produttivi rispetto agli altri linguaggi. Che cosa vuol dire questo? Che il programmatore lavora meno ore ma allo stesso tempo finisce anche prima il progetto. Quindi questa è una soluzione perfetta. sono tutti contenti, sia il programmatore sia l’azienda. La produttività è dovuta essenzialmente a tre fattori:

  1. Il primo è che c’è un enorme quantità di librerie già scritte dalla community che noi possiamo semplicemente prendere e riusare all’interno del nostro codice e questo ovviamente ci permette di velocizzare tantissimo il lavoro.
  2. Il secondo è che ci sono degli strumenti appositi per fare lo sviluppo backend come per esempio il principale framework di Node js ovvero Express.
  3. E il terzo è che si tratta sempre di javascript, quindi noi possiamo spostare il nostro team front end anche nello sviluppo backend rendendolo produttivo anche il lato server. E questo è interessante. anzi ho letto che alcune aziende hanno uniformato il proprio team di sviluppo fra front end e backend.

Startup

Start up. è una tecnologia molto innovativa che come ti ho detto utilizza degli approcci diversi rispetto agli altri e ovviamente essendo considerata così innovativa e molto richiesta all’interno delle start up. Passiamo invece a quelli che sono gli aspetti negativi.

Quando non usare Node.js

È sconsigliato da usare in due casi. Il primo quando dobbiamo andare a fare un uso della cpu intensivo e il secondo quando invece vogliamo utilizzare un database relazionale. Ok. Adesso arriva la parte divertente.

Quali aziende usano Node.js

Ho volutamente lasciato dei punti di domanda all’interno del box perché voglio farti vedere come si è evoluta la situazione dopo che note si è diffuso in tutto il mondo. Andiamo con calma. Partiamo da chi utilizza Ruby. Airbnb utilizza Ruby, nulla da dire. Andiamo qua. Groupon utilizza Ruby e Rails, anzi utilizzava Ruby e Rails perché si è accorto che effettivamente nel suo sito internet doveva gestire un’enorme quantità di connessioni simultanee, quindi di persone che entravano nel sito e effettivamente lo guardavano. Quindi si sono detti: mmh, Ruby e Rails non è così tanto performante, non ci permette di gestire al meglio tutta questa enorme quantità di richieste. Dobbiamo trovare un altro linguaggio, un’altra tecnologia che ci permetta di farlo e sono passati a Node js quindi hanno convertito tutto il loro backend, quindi il loro sito internet ottenendo un incremento delle prestazioni del 50%. Inoltre gli ingegneri o i programmatori di Froupon hanno notato anche un incremento della produttività. E quindi punto a favore. Ti lascio tutti i link in descrizione delle varie aziende che ti andrò a citare.

Poi, Linkedin. Anche Linkedin ha fatto una cosa interessante. non tanto per quanto riguarda il sito internet, ma per quanto riguarda la sua app. Prima utilizzava sempre Ruby e Rails e ha detto “ok, vogliamo cambiare, vogliamo provare qualcosa di diverso”, bam, sono andati sempre su Node js. Che cosa hanno ottenuto? Un incremento delle prestazioni superiore di 20 volte rispetto a prima ma non solo. Hanno ottenuto una riduzione dei server del 90%. semplicemente passando da Rails a Node js. Che cosa vuol dire questo? Che se prima avevano 100 server in cui facevano girare la loro applicazione, il lato backend, con Rails, adesso ne hanno soltanto 10 in cui la fanno girare con note. Questa cosa è fantastica! Quindi qua si vede la vera potenza delle prestazioni e delle performance di Node js. Altro esempio interessante, qui non c’è nulla, sono tutti rimasti con Python. Passiamo qua.

Twitter. Prima utilizzava Ruby and Rails ma poi successivamente ha notato dei problemi di scalabilità del linguaggio o comunque del framework e quindi ha deciso di passare in java, nulla da dire.

Invece PayPal indovina un po’ cos’ha combinato? Ha detto “mmh, sai che c’è, noi vorremmo fare una prova”, dovevano sviluppare nel 2014 mi pare – ti lascio sempre il link in descrizione – la loro applicazione mobile e alcuni programmatori all’interno del team “mmh, ma perché non proviamo una tecnologia diversa da java, proviamo qualcosa di nuovo, proviamo per esempio Node js”. Non tutti i programmatori erano d’accordo e quindi hanno creato due team di sviluppo. 4 persone circa andavano a sviluppare l’applicazione in java, invece due sole persone andavano a svilupparla in Node js. Vuoi sapere com’è andata a finire? L’applicazione sviluppata in Node js è stata scritta due volte più velocemente rispetto all’applicazione java, quindi in 4 ci hanno impiegato ad esempio 4 mesi per svilupparla in java, invece due persone, due soli mesi per svilupparla in note. questa cosa è fantastica. Quindi come puoi vedere c’è un aumento della produttività e dei tempi di produzione. Altro aspetto positivo di PayPal, gli ingegneri si sono accorti che c’era proprio una riduzione del codice che andavano a scrivere. mi pare che fosse il 33% di righe in meno, quindi di codice in meno e anche un 40% di file in meno. Quindi hai un’applicazione più snella, più facile da leggere e da mantenere. L’altro vantaggio che hanno riscontrato è nelle performance. Infatti l’applicazione scritta in note js riusciva a gestire il doppio delle richieste per secondo rispetto all’applicazione di java, ma non soltanto ne gestiva il doppio, le gestiva anche più velocemente circa con il 35% di velocità in più. Adesso non vorrei sbagliarmi, in ogni caso ti lascio il link in descrizione dell’articolo perché è molto interessante.

Poi, altri siti. eBay e Netflix: entrambi utilizzavano java nei propri backend e successivamente hanno seguito l’esempio di PayPal soltanto per alcune parti dei loro sistemi e sono passati a Node js. Anche di questi ti lascio il link in descrizione se ti vuoi informare, perché questi casi studio sono abbastanza interessanti, almeno per quanto mi riguarda. Piccola pecca e nota su note js. prima ti ho citato il framework chiamato express, che è il framework principale che viene utilizzato per poter creare dei siti o comunque delle applicazioni web. Voglio dirti che il creatore del framework, ha deciso di abbandonare Node js perché si è accorto che non era una tecnologia realmente scalabile ed è passato ad un altro linguaggio.

Il linguaggio Go

linguaggi-emergenti-sviluppo-lato-server-golang-groovy-scala
Linguaggi degni di nota: Go, Groovy e Scala

Che cos’è Go? Go è il linguaggio di programmazione creato da Google. Google qualche anno fa si è accorta che non c’era nessun linguaggio a disposizione che potesse utilizzare nei suoi server per lo sviluppo backend, Che fosse flessibile, potente, veramente scalabile, e così via e quindi ha pensato “mmh, ma perché non ce lo creiamo noi?” ed effettivamente l’ha fatto. è completamente gratuito ed è disponibile per tutti. Ti lascio il link in descrizione, col sito ufficiale in cui puoi andare e dare un’occhiata ai tutorial. Altri linguaggi degni di nota abbiamo Groovy e Scala.

Groovy

Groovy, con il suo framework chiamato Grails, quindi molto simile a Rails, togli la R e aggiungi la G, vuole fare esattamente la stessa cosa che ha fatto Rails per Ruby, per questo il nome lo ricorda così tanto. Perché Groovy, che viene eseguito nella macchina virtuale di java, vuole prendere invece l’approccio che si ha quando si sviluppa con Ruby. Quindi il fatto di essere improntato sulla produttività, di non far perdere tempo allo sviluppatore, vuole prendere questo approccio e portarlo più vicino ai programmatori java. Sicuramente interessante.

Scala

Altro linguaggio degno di nota, Scala. Sempre una sorta di Java, ma più basato sulla programmazione funzionale e interessante e ti consiglio il corso completamente gratuito che trovi su Coursera, Ti lascio il link in descrizione, che è fatto direttamente dal creatore del linguaggio. Io l’ho seguito ed è stato abbastanza interessante.

Ok, il video finalmente è finito. Ti ho detto quello che penso sui vari linguaggi di programmazione backend. Quello che ti chiedo e di non lasciare un like, no. Non mi interessa il tuo like, sai cosa preferisco invece? Preferisco avere un tuo commento, dimmi che cosa ne pensi di quello che ti ho detto, quindi di quelle che sono le mie opinioni personali sui linguaggi, dimmi se non sei d’accordo su alcune cose, mi fa piacere, parliamone assieme, sono contento, mh? Quindi conosciamoci. Se vuoi decidere l’argomento dello spiegone del prossimo mese, vieni in developer society, il gruppo chiuso che ho creato, ti lascio il link in descrizione e lì ci sarà un sondaggio in cui puoi votare o proporre anche dei nuovi argomenti per lo spiegone del prossimo mese, ok? Bene. Penso di aver detto tutto, adesso posso tornare a rilassarmi finalmente. Ci vediamo il prossimo mese.