Rails vs PHP - Lo bueno, lo malo y lo feo (Comparación)

Tabla de contenido:

Anonim

Fuente de la imagen: pixabay.com

Entonces, antes de comenzar una guerra fría aquí, entre personas que usan Rails (Ruby) y PHP, déjenme decirles que no estoy aquí para debatir si qué lenguaje es mejor. Para mí, o para cualquier programador experimentado, sería lo mismo. Es solo una cuestión de probabilidad de quién prefiere qué y qué es fácil para ellos.

En este blog, estaría discutiendo sobre la importancia de ambos y cómo se diferencian entre sí. Entonces, si eres nuevo en Rails y PHP, entonces este podría ser el blog perfecto para ti, si quieres seleccionar uno de los dos. Entonces empecemos. ¿Debemos?

Algunos antecedentes básicos

Para empezar, PHP es un lenguaje de secuencias de comandos, mientras que RAILS es un marco de desarrollo web, que se basa en el lenguaje de secuencias de comandos Ruby. PHP es un lenguaje de programación ampliamente utilizado para sitios web como Facebook, WordPress, Yahoo, Flickr y aún más. PHP es extremadamente rápido, n veces más estable que Rails e incluso tiene una comunidad más grande de desarrolladores para soportarlo.

Rails está completamente basado en Ruby. Es extremadamente fácil de usar y comenzar. El entorno en Ruby es muy automatizado. Ruby es realmente un lenguaje bastante sorprendente. A diferencia de PHP, realmente está orientado a objetos desde cero. Su código es muy conciso y poderoso. Las gemas (extensiones) le permiten atornillar la funcionalidad necesaria. Después de codificar en Ruby, encuentro la codificación en PHP bastante tediosa.

Lo bueno, lo malo y lo feo

  1. PHP

Mi consejo es PHP, porque usar PHP en el nivel básico es muy fácil, hay muchas personas allí que saben copiar / pegar algún código de plantilla, modificar los archivos de configuración e incluso podrían llamarse programadores PHP, lo que le da a PHP un muy mal nombre que no creo que merezca.

Para un verdadero programador, realmente no importa qué lenguaje use, lo que importa es la forma en que codifica y la forma en que codifica. Después de aprender algunos lenguajes de programación, comprende que la mayoría de ellos son muy similares, por lo general, la sintaxis es diferente (especialmente en su mecanismo central, incluso para un paradigma de programación diferente).

Lo primero que debe aprender es escribir código limpio y legible y no escribir código demasiado sofisticado, ya que es más difícil de depurar y confuso para alguien que no conoce los trucos especiales del lenguaje (con PHP, puede hacer todo tipo de trucos cosas, no todos son obvios para otros programadores).

En comparación con PHP, Rails también es hostil cuando se trata de errores. Con PHP, escupirá errores en el desarrollo y los mensajes de error realmente tienen sentido. Normalmente, se mostrará una página, pero la parte con el error le mostrará qué línea se produjo el error y el mensaje es útil. En Rails, normalmente toda la aplicación explota.

Lamento ofender a algunas personas aquí, pero Ruby simplemente no es tan sencillo como aprender PHP. Es, a todos los efectos, un lenguaje extremadamente poderoso. Elijo usar Ruby simplemente porque como desarrollador siento que es un lenguaje mucho mejor que PHP. Pero desde una perspectiva de aprendizaje, no lo es. Ruby tiene muchas características que simplemente no son fáciles de entender para un programador principiante. Uno de esos conceptos son los bloques, los procs y las lambdas, que Rails usa mucho.

El clásico ejemplo de Ruby on Rails que usaré es para crear un formulario:

  1. RAILS

Ruby es una programación dinámica e imperativa orientada a objetos. Se escribe dinámicamente, como en PHP, por lo que no debe preocuparse por tener que declarar variables. Rails es de código abierto, funciona en múltiples plataformas y puede integrarse en el lenguaje de marcado de hipertexto. Es un lenguaje de muy alto nivel. Incluso ofrece la encapsulación de métodos de datos dentro de los objetos.

Ruby tiene técnicas de manipulación de texto y cadenas súper avanzadas que se pueden conectar fácilmente a DB2, MySQL, Oracle y Sybase. Los programas grandes escritos en Ruby son fáciles de mantener. Tiene una sintaxis limpia y fácil que permite a los nuevos desarrolladores aprender Ruby muy rápida y fácilmente. No solo tiene la capacidad de escribir aplicaciones multiproceso con una API simple, sino que también ofrece una clase de matriz avanzada y la capacidad de escribir bibliotecas externas en Ruby o C.

Ruby permite que la "palabra reservada" se use como identificador siempre que el analizador no perciba una ambigüedad. En comparación con PHP, Ruby tiene muchas características de seguridad y un poderoso manejo de cadenas.

Entonces, la pregunta de la década es … Con todas estas características, ¿hace que Ruby sea una mejor perspectiva en comparación con PHP?

Desafortunadamente, no es tan blanco y negro, y muchas variables entran en juego al determinar si PHP o Ruby on Rails deben usarse para desarrollar.

Por ejemplo, Ruby on Rails es un lenguaje mucho más complejo para configurar un entorno de desarrollo. En consecuencia, el conocimiento tácito requerido para Ruby aumenta inmediatamente el precio en el mercado de programación en comparación con el desarrollo de PHP. Un desarrollador de PHP, por otro lado, simplemente puede usar un paquete convencional como WAMP, MAMP para configurar su entorno de desarrollo en menos de 5 minutos.

Cuando comencé a codificar en Ruby, Gems me confundió más de lo que me ayudó porque había demasiada magia. Una vez que supe que podía (y debería) leer el código fuente de gemas, todo tenía mucho más sentido. Debido a la naturaleza conectable de las gemas y los estándares de la comunidad, las gemas pueden darle a su aplicación una enorme cantidad de funcionalidad muy rápidamente.

Algunas gemas sin las que no puedo vivir: idear (autenticación: maneja los inicios de sesión de los usuarios, inicio de sesión social, olvida los flujos de trabajo de contraseña y mucho más), Paperclip (carga de archivos, incluso maneja la carga a S3, recorte de imágenes / muestreo), Simple Form hace que los formularios sean increíblemente simples para estandarizar y renderizar en sitios web.

PHP fue diseñado como un preprocesador de hipertexto, lo que significa que se ejecuta solo cuando hay una solicitud web. En comparación con Ruby, que ejecuta un proceso. En Rails, puede configurar fácilmente trabajos en segundo plano utilizando Sidekiq o Resque. Esto también se suma a la capacidad de Rail para escalar fácilmente. En nuestras aplicaciones, movemos muchas cosas que pueden ralentizar las solicitudes, como enviar correos electrónicos a los usuarios a trabajos en segundo plano.

Ahora, PHP puede realizar trabajos en segundo plano utilizando Gearman, pero eso no está estandarizado: debe instalar la extensión PECL. En Ruby / Rails, los trabajos en segundo plano no son un problema. Solo hazlo.

El tira y afloja

Ahora que ha leído mucho sobre PHP y Rails, echemos un vistazo comparativo. Veamos cuál está a la par en términos de uso de recursos e incluso en términos de rendimiento (velocidad).

Cursos recomendados

  • Curso de certificación en línea en Java Hibernate
  • Programa en Java Spring
  • Curso de certificación de WordPress
  • Curso de rubí

Uso de recursos y velocidad

En términos de uso de memoria, generalmente será Python> Ruby> PHP, que por supuesto conduce a Django> Rails> PHP. No solo la memoria, sino que también tiende a sostenerse para el rubí en bruto en comparación con el rendimiento de php. También algo que vale la pena señalar aquí es que, por supuesto, no hay absolutos aquí. Hay muchos escenarios de uso en los que Ruby vencerá a Python, sin dudas. Sin embargo, creo que todos podemos estar de acuerdo en que Ruby y Python siempre vencerán a PHP.

Mi propia experiencia es que el uso de la memoria Rails puede ser alto, especialmente en máquinas de 64 bits (el mínimo es de alrededor de 95-100 MB con tan delgado como el front-end web). PHP tiende a usarse con diferentes patrones, por lo que es un poco difícil compararlo directamente.

Dicho esto, sigue siendo muy fácil crear una aplicación de Django mala, lenta e ineficiente y una aplicación Rails eficiente, rápida y eficiente, o viceversa. La habilidad, el conocimiento y la experiencia con el sistema que está utilizando hará mucho más por su huella de memoria y rendimiento que solo el marco en sí.

Las optimizaciones de la base de datos, las opciones de servidor y las arquitecturas (Apache frente a configuraciones de proxy que usan nginx / lighttpd, etc.), y las decisiones fundamentales de diseño probablemente abrumarán las características inherentes del marco con bastante rapidez.

Si ejecuta puntos de referencia típicos entre Ruby y otros idiomas, Ruby pierde. Ruby probablemente no le sirva para escribir una aplicación de procesamiento de señal digital en tiempo real, o cualquier tipo de sistema de control en tiempo real. Ruby (con las máquinas virtuales de hoy) probablemente se atragantaría con una computadora con recursos limitados, como los teléfonos inteligentes.

Recuerde que gran parte del procesamiento en sus aplicaciones web se realiza realmente por software desarrollado en C. por ejemplo, Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, muchas bibliotecas de análisis, RMagick, TCP / IP, etc. son programas C utilizados por Rubí. Ruby proporciona el pegamento y la lógica empresarial.

La pregunta es "¿POR QUÉ PHP entonces?"

Ahora hablemos de PHP. PHP funciona extremadamente lento en el servidor apache. Incluso si intenta ejecutar una página PHP incluso sin ningún script, solo una página php vacía, aún le llevará 10 veces más tiempo cargarla en comparación con JSP o Java. Pero nuevamente, la pregunta de un millón de siglos es que si eso es así, ¿por qué Facebook todavía no ha abandonado PHP? La razón por la que Facebook no se ha alejado de PHP es porque los ingenieros de Facebook han logrado solucionar muchos de sus defectos a través de una combinación de parches en todos los niveles de la pila y una excelente disciplina interna a través de la convención de código y el estilo.

Se evitan los peores atributos del lenguaje y el estilo de codificación se aplica rígidamente a través de una cultura bastante estricta de revisión de código (al no adherirse al estilo y "volverse vaquero" al escribir código descuidado resulta en una burla despiadada por parte de los compañeros). La gerencia de ingeniería nunca ha tenido que tomar una mano fuerte aquí; Esto surgió en gran medida debido a que los líderes técnicos internos clave simplemente acorralaron a todos los demás.

Y Facebook no solo usa PHP, por supuesto. También incluye C ++ como su núcleo. Entonces, para PHP use algún tipo de caché de código de operación como APC o eAccelerator, de lo contrario, PHP tiene que analizar sus archivos en cada solicitud. Para el ajuste general de Apache, debe buscar en Google, se le ocurren algunas cosas como deshabilitar los archivos .htaccess, pero aún así debería ser más rápido que JSP.

Conclusión

Entonces, al final, supongo que lo que estoy diciendo es que si te abres camino a través de Rails, deberías quedarte con Rails siempre y cuando no estés planeando comenzar un proyecto completamente nuevo basado en PHP y comenzar una compañía junto con él.

Artículos recomendados

Aquí hay algunos artículos que lo ayudarán a obtener más detalles acerca de Rails vs PHP, así que simplemente vaya al enlace.

  1. Guía increíble sobre el desarrollo de Learn Rails
  2. Ruby vs Ruby On Rails- ¿Cuál es mejor?
  3. Ruby vs PHP: ¿qué tecnología es la mejor?
  4. Las 10 preguntas más impresionantes de la entrevista PHP para experimentados