MEAN vs. LAMP Stack Pro e Contro
Stack Web si sono evoluti per decenni con progressi nella tecnologia e nei linguaggi back-end. Attualmente due dei più popolari stack Web sono LAMP e MEAN. Si basano su due tecnologie diverse per i linguaggi di backend, i database e gli ambienti server. Il termine "pila" si riferisce a tecnologie che si sovrappongono l'una sull'altra per creare un ambiente server web.
In questo articolo, vorrei chiarire questi due stack Web osservando le loro scelte tecnologiche, sia pro che contro. Dove si impone ogni stack? E quali tipi di progetti potrebbero trarre il massimo vantaggio da entrambe le opzioni? Se sei nuovo alle tecnologie web o vuoi semplicemente conoscere questi due stack, allora questa guida ha tutto ciò di cui hai bisogno.
Sviluppo LAMP tradizionale
La maggior parte degli sviluppatori dovrebbe conoscere il tradizionale stack LAMP perché è stato utilizzato sin dal primo web. LAMPADA sta per Linux, Apache, MySQL e PHP. Ognuno di questi è pacchetti software individuali che vengono combinati per formare una soluzione server versatile.
La più grande ragione per rimanere con LAMP è sicurezza e supporto diffuso. È stato in giro per decenni, ed è un metodo comprovato di hosting di siti web.
Tutte le tecnologie di backend come PHP e MySQL sono ben note e supportato da tutti i principali provider di hosting. Se lavori su uno stack LAMP puoi praticamente ospitare ovunque. Inoltre, ottieni accesso ai più popolari motori CMS. WordPress, Drupal e Joomla funzionano tutti su PHP / MySQL.
Ci sono opzioni personalizzabili all'interno dell'architettura LAMP come LEMP che sostituisce Apache con nginx. È anche possibile eseguire una variante su un server Windows come stack WAMP.
Comunque tutti i software di base - inclusi Apache, MySQL e PHP - erano open-source, e realizzato principalmente per Linux. Ecco perché Linux ha più senso per un ambiente server, ed è per questo che LAMP ha superato la prova del tempo per lo sviluppo web moderno.
La maggior parte degli sviluppatori percorre questa strada perché è così il modo più semplice per ottenere un sito web online. Troverai molto supporto nei forum che coprono tutto il necessario per configurare e risolvere un ambiente LAMP. Ad esempio, puoi dare un'occhiata a questa domanda ServerFault per maggiori informazioni.
Backend JavaScript con MEAN
Node.js è la tecnologia più recente per gli sviluppatori determinati a eseguire applicazioni scalabili create con JavaScript. Nodo alimenta lo stack MEAN, e offre un vantaggio primario: tutto funziona su una sola lingua.
SIGNIFICARE sta per MongoDB, Express.js, Angular.js, e naturalmente Node.js. Questo acronimo non richiede alcun sistema operativo server o software server. Una pila di MEAN può funzionare su qualsiasi sistema operativo, e Node arriva anche con un proprio server per gestire JS sul back-end.
Troverai molta documentazione e supporto sul sito web Mean.io.
Anche se questo stack ha guadagnato molta attenzione, non ha ancora nulla vicino alla quantità di supporto stabile come un tradizionale stack LAMP.
Allora perché qualcuno dovrebbe andare con MEAN? Perché è in definitiva più veloce e più facile da ridimensionare. MongoDB è un Database NoSQL che ottimizza le query. L'uso di JavaScript fullstack migliora anche lo sviluppo perché una lingua si applica a tutti i lavori frontend e backend.
Inoltre molti altri framework JS stanno colpendo il mercato come soluzioni stabili. Ad esempio, MEAN può essere convertito in a Stack MEEN sostituzione di Angolare con Brace.
I programmatori adoreranno lo stack MEAN perché separa il codice per la manutenibilità e la crescita. Questo lo rende più facile organizzare le tue app Web JavaScript in modo che vengano eseguite in un ambiente naturale.
C'è molto da imparare su questo argomento e questa è probabilmente la più grande barriera all'ingresso per i nuovi sviluppatori. L'apprendimento di tutte le tecnologie necessarie per gestire un'applicazione MEAN può richiedere mesi. Ma se ami Nodo e vuoi eseguire tutto su JavaScript, ne vale la pena.
Ecco alcuni tutorial per principianti per iniziare.
- Una guida per principianti assoluti a Node.js
- Felix's Node.js Guida per principianti
- Introduzione a Express.js
- Impara a costruire moderne app Web con MEAN
- Introduzione a Node.js, Express e MongoDB
PHP vs. Nodo
PHP è in circolazione dalla metà degli anni '90 ed è davvero il linguaggio di backend più popolare. Molti sviluppatori web iniziano (o eventualmente imparano) PHP perché è così predominante su piattaforme web e provider di hosting.
Il nodo è una struttura più recente ma la sua popolarità è aumentata straordinariamente velocemente. Ciò include la popolarità di NPM come gestore di pacchetti per gli sviluppatori Web e si espande ulteriormente in potenti framework di frontend come Angular 2.
L'altro vantaggio di Node è che viene fornito con un proprio server web. JavaScript è alla base di tutto su uno stack MEAN, quindi se ami JS, allora ti innamorerai di creare app web MEAN.
Molti sviluppatori pensano che PHP sia un linguaggio mal progettato perché il creatore, Rasmus Lerdorf in realtà non lo progettò come una lingua. PHP è iniziato come un soluzione generica per siti Web, e rapidamente crebbe in una grande libreria di funzioni non correlate.
Ma con PHP 7 si tenta di correggere molti errori del linguaggio, e gratuitamente OOP framework, come Laravel, PHP è un linguaggio molto migliore ora di quanto sia mai stato.
Quindi il dibattito linguistico si riduce a la tua scelta personale. Ti piace davvero scrivere JavaScript? Quindi potrebbe essere opportuno considerare il nodo con uno stack MEAN.
Se già conosci PHP e vuoi restare fedele a ciò che sai, LAMP è anche una via percorribile.
Pro e Contro:
Ci sono più livelli di ogni stack Web da confrontare, inclusi il sistema operativo, il software server, il database e il linguaggio di back-end.
(1) Il Stack MEAN anche include Angolare che è un framework di frontend. Non c'è alcun framework richiesto in uno stack LAMP, ma puoi sempre aggiungerne uno a qualsiasi app che costruisci.
(2) Per quanto riguarda il sistema operativo, lo stack LAMP cerca un derivato di Linux. Linux è in genere la scelta migliore per un ambiente server indipendentemente dallo stack, ed è vero anche per MEAN.
(3) Ora il sistema operativo del server è solo il software del computer, ma non è il software del server web. Per ottenere questo è necessario un programma come Apache o nginx. LAMP usa Apache perché è una delle scelte più stabili disponibili.
(4) MEAN usa il server Node.js che è parte del pacchetto Node. È ancora abbastanza nuovo, e nonostante ci sia un sacco di supporto, Node non ha neanche lontanamente la stessa comunità di dimensioni di Apache.
(5) Richiede anche un server Node un back-end di JavaScript (senza estensioni). Apache consente la maggior parte dei linguaggi di back-end, e ci sono molte estensioni gratuite per un maggiore supporto. Ma al momento Apache non ha nulla per il supporto Node.
(6) Gestione del database è dove troverai la più grande differenza. LAMP utilizza MySQL per l'archiviazione dei dati relazionali, mentre MEAN utilizza MongoDB, che è un database non relazionale. I DB non relazionali sono più veloce, e fornire un metodo più semplice di ridimensionamento con maggiore traffico.
(7) Tieni presente che PHP non è limitato esclusivamente a MySQL. Può usare MongoDB e altre alternative come PostgreSQL o SQLite. È solo che la maggior parte degli sviluppatori PHP conosce MySQL, quindi è il principale contendente per un tipico stack LAMP.
(8) Lo stack MEAN in genere correre più veloce e scala più grande, ma richiedono molto più tempo e conoscenza del server per apprendere il sistema. Pile LAMP sono provato e vero, e vengono fuori dalla scatola con l'infrastruttura più sicura e il supporto più ampio che si possa immaginare.
(9) I linguaggi di programmazione fanno una grande differenza tra i due stack. LAMP lavora principalmente su PHP che include WordPress e il framework Laravel. MEAN funziona su ExpressJS / NodeJS per il backend con AngularJS sul frontend.
(10) MEAN è JavaScript completo, e ci sono molte cose che devi imparare per farlo funzionare. È un scelta frequente di nuove startup disposto a superare i limiti nello sviluppo di app Web. LAMP è più tradizionale con JS sul frontend, PHP sul backend. È fatto per le persone che vogliono solo ottenere siti Web online senza troppe preoccupazioni.
Si prega di consultare questa guida comparativa per saperne un po 'di più. Nessuna scelta è giusta o sbagliata, solo diversa e fatta per diversi progetti.
Avvolgendo
Direi che la maggior parte dei siti web è orientata verso lo stack LAMP perché è stata testata e ha un sacco di utili thread Q & A indicizzati su Google. MEAN è ancora in crescita e ha anche un sacco di supporto, ma potrebbe essere più tecnico di quanto la maggior parte della gente voglia affrontare.
Sentiti libero di provare entrambi e vederli per te. È possibile installa entrambi i setup localmente sul tuo computer e costruisci su di essi senza un server remoto.
E se stai cercando maggiori informazioni su entrambi gli stack, ho raccolto una serie di link utili di seguito.
- Impara a costruire moderne app Web con MEAN (Thinkster.io)
- Amministratore stack LAMP Stack (Jessesnet.com)
- Come installare Linux, Apache, MySQL, PHP (LAMP) Stack su Debian 8 (Digitalocean.com)