Fonte immagine: pixabay.com

Quindi, prima di iniziare una guerra fredda qui, tra le persone che usano Rails (Ruby) e PHP, lascia che ti dica che non sono qui per discutere se quale lingua sia migliore. Per me, o per qualsiasi programmatore esperto, entrambi sarebbero gli stessi. È solo una questione di verosimiglianza su chi preferisce cosa e cosa è facile per loro.

In questo blog vorrei discutere principalmente dell'importanza di entrambi e di come differiscono l'uno dall'altro. Quindi, se sei nuovo su Rails e PHP, allora questo potrebbe essere il blog perfetto per te, se vuoi selezionarne uno da uno dei due. Quindi iniziamo. Lo facciamo?

Alcuni retroscena di base

Per cominciare, PHP è un linguaggio di scripting, mentre RAILS è un framework di sviluppo web, che si basa sul linguaggio di scripting Ruby. PHP è un linguaggio di programmazione ampiamente utilizzato per siti Web come Facebook, WordPress, Yahoo, Flickr e altri ancora. PHP è estremamente veloce, n volte più stabile di Rails e ha anche una più grande comunità di sviluppatori per supportarlo.

Rails è completamente basato su Ruby. È estremamente facile da usare e iniziare. L'ambiente in Ruby è molto automatizzato. Ruby è davvero un linguaggio davvero sorprendente. A differenza di PHP, è davvero orientato agli oggetti da zero. Il suo codice è molto conciso e potente. Le gemme (estensioni) ti consentono di sfruttare le funzionalità necessarie. Dopo aver programmato in Ruby, trovo che scrivere codice in PHP sia piuttosto noioso.

Il buono il brutto e il cattivo

  1. PHP

Il mio consiglio è PHP, perché l'utilizzo di PHP a livello di base è molto semplice, ci sono molte persone lì che sanno copiare / incollare un codice modello, modificare i file di configurazione e potrebbero persino chiamarli programmatori PHP, il che dà a PHP un pessimo nome che non credo meriti.

Per un vero programmatore, non importa quale lingua usi, è ciò che codifica e il modo in cui codifica ciò che conta. Dopo aver appreso pochi linguaggi di programmazione, capisci che molti di loro sono in realtà molto simili, di solito è la sintassi che è diversa (specialmente nel loro meccanismo di base, anche per diversi paradigmi di programmazione).

Le prime cose che dovresti imparare sono scrivere codice pulito e leggibile e non scrivere codice troppo sofisticato, dal momento che è più difficile eseguire il debug e confondere per qualcuno che non conosce i trucchi speciali del linguaggio (con PHP, puoi fare tutti i tipi di trucco cose, non tutte sono ovvie per gli altri programmatori).

Rispetto a PHP, Rails è anche ostile quando si tratta di errori. Con PHP, ti sputerà errori nello sviluppo e i messaggi di errore hanno davvero senso. In genere viene visualizzata una pagina, ma viene mostrata la parte con l'errore, quale riga si è verificato l'errore e il messaggio è utile. In Rails, in genere l'intera app esplode.

Mi dispiace offendere alcune persone qui, ma Ruby non è semplicemente così semplice come PHP da imparare. È a tutti gli effetti un linguaggio estremamente potente. Ho scelto di usare Ruby semplicemente perché come sviluppatore ritengo che sia un linguaggio molto migliore di PHP. Ma dal punto di vista dell'apprendimento, non lo è. Ruby ha molte caratteristiche che non sono semplici da comprendere per un programmatore principiante. Uno di questi concetti sono blocchi, proc e lambda, che Rails usa molto.

Il classico esempio di Ruby on Rails che userò è per la creazione di un modulo:

  1. RAILS

Ruby è una programmazione dinamica, imperativa e orientata agli oggetti. È tipizzato in modo dinamico, come in PHP, quindi non devi preoccuparti di dover dichiarare le variabili. Rails è open source, funziona su più piattaforme e può essere incorporato in Hypertext Markup Language. È un linguaggio di altissimo livello. Offre anche l'incapsulamento dei metodi di dati all'interno degli oggetti.

Ruby ha tecniche di manipolazione di stringhe e testi super avanzate che possono essere facilmente collegate a DB2, MySQL, Oracle e Sybase. I grandi programmi scritti in Ruby sono facilmente gestibili. Ha una sintassi semplice e chiara che consente ai nuovi sviluppatori di imparare Ruby molto rapidamente e facilmente. Non solo ha la capacità di scrivere applicazioni multi-thread con una semplice API ma offre anche una classe di array avanzata e la possibilità di scrivere librerie esterne in Ruby o C.

Ruby Consente di utilizzare la "parola riservata" come identificativo purché il parser non percepisca un'ambiguità. Rispetto a PHP, Ruby ha molte funzioni di sicurezza e una potente gestione delle stringhe.

Quindi, la domanda del decennio è … Con tutte queste caratteristiche, rende Ruby una prospettiva migliore rispetto a PHP?

Sfortunatamente, non è così in bianco e nero e molte variabili entrano in gioco quando determinano se sviluppare PHP o ruby ​​su rotaie.

Ad esempio, Ruby on Rails è un linguaggio molto più complesso in cui impostare un ambiente di sviluppo. Di conseguenza, la tacita conoscenza richiesta per Ruby aumenta immediatamente il prezzo nel mercato della programmazione rispetto allo sviluppo di PHP. Uno sviluppatore PHP, d'altra parte, può semplicemente utilizzare un pacchetto convenzionale come WAMP, MAMP per ottenere la configurazione dell'ambiente di sviluppo in meno di 5 minuti.

Quando ho iniziato a scrivere codice in Ruby, Gems mi ha confuso più di quanto non mi abbiano aiutato perché c'era troppa 'magia. Una volta appreso che potevi (e dovresti) semplicemente leggere il codice sorgente per le gemme, tutto aveva molto più senso. A causa della natura innestabile delle gemme e degli standard della comunità, le gemme possono dare alla tua applicazione un'enorme quantità di funzionalità molto rapidamente.

Alcune gemme senza le quali non posso vivere: Devise (autenticazione: gestisce gli accessi degli utenti, accesso social, dimentica i flussi di lavoro delle password e molto altro), Paperclip (upload di file - gestisce anche il caricamento su S3, ritaglio / ricampionamento di immagini), semplice Form rende i moduli incredibilmente semplici da standardizzare e renderizzare sui siti Web.

PHP è stato progettato come pre-processore ipertestuale, il che significa che viene eseguito solo quando è presente una richiesta web. Rispetto a Ruby, che esegue un processo. In Rails, puoi facilmente impostare lavori in background usando Sidekiq o Resque. Ciò aumenta anche la capacità di Rail di ridimensionarsi facilmente. Nelle nostre applicazioni, spostiamo molte cose che possono rallentare le richieste come inviare e-mail agli utenti in lavori in background.

Ora PHP può eseguire lavori in background utilizzando Gearman ma non è standardizzato: è necessario installare l'estensione PECL. In Ruby / Rails, i lavori in background non sono un problema. Lo fai e basta.

Il tiro alla fune

Ora che hai letto molto su PHP e Rails, diamo un'occhiata a loro. Controlliamo quale è alla pari in termini di utilizzo delle risorse e anche in termini di prestazioni (velocità).

Corsi consigliati

  • Corso di certificazione online a Java Hibernate
  • Programma su Java Spring
  • Corso di certificazione WordPress
  • Corso di rubini

Utilizzo e velocità delle risorse

In termini di utilizzo della memoria, sarà generalmente Python> Ruby> PHP, che ovviamente porta a Django> Rails> PHP. Non solo memoria, ma tende anche a resistere al rubino grezzo su rotaie rispetto alle prestazioni php. Anche qualcosa che vale la pena notare qui è che, ovviamente, non ci sono assoluti qui. Ci sono molti scenari di utilizzo in cui Ruby batterà Python, senza dubbio. Penso che tutti possiamo essere d'accordo sul fatto che Ruby e Python batteranno sempre PHP, comunque.

La mia esperienza personale è che l'utilizzo della memoria di Rails può essere elevato, specialmente su macchine a 64 bit (il minimo è di circa 95-100 MB con un front-end sottile). PHP tende ad essere usato con diversi schemi, quindi è un po 'difficile confrontarlo direttamente.

Detto questo, è ancora molto facile creare un'applicazione Django scadente, lenta e inefficiente e un'applicazione Rails snella, veloce ed efficiente, o viceversa. Abilità, conoscenza ed esperienza con il sistema che stai usando faranno molto di più per la sua memoria e il suo impatto sulle prestazioni rispetto al solo framework stesso.

Le ottimizzazioni del database, le scelte e le architetture del server (impostazioni Apache o proxy che utilizzano nginx / lighttpd, ecc.) E le decisioni di progettazione fondamentali probabilmente supereranno abbastanza rapidamente le caratteristiche intrinseche del framework.

Se si eseguono benchmark tipici tra Ruby e altre lingue, Ruby perde. Ruby probabilmente non ti servirebbe bene a scrivere un'applicazione di elaborazione del segnale digitale in tempo reale o qualsiasi tipo di sistema di controllo in tempo reale. Ruby (con le VM di oggi) probabilmente soffocerebbe su un computer con risorse limitate come gli smartphone.

Ricorda che gran parte dell'elaborazione sulle tue applicazioni web viene effettivamente eseguita da software sviluppato in C. es. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, molte librerie di analisi, RMagick, TCP / IP, ecc. Sono programmi C utilizzati da Rubino. Ruby fornisce la colla e la logica aziendale.

La domanda è "PERCHÉ PHP allora?"

Ora parliamo di PHP. PHP funziona estremamente lentamente sul server Apache. Anche se provi a eseguire una pagina PHP anche senza script, solo una pagina php vuota, ci vorrà ancora 10 volte più tempo per caricare rispetto a JSP o Java. Ma ancora una volta, la domanda di un milione di secolo è che se è così, allora perché Facebook non ha ancora abbandonato PHP? Il motivo per cui Facebook non è emigrato da PHP è perché gli ingegneri di Facebook sono riusciti a ovviare a molti dei suoi difetti attraverso una combinazione di patch a tutti i livelli dello stack e un'eccellente disciplina interna attraverso la convenzione e lo stile del codice.

Gli attributi peggiori del linguaggio vengono evitati e lo stile di codifica viene rigorosamente applicato attraverso una cultura abbastanza rigida della revisione del codice (non aderire allo stile e "andare da cowboy" scrivendo codice sciatto si traduce in una beffa spietata da parte dei propri pari). La gestione dell'ingegneria non ha mai dovuto prendere una mano forte qui; questo è in gran parte dovuto ai principali leader tecnici interni che hanno semplicemente distrutto tutti gli altri.

E Facebook non usa semplicemente PHP ovviamente. Include anche C ++ come core. Quindi, per PHP utilizzare una sorta di cache del codice operativo come APC o eAccelerator, altrimenti PHP deve analizzare i file su ogni richiesta. Per l'ottimizzazione generale di Apache dovresti fare qualche googling, mi vengono in mente un paio di cose come disabilitare i file .htaccess ma dovrebbe comunque essere più veloce di JSP.

Conclusione

Quindi alla fine immagino che ciò che sto dicendo sia se ti fai strada su Rails, che dovresti rimanere su Rails fintanto che non stai pianificando di avviare un progetto completamente nuovo basato su PHP e avviare una società con esso.

Articoli consigliati

Ecco alcuni articoli che ti aiuteranno a ottenere maggiori dettagli su Rails vs PHP, quindi passa attraverso il link.

  1. Guida straordinaria allo sviluppo di Learn Rails
  2. Ruby vs Ruby On Rails: qual è il migliore?
  3. Ruby vs PHP: qual è la tecnologia migliore?
  4. Le 10 domande di intervista PHP più fantastiche per esperti

Categoria: