Fonte da imagem: pixabay.com

Portanto, antes de iniciar uma guerra fria aqui, entre pessoas que usam Rails (Ruby) e PHP, deixe-me dizer que não estou aqui para debater se a linguagem é melhor. Para mim, ou para qualquer programador experiente, seria o mesmo. É apenas uma questão de probabilidade de quem prefere o que e o que é fácil para eles.

Neste blog, eu discutia principalmente sobre a importância de ambos e como eles diferem um do outro. Portanto, se você é novo no Rails e no PHP, então este pode ser o blog perfeito para você, se você quiser selecionar um dos dois. Então vamos começar. Devemos?

Alguns antecedentes básicos

Para começar, o PHP é uma linguagem de script, enquanto o RAILS é uma estrutura de desenvolvimento da Web, baseada na linguagem de script Ruby. PHP é uma linguagem de programação amplamente usada para sites como Facebook, WordPress, Yahoo, Flickr e muito mais. O PHP é extremamente rápido, n vezes mais estável que o Rails e ainda possui uma comunidade maior de desenvolvedores para apoiá-lo.

O Rails é totalmente baseado em Ruby. É extremamente fácil de usar e começar. O ambiente no Ruby é muito automatizado. Ruby é realmente uma linguagem incrível. Ao contrário do PHP, ele é realmente orientado a objetos desde o início. Seu código é muito conciso e poderoso. Gems (extensões) permitem que você use as funcionalidades necessárias. Depois de codificar em Ruby, acho a codificação em PHP bastante entediante.

O bom, o Mau e o Feio

  1. PHP

Meu conselho é o PHP, porque o uso do PHP no nível básico é muito fácil, existem muitas pessoas que sabem copiar / colar algum código de modelo, modificar os arquivos de configuração e eles podem até se chamar de programadores PHP, o que dá ao PHP uma nome muito ruim que acho que não merece.

Para um verdadeiro programador, realmente não importa qual linguagem ele usa, é o que ele codifica e a maneira como ele codifica. Depois de aprender algumas linguagens de programação, você entende que a maioria delas é realmente muito semelhante, geralmente é a sintaxe que é diferente (especialmente em seu mecanismo principal, mesmo para diferentes paradigmas de programação).

As primeiras coisas que você deve aprender é escrever código limpo e legível e não escrever código muito sofisticado, já que é mais difícil depurar e confundir alguém que não conhece os truques especiais da linguagem (com PHP, você pode fazer todo o tipo de truques coisas, nem todos são óbvios para outros programadores).

Comparado ao PHP, o Rails também é hostil quando se trata de erros. Com o PHP, ele gera erros para você no desenvolvimento e as mensagens de erro realmente fazem sentido. Normalmente, uma página será renderizada, mas a parte com o erro mostrará a você qual linha o erro ocorreu e a mensagem é útil. No Rails, normalmente o aplicativo inteiro explode.

Sinto muito por ofender algumas pessoas aqui, mas Ruby simplesmente não é tão direto quanto o PHP para aprender. É, para todos os efeitos, uma linguagem extremamente poderosa. Eu escolhi usar Ruby simplesmente porque, como desenvolvedor, sinto que é uma linguagem muito melhor que PHP. Mas de uma perspectiva de aprendizado, não é. Ruby tem muitos recursos que simplesmente não são diretos para um programador iniciante entender. Um desses conceitos são blocos, procs e lambdas, que o Rails usa muito.

O exemplo clássico de Ruby on Rails que utilizarei é para criar um formulário:

  1. TRILHOS

Ruby é uma programação orientada a objetos dinâmica e imperativa. Ele é digitado dinamicamente, como no PHP, para que você não precise se preocupar em declarar variáveis. O Rails é de código aberto, funciona em várias plataformas e pode ser incorporado à Hypertext Markup Language. É uma linguagem de nível muito alto. Ele ainda oferece encapsulamento de métodos de dados dentro de objetos.

O Ruby possui técnicas super avançadas de manipulação de texto e string, que podem ser facilmente conectadas ao DB2, MySQL, Oracle e Sybase. Grandes programas escritos em Ruby são de fácil manutenção. Possui uma sintaxe limpa e fácil que permite que novos desenvolvedores aprendam Ruby de maneira rápida e fácil. Ele não apenas tem a capacidade de gravar aplicativos multithread com uma API simples, mas também oferece uma classe de matriz avançada e a capacidade de gravar bibliotecas externas em Ruby ou C.

Ruby Permite que a palavra reservada seja usada como identificador, desde que o analisador não perceba uma ambiguidade. Quando comparado ao PHP, o Ruby possui muitos recursos de segurança e um poderoso gerenciamento de strings.

Então, a questão da década é … Com todos esses recursos, faz do Ruby uma perspectiva melhor quando comparado ao PHP?

Infelizmente, não é tão preto e branco, e muitas variáveis ​​entram em jogo ao determinar se PHP ou ruby ​​on rails deve ser usado para desenvolver.

Por exemplo, o Ruby on Rails é uma linguagem muito mais complexa para a configuração de um ambiente de desenvolvimento. Consequentemente, o conhecimento tácito necessário para o Ruby aumenta imediatamente o preço no mercado de programação em comparação com o desenvolvimento do PHP. Um desenvolvedor PHP, por outro lado, pode simplesmente usar um pacote convencional, como WAMP, MAMP, para obter a configuração do ambiente de desenvolvimento em menos de 5 minutos.

Quando comecei a codificar em Ruby, Gems me confundiu mais do que ajudou porque havia muita mágica. Depois que soube que você podia (e deveria) ler o código fonte das gemas, tudo fazia muito mais sentido. Devido à natureza conectável das gemas e aos padrões da comunidade, as gemas podem fornecer à sua aplicação uma enorme quantidade de funcionalidades muito rapidamente.

Algumas jóias que eu não consigo viver sem: Devise (autenticação - manipula logins de usuários, logon social, esquece os fluxos de trabalho com senhas e muito mais), Clipe de papel (upload de arquivos - até manipula o upload para o S3, corte / re-amostragem de imagens), Simples O formulário torna os formulários incrivelmente simples de padronizar e renderizar em sites.

O PHP foi projetado como um pré-processador de hipertexto, o que significa que ele é executado apenas quando há uma solicitação da Web. Comparado com Ruby, que executa um processo. No Rails, você pode configurar facilmente trabalhos em segundo plano usando o Sidekiq ou o Resque. Isso também aumenta a capacidade do Rail de escalar facilmente. Em nossos aplicativos, movemos muitas coisas que podem retardar solicitações, como enviar usuários por email para trabalhos em segundo plano.

Agora, o PHP pode fazer trabalhos em segundo plano usando o Gearman, mas isso não é padronizado - você precisa instalar a extensão PECL. No Ruby / Rails, os trabalhos em segundo plano não são um problema. Você apenas faz.

O cabo de guerra

Agora que você leu muito sobre PHP e Rails, vamos dar uma olhada neles. Vamos verificar qual deles está em pé de igualdade em termos de uso de recursos e até em termos de desempenho (velocidade).

Cursos recomendados

  • Curso de Certificação Online no Java Hibernate
  • Programa em Java Spring
  • Curso de Certificação WordPress
  • Curso Ruby

Uso e velocidade de recursos

Em termos de uso de memória, geralmente será Python> Ruby> PHP, o que naturalmente leva ao Django> Rails> PHP. Não apenas memória, mas também tende a manter o desempenho do ruby ​​on rails versus php. Também algo digno de nota aqui é que, é claro, não há absolutos aqui. Existem muitos cenários de uso nos quais Ruby vence o Python, sem dúvida. Acho que todos podemos concordar que Ruby e Python sempre vencerão o PHP.

Minha própria experiência é que o uso de memória do Rails pode ser alto, especialmente em máquinas de 64 bits (o mínimo é de cerca de 95 a 100 MB com o front-end da Web). O PHP tende a ser usado com padrões diferentes, por isso é um pouco difícil comparar diretamente.

Dito isto, ainda é muito fácil criar um aplicativo Django ruim, lento e ineficiente e um aplicativo Rails enxuto, rápido e eficiente, ou vice-versa. A habilidade, o conhecimento e a experiência com o sistema que você está usando farão muito mais por sua pegada de memória e desempenho do que apenas pela própria estrutura.

Otimizações de banco de dados, escolhas e arquiteturas de servidor (Apache vs. configurações de proxy usando nginx / lighttpd, etc.) e decisões fundamentais de design provavelmente sobrecarregarão as características inerentes da estrutura rapidamente.

Se você executar benchmarks típicos entre Ruby e outros idiomas, o Ruby perde. Ruby provavelmente não lhe ajudaria muito bem ao escrever um aplicativo de processamento de sinal digital em tempo real ou qualquer tipo de sistema de controle em tempo real. Ruby (com as VMs de hoje) provavelmente engasgaria em um computador com recursos limitados, como smartphones.

Lembre-se de que grande parte do processamento em suas aplicações web é realmente feito por software desenvolvido em C. por exemplo, Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, muitas bibliotecas de análise, RMagick, TCP / IP etc. são programas em C usados ​​por Rubi. Ruby fornece a cola e a lógica de negócios.

A pergunta é "POR QUE PHP então?"

Agora vamos falar sobre PHP. O PHP roda extremamente lento no servidor apache. Mesmo se você tentar executar uma página PHP mesmo sem nenhum script, apenas uma página php vazia, ainda levará 10 vezes mais tempo para carregar a comparação com JSPs ou Java. Mas, novamente, a questão de um milhão de séculos é que, se é assim, então por que o Facebook ainda não abandonou o PHP? A razão pela qual o Facebook não migrou do PHP é porque os engenheiros do Facebook conseguiram solucionar muitas de suas falhas através de uma combinação de patches em todos os níveis da pilha e excelente disciplina interna por meio de convenções e estilos de código.

Os piores atributos da linguagem são evitados e o estilo de codificação é rigorosamente imposto por meio de uma cultura bastante restrita de revisão de código (deixar de aderir ao estilo e "tornar-se cowboy" escrevendo códigos desleixados resulta em zombaria impiedosa dos colegas). O gerenciamento de engenharia nunca teve que dar uma mão forte aqui; isso surgiu em grande parte devido aos principais líderes técnicos internos, meio que encurralando todos os demais.

E o Facebook não usa apenas PHP, é claro. Ele também inclui C ++ como seu núcleo. Portanto, para o PHP, use algum tipo de cache de código de operação, como APC ou eAccelerator, caso contrário, o PHP precisará analisar seus arquivos em cada solicitação. Para o ajuste geral do apache, você deve pesquisar no Google, algumas coisas como desativar arquivos .htaccess, mas ainda deve ser mais rápido que o JSP.

Conclusão

Então, no final, acho que o que estou dizendo é que, se você seguir o Rails, deverá seguir o Rails desde que não planeje iniciar um novo projeto baseado em PHP e iniciar uma empresa junto com ele.

Artigos recomendados

Aqui estão alguns artigos que ajudarão você a obter mais detalhes sobre o Rails vs PHP, basta acessar o link.

  1. Guia surpreendente sobre o desenvolvimento do Learn Rails
  2. Ruby vs Ruby On Rails - Qual é o melhor?
  3. Ruby vs PHP - qual a melhor tecnologia?
  4. As 10 perguntas mais impressionantes da entrevista sobre PHP para pessoas experientes