Linguaggi Backend, php vs java vs ASP.Net vs Python vs Node.js vs Ruby

Linguaggi Back end

Di solito quando si mettono a confronto i linguaggi, si vogliono analizzare le specifiche tecniche di uno piuttosto che dell’altro.

L’argomento di qui parleremo è : i linguaggi di backend, pro e contro.

In quest’ Articolo andremo a fare un’analisi di quelli che sono i vari linguaggi backend o i linguaggi che sono lato server in generale. Innanzitutto facciamo una piccola panormaica, servono per fare tendenzialmente due cose:

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

Partiamo subito con il primo linguaggio: PHP.

php-vdmweb Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby
I suoi pro sono: è il più usato, i CMS e i framework.


PHP E’ il 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.

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.

I CMS che in pratica 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! 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.

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 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.

Altra cosa importante per quanto riguarda lo sviluppo lato backend, sono sicuramente i framework.

Cosa sono i framework? i framework danno una struttura del sito internet, ma non soltanto, offrono anche strumenti che 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.

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, ne abbiamo uno o al massimo due che si impongono nel mercato, ovvero che vengono richiesti negli annunci di lavoro e che vengono utilizzati effettivamente per lavorare.

Invece in PHP non abbiamo un solo framework, ma sono tanti anche molto diversi tra loro e tutti vengono richiesti negli annunci di lavoro. Abbiamo Synfony, Laravel, Cake PHP, Zendframework, Falcon, insomma ce ne sono veramente tanti.

Adesso passiamo a quelli che sono gli aspetti negativi del linguaggio.

La cattiva fama. Viene considerato uno dei linguaggi più poveri tra tutti quelli che trovi in quest’articolo Questo perché puoi diventare produttivo, quindi puoi creare qualcosa anche in dieci minuti senza avere nessun tipo di base, 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 porterà 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, 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 vedremo in quest’articolo.

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, per 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 Facebook utilizza nei suoi server proprio il linguaggio php e da subito si è accorto di questo grave problema delle performance, ha deciso 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, chiamato Hack che sta ad un livello superiore di php e lo include al suo interno, 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.

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.

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.

Passiamo al prossimo linguaggio. JAVA.

java-vdmweb Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby

I suoi più grandi pro sono due:

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

Il linguaggio in sé, non tanto nel backend, però in generale java è il più richiesto dalle aziende che sono chiamate entreprise.

Chi sono le entreprise? sono quelle grandissime aziende, quindi grandi compagnie, anche multinazionali, con sedi sparse in tutto il mondo, che hanno tanti dipendenti a disposizione, che prendono dei lavori con dei budget molto elevati.

Java è il linguaggio più richiesto da questo tipo di aziende e quindi c’è un enorme vantaggio dal punto di vista economico se 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, nel layout. 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 nelle risorse 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

E’ poco immediato. Ovviamente non è nato per lo sviluppo backend quindi è normale che non sia così immediato quanto PHP, 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.

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.

Perché 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.

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.

Prossimo linguaggio Asp.net

asp.net_ Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby

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. Ovvero l’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 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

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 il lider 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 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.

Infatti ho avuto anche difficoltà a trovare siti famosi che lo utilizzassero. L’unico degno di nota è Stack Overflow ovvero il sito più famoso e più importante per quanto riguarda le domande e le risposte inerenti la programmazione.

Andiamo avanti Python

python-vdmweb Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby

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. 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 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:

Sicuramente il backend non è il settore principale Python, infatti è tutt’altro. che 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ì.

Passiamo a Ruby.

Ruby-Banner Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby

Ruby ha forse uno dei pro più interessanti che c’è, ovvero il suo 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 e che gli permettesse di godersi la programmazione e di essere felice quindi di essere contento.

Ruby non può essere usato 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 lo stesso approccio e lo incarna alla perfezione, quindi è completamente pensato per rendere il programmatore più produttivo.

Aspetti negativi.

Lentezza: è lento per due fattori

1) è lento nell’esecuzione del codice, cioè, potenzialmente è più lento di php ed è sicuramente più lento degli altri che vediamo qui descritti.

2) 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.

Node js

Progetto-senza-titolo Linguaggi Backend,  php vs java vs ASP.Net vs Python vs Node.js vs Ruby

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,( esempio pratico una chat) ci dà un enorme incremento delle performance, della produttività e viene usato nelle start-up.

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 viene utilizzato anche per questo.

Aspetti positivi

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à: 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. Quindi questa è una soluzione perfetta. sono tutti contenti, sia il programmatore sia l’azienda. La produttività è dovuta essenzialmente a tre fattori 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.

Il secondo è che ci sono degli strumenti appositi per fare lo sviluppo backend come per esempio il principale framework di Node js ovvero express.

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, è una tecnologia molto innovativa che utilizza degli approcci diversi rispetto agli altri e ovviamente essendo considerata così innovativa e molto richiesta all’interno delle start up


Aspetti negativi

È 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.


Queste sono ovviamente le mie personali opinioni se la pensi diversamente fammelo sapere nei commenti

 

Condividi con:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.