¿Qué idioma del lado del servidor preferiría entre Java, PHP, Python (Django) y JavaScript (Node.js)?

La elección del idioma tiene muchas razones. Algunos se enumeran a continuación:

1) Aplicación o característica que se está creando

2) Infraestructura utilizada

3) Presupuestos para el proyecto

4) Disponibilidad de recursos

5) Curva de aprendizaje de nuevos recursos.

Según las cinco razones anteriores, estas son las opciones:

1) Aplicación o característica que se está creando:

Go / NodeJS: requisitos de concurrencia muy alta, sistemas basados ​​en eventos y tareas de procesamiento asíncrono para admitir un gran número de usuarios de múltiples operaciones o aplicaciones intensivas en datos.

Python: trabajar con datos, minería de datos, matemática, algoritmo o aplicaciones basadas en ML / AI.

Java: Multi-threading estable o maduro o big data

PHP: aplicaciones generales que se utilizan para operaciones CRUD simples o escalables.

2) Infraestructura utilizada:

NodeJS: haga más con menos infraestructura (infraestructura baja) para admitir una mayor concurrencia.

Python / Java / PHP: aplicaciones generales o empresariales con disponibilidad de infraestructura normal a alta. PHP es actualmente el más rápido, pero Java brinda cierta seguridad de código y las aplicaciones bien diseñadas pueden ser más rápidas ya que el código es código binario compilado.

3) Presupuestos para el proyecto:

NodeJS / Python / Go: los presupuestos deben estar por encima del promedio o por encima.

Java: promedio a alto.

PHP: bajo a promedio a alto dependiendo de las características de la aplicación y la optimización necesaria.

4) Disponibilidad de recursos:

NodeJS / Python / Go: los desarrolladores realmente buenos también son difíciles de encontrar.

Java: la disponibilidad de recursos es abundante de encontrar, pero tendrá que evaluar a los desarrolladores.

PHP: los desarrolladores de PHP realmente buenos son difíciles de encontrar. Todas las demás personas son desarrolladores de PHP sin conocer los estándares de codificación PHP escalables y actuales.

5) Curva de aprendizaje de nuevos recursos:

NodeJS / Go: Tiempo medio a alto. Algunas personas no solo lo entienden (Async / Concurrency)

Python: marco de tiempo medio a alto. Algunas personas no solo lo entienden (ML / AI)

Java: plazo medio

PHP: marco de tiempo bajo

Así que elija su infraestructura, decida las características, decida las necesidades de optimización / volumen de usuario / escalabilidad, presupuesto, mantenibilidad y opciones de recursos.

¿Puede PHP manejar sitios de nivel empresarial y Java?

La creación de secuencias de comandos del lado del servidor es una técnica utilizada en el desarrollo web que implica el uso de secuencias de comandos en un servidor web que produce una respuesta personalizada para la solicitud de cada usuario (cliente) al sitio web. La alternativa es que el servidor web entregue una página web estática. Las secuencias de comandos se pueden escribir en cualquiera de los varios lenguajes de secuencias de comandos del lado del servidor que están disponibles (ver más abajo). Las secuencias de comandos del lado del servidor se distinguen de las secuencias de comandos del lado del cliente donde las secuencias de comandos incrustadas, como JavaScript, se ejecutan del lado del cliente en un navegador web, pero ambas técnicas a menudo se usan juntas.

Las secuencias de comandos del lado del servidor a menudo se utilizan para proporcionar una interfaz personalizada para el usuario

  • Era un lenguaje interpretado a diferencia de C ++ o Java que requiere la compilación del código fuente
  • Tenía la capacidad de usarse directamente con HTML al mezclar dentro de sus archivos de plantilla con etiquetas de marcado <%php ... %>
  • Tenía proveedores de alojamiento compartido baratos en servidores Apache con una pila Linux, Apache, MySQL y PHP (LAMP)
  • Tenía una naturaleza funcional que es más fácil de aprender que la programación orientada a objetos.

Python es un lenguaje de programación de alto nivel diseñado para ser fácil de leer y sencillo de implementar. Es de código abierto, lo que significa que es de uso gratuito, incluso para aplicaciones comerciales. Python puede ejecutarse en sistemas Mac, Windows y Unix y también ha sido portado a máquinas virtuales Java.

Nodo js es un entorno de tiempo de ejecución JavaScript multiplataforma de código abierto para desarrollar una gran variedad de herramientas y aplicaciones de servidor. Aunque Nodo . js no es un marco de JavaScript, muchos de sus módulos básicos están escritos en JavaScript, y los desarrolladores pueden escribir nuevos módulos en JavaScript

http://www.prapti.co.uk/

Yo uso Full Stack JavaScript y GO.

Por dónde empezar, tengo una lista de idiomas para dominar:

  1. HTML y CSS
  2. JavaScript del lado del cliente (jQuery incluido)
  3. Node.js
  4. Angular.js 2.0
  5. React.js
  6. Express.js
  7. Mongo.db
  8. IR
  9. Otros paquetes de JS
  10. Otros paquetes de GO

Hoy en día es una cuestión de tendencia qué scripts del lado del servidor prefieren en el pasado y en la actualidad el teléfono es el rey de todos los scripts del lado del servidor porque la mayoría de los sitios web alrededor del 80% están usando Php para las secuencias de comandos del servidor.

La principal ventaja de la codificación este de Php. Fácil de implementar

Pero continúa Php ha principal desventaja es la seguridad, etc.

Y rubí, django no se usan tanto alrededor del 5%

Hoy en día, nodejs está en tendencia como cualquier cosa para las secuencias de comandos del servidor porque tantos archivos de biblioteca y problemas de seguridad lentamente todos los sitios web están cambiando a nodejs, pero es un poco difícil de aprender, incluso yo también.

Entonces, quienes son nuevos para los desarrolladores web primero aprenden algunos conceptos básicos sobre Php

Y más tarde se cambió a nodejs y nivel avanzado de Php, es decir, marcos de trabajo de Php como laravel, etc. para una mejor seguridad.

Hice desarrollo web PHP y Java en el pasado. Todavía mantengo un sitio Java que ahora desarrollo con Spring 5 y tal vez Kotlin. El desarrollo de Java es un poco lento al principio, pero los marcos e IDE modernos ayudan mucho, y Kotlin reduce significativamente la sobrecarga del lenguaje.

De hecho, cuando estaba desarrollando en PHP, lo hice “java-ish”, es decir, muy influenciado por Java. Nunca realmente escribí el código de espagueti. Estaba desarrollando sitios web de comercio electrónico en PHP y nunca tuve ningún problema de seguridad o rendimiento. PHP7 también es una gran mejora. Entonces, en general, también consideraría PHP nuevamente, ya que es muy fácil de desarrollar en él, también tiene buenos marcos (Laravel, etc.) y es fácil y económico de implementar.

También consideré Python y Node.js, pero al final, no ofrecen ningún beneficio importante contra otros lenguajes, a la vez que vienen con debilidades molestas (escritura débil / dinámica, sintaxis extraña basada en espacios en blanco, etc.).

Ahora estoy jugando también con el marco Swift y Vapor 2, y me sorprende lo agradable que es. Honestamente, hoy, Swift / Vapor sería mi primera preferencia; Kotlin con Sping 5 estaría cerca segundo; si no Kotlin, que Java. PHP7 también sería un tema de consideración.

La preferencia debe basarse en el tipo de aplicación de servidor que desea desarrollar:
Puedo proporcionarle algunos parámetros en función de los cuales se evalúa a sí mismo.

1) Manejo de solicitudes http concurrentes.
2) Soporte de biblioteca de código abierto.
3) Costo de despliegue.
4) Soporte del sistema operativo.
5) Soporte en la nube.
6) Disponibilidad de controladores de bases de datos para diferentes tecnologías de bases de datos.
7) Si hay muchos cálculos matemáticos, gráficos, algoritmos de árboles involucrados.
8) soporte de Dockerización
9) Una comunidad en línea bien establecida para ayudar.
10) Disponibilidad de herramientas para desarrollo, depuración, etc.

Mi herramienta de desarrollo web favorita es Python y web2py (en lugar de Django). Es la forma más rápida y fácil de crear una aplicación web.

Mi segunda herramienta favorita es Go and Beego. Go es un fabuloso lenguaje del lado del servidor. Espero que pronto se convierta en uno de los principales idiomas de primer nivel: vea El pequeño lenguaje que podría.

Me mantendría alejado de Node solo porque JavaScript es un lenguaje basura. Además, Go es mucho mejor: vea La caída de la casa del nodo.

¡Buena pregunta! Puede obtener más información sobre cómo elegir qué lenguaje de programación estudiar leyendo nuestro último blog Java vs Python: Cómo elegir qué lenguaje de programación estudiar – UoPeople y, por suerte, ¡University of the People se centra en ambos!