¿Por qué los desarrolladores de Android utilizan principalmente PHP para back-end? ¿Por qué no JAVA?

Cuando escribe una URL, hay mucho código en funcionamiento para traer una página a su pantalla. ¿Qué conecta la base de datos de su sitio con el navegador, creando una experiencia fluida y fácil de usar? Ese es el software creado por scripts del lado del servidor, lenguajes que construyen su sitio detrás de escena. ¿El objetivo de este software? Para proporcionar una experiencia perfecta para el usuario que esté lo más cerca posible de una aplicación de escritorio.

Hay muchos lenguajes del lado del servidor que trabajan hacia ese objetivo final. El idioma que elija para su sitio depende de una combinación de los requisitos de su sitio, la configuración de su base de datos / sistema operativo y las preferencias de su equipo de desarrollo. Saber qué puede ofrecer cada script y qué lo distingue es útil para decidir cómo construir su back-end y a quién contratar.

UNA MIRADA RÁPIDA AL FINAL DE SU SITIO WEB

El back-end consta de tres partes: el servidor, su base de datos y una aplicación web de back-end, software escrito a través de idiomas del lado del servidor. El servidor es una computadora poderosa que ejecuta el software de back-end, la base de datos alberga los datos de su sitio y el software se comunica entre los dos. Por ejemplo, si un usuario está actualizando un perfil en un sitio de red, los scripts del lado del servidor recopilarán la información que ingresa el usuario, la aplicación la procesará en el servidor, luego interactuará con la base de datos para actualizar esa información allí.

Los desarrolladores web de back-end utilizan los scripts del lado del servidor para crear el software de back-end de un sitio web: la mecánica que no vemos, pero que hace posible la usabilidad y funcionalidad de un sitio. Estos idiomas crean el canal de comunicación entre el usuario, el servidor y la base de datos. Cualquier cosa que no esté explícitamente escrita en el marcado de texto de un sitio es un software front-end o back-end. Cualquier información que un usuario solicite en el navegador (por ejemplo, los campos en los menús desplegables, fotos o perfiles de usuario) se entrega a través de scripts del lado del servidor, que crean un canal entre el servidor y el usuario final que solicita, edita y elimina cosas en la base de datos. En el navegador, los scripts de front-end ponen esa información a disposición del usuario.

Conceptos básicos del script del lado del servidor

  • Se ejecuta en un servidor incrustado en el código del sitio
  • Diseñado para interactuar con el almacenamiento permanente de back-end, como bases de datos, y procesar información del servidor para acceder a la base de datos, como una línea directa de usuario a base de datos
  • Facilita la transferencia de datos. del servidor al navegador, dando vida a las páginas en el navegador, por ejemplo, procesando y luego entregando un campo que un usuario solicita o envía en un formulario
  • Funciona de guardia. Cuando una página web se “activa”, o cuando partes de las páginas se “publican de nuevo” en el servidor con AJAX, los scripts del lado del servidor procesan y devuelven datos
  • Powers funciones en aplicaciones web dinámicas, como la validación del usuario, guardar y recuperar datos, y navegar entre otras páginas
  • Desempeña un papel importante en la forma en que una base de datos se construye desde cero y luego se administra, un ejemplo de cómo los roles a menudo se superponen en todos los aspectos del desarrollo

CÓDIGO DEL LADO DEL SERVIDOR Y BASES DE DATOS

Cómo funciona

: Si una base de datos es la biblioteca de un sitio, las secuencias de comandos del lado del servidor procesan lo que el usuario está buscando a través del servidor, luego localizan el libro, el capítulo, la página y la línea exacta de datos, entregando esa información al navegador. Está diseñado para ser suave, rápido y sin costuras.

Todo esto es posible a través del software del lado del servidor que escribe su desarrollador de back-end, que crea un canal personalizado desde el sitio a la base de datos. La información de su sitio reside en el servidor hasta que se solicite, lo que hace que su sitio sea rápido y seguro.

IDIOMAS POPULARES DEL LADO DEL SERVIDOR

  • PHP: PHP, el lenguaje del lado del servidor más popular en la web, está diseñado para extraer y editar información en la base de datos. Se incluye más comúnmente con bases de datos escritas en lenguaje SQL. PHP fue diseñado estrictamente para la web y sigue siendo uno de los lenguajes más utilizados. Es fácil de instalar y desplegar, se mantiene competitivo con muchos marcos modernos y es la base de varios sistemas de administración de contenido. Sitios con tecnología PHP: WordPress, Wikipedia, Facebook
  • Python : con menos líneas de código, el lenguaje de programación de Python es rápido, lo que lo hace ideal para llevar las cosas al mercado rápidamente. El énfasis está en la legibilidad y la simplicidad, lo que lo hace ideal para principiantes. Es el lenguaje de scripting más antiguo, es poderoso y funciona bien en diseños orientados a objetos. Sitios con Python: YouTube, Google, The Washington Post
  • Ruby : si espera una lógica complicada en el lado de la base de datos de su sitio, el lenguaje de programación Ruby es una excelente opción. A diferencia de Python, Ruby es a partes iguales simplicidad y complejidad, combinando código simple con más flexibilidad y herramientas adicionales. Ruby agrupa el back-end con la funcionalidad de la base de datos que PHP y SQL pueden ofrecer como un par: es ideal para startups, mantenimiento fácil y demandas de alto tráfico. Requiere que los desarrolladores utilicen el marco Ruby on Rails, que tiene vastas bibliotecas de código para optimizar el desarrollo de back-end. Sitios impulsados ​​por Ruby: Hulu, Twitter (originalmente), Living Social, Basecamp
  • C # : el lenguaje de .NET Framework de Microsoft, el marco más popular en la web, C # combina productividad y versatilidad al combinar los mejores aspectos de los lenguajes C y C ++. Es excelente para desarrollar aplicaciones de Windows y se puede utilizar para crear aplicaciones móviles iOS y Android con la ayuda de una tecnología multiplataforma como Xamarin.
  • C ++ : ideal para aplicaciones complejas también creadas en .NET Framework, el lenguaje de programación C ++ es un lenguaje difícil pero de gran potencia que funciona bien para sitios con muchos datos. La velocidad es fundamental para C ++, y funciona bien junto con otros lenguajes como Java y Python.
  • Java : un subconjunto del lenguaje C, Java viene con un gran ecosistema de componentes de software complementarios. En esencia, Java es una variación de C ++ con una curva de aprendizaje más fácil, además, es independiente de la plataforma gracias a la Máquina Virtual Java. “Compilar una vez, ejecutar en cualquier lugar” es su lema, y ​​es excelente para aplicaciones de nivel empresarial, sitios de alto tráfico y aplicaciones de Android. Sitios Java: Twitter, Verizon, AT&T, Salesforce
  • Erlang : un lenguaje de programación de propósito general, Erlang también es un lenguaje concurrente, lo que significa que varios procesos pueden ejecutarse simultáneamente en el nivel de lenguaje sin soporte de biblioteca externa. Se utiliza en las pilas LYME y LYCE, numerosos CMS y bases de datos, GitHub, chat de Facebook y Goldman Sachs, lo que respalda sus requisitos comerciales de alta frecuencia.

… Y SUS MARCOS LATERALES DEL SERVIDOR

  • Ruby on Rails : este marco de Ruby es la forma principal de implementar Ruby. Sus “gemas” incluyen complementos y bibliotecas de código que optimizan el desarrollo.
  • ASP.NET : este marco de Microsoft es el marco de nivel empresarial más popular: admite múltiples lenguajes de programación simultáneamente para un proyecto. Por lo tanto, la misma aplicación se puede construir con C # y C ++, a través de CLI (interfaz de lenguaje común). Su iteración más reciente, ASP.NET 5, ahora está abierta a plataformas que no son de Windows por primera vez.
  • Django : este marco de Python se desarrolló para satisfacer las necesidades de desarrollo en un entorno acelerado. Sitios de Django: Pinterest, Nasa, Pitchfork
  • Node.js : JavaScript es típicamente un script de front-end, pero con el marco Node.js, se puede usar en tecnología del lado del servidor, desde API hasta pilas completas. Su punto de venta principal es cómo maneja la comunicación cliente-servidor: es rápido, no tiene cuellos de botella y es ideal para aplicaciones en tiempo real como salas de chat, aplicaciones con muchos datos y cualquier software que requiera la transmisión de contenido nuevo, como Un servicio de noticias.

He tenido la oportunidad de usar Go para mi proyecto más reciente en el trabajo. Lo que hice en Go es un sistema mínimamente distribuido (dos tipos de servidores, decenas de instancias como máximo) optimizado para el rendimiento de transferencia de bytes. La relación con Go comenzó un poco difícil pero cambió.

Después de usarlo durante un par de semanas, describí Ir a mi amigo David como “PHP para el back-end”. A pesar de mi opinión bastante baja sobre PHP, esto fue un cumplido. Independientemente de la calidad de la ejecución de PHP, la intención parece haber sido apartarse de su camino y facilitar la creación de páginas web. Ir se siente así, pero por los servicios. PHP es terriblemente inconsistente, rompe todas las reglas sobre el diseño del lenguaje de programación y es irritante. A pesar de todo eso, sigue siendo el lenguaje más utilizado para crear aplicaciones web.

Go es bastante similar: es inconsistente, ignora todo lo que se supone que debe incluir un lenguaje de programación moderno, no usa espacios en blanco, excepto para no permitirlo en lugares razonables (digamos, como una nueva línea antes de un {). Ofrece buenas funciones de primera clase, pero luego las paraliza al tener un sistema de tipos fuerte que parece ignorar todo lo que se ha hecho con los sistemas de tipos durante las últimas dos décadas. Ni siquiera puede escribir un mapa adecuado (…) porque Go está fuertemente tipado sin parametrización de tipo. Ir realmente quiere usar pestañas.

Para colmo, los errores son valores devueltos. Son valores de retorno que son fáciles de ignorar. Idiommatic Go es tener varias líneas de repeticiones después de cada invocación de una función que posiblemente pueda fallar.

Realmente me molesté, encendí Go en Twitter y salí a caminar. Cuando regresé, varios amigos, en particular Toby, habían comentado en IM sobre mis problemas, señalando formas de tratar de manejar lo que me estaba molestando. Todos eran muy razonables, pero básicamente se redujeron a algo como: “Ir no hace lo que estás tratando de hacer; hay algunos trucos brutales para aproximarlo, como la forma en que se realiza la programación funcional en Java, pero estás luchando contra el sistema “.

Calmado, retrocedí. Sé de personas que tienen un gran éxito con Go, y ofrece mucho de lo que quiero (código nativo, compatible con UNIX, nivel superior luego C, nivel inferior luego Python o Ruby, basura recolectada, fuertemente tipado, buen rendimiento, buen soporte de concurrencia, etc), así que intenté dejar de programar a mi manera y comenzar a programar Go’s way.

Go tiene una forma de programación. Go está totalmente optimizado para esa forma de programación, de hecho. Programar de cualquier otra manera que no sea Go, con Go, será esa receta para la frustración contra la que reboté mi cráneo. Go’s way no es bonito para alguien adoctrinado con la estética funcional moderna, pero funciona y funciona bien. Realmente bien.

Es mucho más fácil encontrar alojamiento para PHP. Esa es la oferta principal de la mayoría de los servidores web. Además, Digital Ocean declara abiertamente que su pila LAMP es la más popular.

Es muy fácil escribir scripts REST / JSON en PHP, y eso es lo que más necesita de una aplicación móvil.

En un equipo, es mucho más fácil encontrar a alguien que conozca PHP que Java del lado del servidor.

Si está enfocado en el lado de la aplicación móvil, PaaS se vuelve cada vez más interesante, donde su mejor caso no tiene que codificar nada del lado del servidor. El PaaS vincula sus solicitudes a la base de datos, para enviar notificaciones, chatear, etc.

Madhusudana Reddy Singana ya ha escrito una respuesta detallada. Entonces escribiría un trazador de líneas.

El alojamiento PHP es generalmente barato y fácilmente disponible (también en modo de alojamiento compartido) en comparación con lo que se necesita para el alojamiento de sitios web basado en JAVA (en contexto de costo, recursos del lado del servidor).

Es posible que haya pasado por varios tutoriales a través de Internet, la mayoría de ellos o podemos decir que el 100% de ellos están usando php para el lado del servidor. La razón es que php es fácil de aprender, incluso para un principiante y los principiantes tienen dificultades para aprender servlet y usarlos juntos.

Pero piense en las grandes empresas que han migrado a Java y Spring para su aplicación web, no usan php ya que ya han creado toda la lógica del lado del servidor en Java.

PHP es bueno para la aplicación de recuperación de datos pequeños, pero si desea utilizar todo el poder de Java, entonces vaya a Java.

No creo que esa suposición sea cierta, tendría mucho más sentido que un desarrollador de Android desarrolle su back-end en Java para obtener el beneficio de su aprendizaje. La única razón para usar PHP es que la aplicación es tan trivial que el backend no hace nada más que procesar datos CRUD.