¿Qué lenguaje dominará el futuro del desarrollo web: JavaScript, PHP, Ruby, Java / Scala o Python?

KOTLIN parece estar hablando de la Ciudad de Desarrollo Web, PERO a partir de ahora los INDICADORES DE LA INDUSTRIA tienen una historia diferente que contar. Dejando de lado mi experiencia para eliminar la parcialidad e hice un análisis exhaustivo de varias dimensiones para saber cuáles son populares actualmente y cómo están ganando impulso. Voy a hacer un análisis directamente desde Data Points. Así que, aquí vamos:

La mejor manera de medir el futuro es derivarlo del presente. Entonces, analicemos el índice de popularidad desde las siguientes perspectivas:

Criterios 1. Análisis del número de búsquedas en Tutoriales para un idioma en particular en Google

Criterios 2. Análisis de líneas de códigos (en millones)

Criterios 3. Análisis de clasificación de la Autoridad centrada en el desarrollador

Vayamos en profundidad entonces,

Según CRITERIOS 1: ÍNDICE PYPL (Popularidad del lenguaje de programación)

Claramente, esto puede suponerse como uno de los indicadores para evaluar la “conversación” de la ciudad de desarrollo web o la demanda de formarse en un idioma en particular. Y eso es lo que hace el ÍNDICE PYPL (Popularidad del lenguaje de programación). Según PYPL, esta es la tendencia. Podemos ver que JAVA es un claro ganador seguido de Python, que se está poniendo al día rápidamente.

Según CRITERIOS 2: ÍNDICE DE TIOBE

Cada día, TIOBE revisa 586 millones de líneas de códigos para sus clientes en todo el mundo según los estándares de la industria. El índice de TIOBE se actualiza una vez al mes. Las clasificaciones se basan en una serie de factores como la cantidad de ingenieros calificados en todo el mundo, no. de cursos disponibles y también proveedores externos. Los motores de búsqueda populares como Google, Bing, Yahoo !, Wikipedia, Amazon, YouTube y Baidu se utilizan para calcular las calificaciones.

Resultados: JAVA nuevamente muestra su destreza en términos de clasificación de popularidad en la cima. Mientras, Python parece estar ganando impulso.

De acuerdo con los CRITERIOS 3: Clasificación Redmonk

Es una firma analista de la industria enfocada en desarrolladores. De acuerdo con Redmonk. Según Redmonk, JavaScripts y Java encabezan la tabla. Aquí están las clasificaciones:

  1. · JavaScript
  2. · Java
  3. · PHP
  4. · Python
  5. · C #
  6. · C ++
  7. · Rubí
  8. · CSS
  9. · C
  10. · Objetivo-C

Ganador final: JAVA
Contendiente: Python

Respuesta simple, Javascript. No hay duda al respecto.

Para una respuesta más compleja, parafrasearé mi otra respuesta de antes:
Permítanme comenzar diciendo que simplemente mirar el rendimiento de Javascript (o cualquier otro idioma) no es la mejor opción. Casi en cualquier escenario siempre hay soluciones personalizadas para cualquier caso dado que siempre serán más rápidas. Sin embargo, lo bueno es que el rendimiento no importa, el hecho de que es lo suficientemente bueno para hacer casi cualquier cosa y es solo JavaScript . Esto puede sonar absurdo, pero escúchame.

La parte más cara y más difícil de manejar de cualquier operación son las personas. Sin excepción. Al tener un solo lenguaje en todas partes, A) reduce los requisitos para nuevas personas (solo saber que JavaScript es suficiente, no necesita conocer bien Rails / PHP / Java / whatnot también), lo que hace que el reclutamiento sea potencialmente más fácil, Especialmente en el futuro. B) Puedes ir con menos personas, ya que es JavaScript completo, para que todos puedan trabajar en todo, en lugar de tener personas específicas en Rails y JavaScript. Por lo tanto, puede utilizar mejor su potencial humano. Del cual siempre tienes muy pocos. Es cierto que puede terminar gastando más en servidores en comparación con soluciones personalizadas, pero eso es barato y fácil en comparación con las personas.

En pocas palabras: la “guerra” ya terminó y Javascript ganó. Es lo suficientemente bueno, sin importar lo que haga, y como es solo JavaScript, por lo que puede utilizar mejor a las personas con solo un idioma al frente, lo que conduce a una solución más rentable.

Mi última puesta en marcha ya era Javascript de principio a fin, y también lo serán mis próximas startups. Pero no confíe en mi palabra, jugadores como Netflix, LinkedIn y PayPal están viendo enormes ganancias en productividad con Node.js y fe. PayPal, por las razones indicadas anteriormente, está moviendo todos sus sistemas a Javascript.

Divulgación: Esta “respuesta” será más sobre la opinión que sobre decir cuál “dominará”. Principalmente porque no creo que ninguno lo haga. Y soy un gran fan de JVM.

Hoy en día, JavaScript es bastante publicitado, en mi opinión. De la misma manera que Ruby fue hace ~ 3-5 años. Si observa el nuevo gráfico de repositorios de Github, puede ver que JavaScript se apodera de Ruby en algún lugar entre 2011-2012. Esto es cuando apareció una nueva burbuja de JavaScript y todos los HDD (también conocidos como “Desarrolladores impulsados ​​por Hype”) cambiaron a JavaScript porque querían mantenerse “geniales”.

Ahora, dejando atrás el factor “genialidad”: ¿por qué es tan popular JavaScript? Porque no puedes deshacerte de él. Si desea desarrollar aplicaciones web, debe hacer al menos algo de JavaScript en la interfaz. Efectivamente tiene un monopolio. Yo no diría “porque es un buen idioma”, porque no lo es. Ya tiene tantos defectos, que el libro “Javascript: las partes buenas” en realidad pasa la mitad del tiempo tratando de justificar los defectos de diseño históricos de JavaScript y cómo solucionarlos.

“Porque es compatible con el paradigma funcional” tampoco es del todo cierto. Hay lenguajes JVM (especialmente Scala) que superan a la mierda de la programación funcional de JavaScript. Incluso el “viejo” nuevo Java (8) hace las cosas mucho más fáciles y elimina la mayor parte de su verbosidad al admitir los aspectos más básicos y algunos aspectos avanzados de FP. Y también hay C # que ya es compatible con el paradigma funcional, tiene LINQ y es un lenguaje mucho más agradable que JavaScript. Aunque soy un fanático de Java / JVM, C # realmente merece respeto en este caso.

Luego, está surgiendo esta tendencia: Página en techcrunch.com que podría (con suerte, IMO) deshacerse de la posición dominante (monopolio) de JavaScript en la interfaz. Uno podría escribir frontend web en Java, Scala, Dart, así como Python, y compilarlo en algo que todos los navegadores entenderían. Lo que también va en contra de una teoría de “un idioma para gobernarlos a todos”.

Por último, pero no menos importante: soy (principalmente) un desarrollador de Java en mi trabajo diario. Ahora he sido asignado a un proyecto node.js durante los últimos 3 meses y realmente no veo cómo JavaScript y node.js pueden ser favorecidos sobre soluciones y tecnologías más maduras. Ya conozco y entiendo toda la base de código del proyecto, pero aún no veo ningún valor agregado al usar JavaScript en el back-end. Solo hay una cosa que Node impulsó dramáticamente: IO asíncrono controlado por eventos. Esta es realmente una buena idea para una gran cantidad de casos de uso (nuevos) para aplicaciones. Gracias por esto, Nodo, pero puedes irte a dormir ahora.

En mi tiempo libre, uno de mis amigos me pidió que desarrollara mensajes en tiempo real para su nueva red social. Las mismas cosas para las que usarías node.js. Sin embargo, teniendo experiencia en el trabajo de node.js, prefiero elegir Java (no las cosas empresariales, pero Vert.x) y no me he arrepentido de esa decisión desde entonces.

En resumen, creo que habrá un cambio en el espacio lingüístico. JavaScript en realidad podría * perder * algunos porcentajes, mientras que algunos idiomas emergentes (Go, Dart, Scala) podrían ganar algunos puntos. Java y C # se seguirán utilizando de forma masiva y ningún lenguaje particular “dominará” la web, ya que la web pasará de la arquitectura cliente-servidor a arquitecturas más distribuidas de muchos sistemas heterogéneos interconectados (se utilizan muchos lenguajes). La mayoría de estos idiomas se construirán sobre el mismo conjunto de principios más o menos, por lo que si uno conoce alguno de estos idiomas y principios modernos detrás de él, será bastante fácil elegir un nuevo idioma en una o dos semanas.

En mi opinión, los idiomas que dominan el futuro del desarrollo web son:

  1. Desarrollo web de back end: Python
  2. Desarrollo web front-end: JavaScript

En términos de desarrollo web de back-end, Python es una gran opción de lenguaje de programación. Comodidad, facilidad de uso … ¡lo que sea, Python lo tiene! Funciona muy bien con lenguajes de programación front-end como JavaScript. Por lo tanto, la combinación de Python + JS tiende a funcionar realmente bien en general.

Front end VS Back end …

Desarrollo web front-end : es la práctica de producir HTML, CSS y JavaScript para un sitio web o aplicación web para que el usuario pueda verlos e interactuar con ellos directamente. Ahora JavaScript es un lenguaje de programación que se usa con frecuencia en el front end. ¿Por qué? Bueno, está dirigido por la mayoría de los navegadores modernos. También se puede utilizar para controlar páginas web en el lado del cliente del navegador, programas del lado del servidor y aplicaciones móviles.

El ” Back End ” de un sistema: se refiere a las partes de un programa que el usuario no ve, pero que son vitales para su funcionamiento. Por ejemplo, la base de datos, que almacena información del usuario y procesos internos que aseguran que el sistema se mantenga funcionando correctamente. Una vez más, estas partes pueden no ser visibles para un usuario, pero son muy importantes para cualquier sistema operativo.

Combinado con métodos de prueba de software efectivos, como manuales y automatizados, esos lenguajes de programación pueden ser muy efectivos y eficientes en lo que respecta al desarrollo web. La automatización de pruebas puede ser muy beneficiosa, dado que tiene el mayor retorno de la inversión en proyectos de software que ya han existido durante un tiempo, se ejecutan en producción y generan ingresos.

¿Por qué elegir Python?

Lo he dicho antes y lo diré de nuevo. Python es un lenguaje de programación muy fácil y conveniente para muchos programadores. Al elegir una pila tecnológica, es importante que un CEO o CTO considere la disponibilidad actual y futura del grupo de trabajo que respalda las tecnologías. Esto se puede hacer siguiendo las tendencias en educación, tráfico de desbordamiento de pila o mediante reclutamiento.

Un estudio de 2016 realizado por HackerRank analizó los lenguajes de programación más demandados en seis industrias específicas: atención médica, redes sociales, juegos y medios, seguridad, finanzas y tecnología financiera.

Python y Fintech …

Los gráficos, creados en base a datos de 3.000 desafíos de entrevistas de codificación, muestran que si bien muchas industrias demuestran pequeñas discrepancias entre los lenguajes de programación mejor clasificados, Fintech ni siquiera está cerca. De hecho, para fintech, Python supera el segundo lenguaje de programación más frecuente en la codificación de desafíos de entrevistas por 2 a 1 . El subcampeón? Java, que ha dominado el desarrollo de software de servicios financieros durante la última década o más.

Espero que esto te ayude, y mientras tanto, siéntete libre de leer un poco más sobre por qué Python es un lenguaje de programación que tiene el mayor potencial para dominar el desarrollo web futuro en diferentes industrias en el blog STX Next.

Teniendo en cuenta que C # .NET en la empresa tiene una adopción más amplia que todos los lenguajes mencionados, excepto Java, me sorprende que no esté en la lista. ASP .NET ejecuta aproximadamente un tercio de toda la Internet. Ruby corre menos del 2%

Además, dado que la pregunta se refiere al desarrollo web, señalaría que ASP .NET es el segundo después de PHP en adopción. (Estadísticas de uso web de tecnologías marco). Me gusta mucho Ruby, pero está en la lista de adopción general. (y muchos de los chicos geniales dejan Ruby por nodejs)

Lo que aconsejo a los nuevos desarrolladores web que hagan es aprender uno de los idiomas del lado del servidor y JavaScript. Si desea maximizar el número de oportunidades de trabajo, haga JavaScript y .NET o Java.

Muchas empresas ya han invertido mucho en tecnologías de Microsoft y Java. La idea de que todos van a subir y migrar a otro marco es ridícula. Los lenguajes de programación son solo herramientas, pero cuando su empresa tiene docenas de desarrolladores de Java / .NET y millones de líneas de código ya escritas en esos idiomas, no van a gastar el tiempo y el dinero para cambiar, especialmente cuando no hay dinero monetario convincente beneficio al hacerlo.

Ninguno de los dos puede ser un ganador absoluto.

El único para el que pronostico un futuro degradante es PHP, otros tienen una probabilidad casi igual de coexistir y una competencia justa en las cuotas de mercado.

La comunidad de RoR está trabajando en sus problemas. Los desarrolladores se quejaban (principalmente) sobre el rendimiento; Se han realizado grandes esfuerzos para mejorar esto y los resultados son muy prometedores. Con cada nueva versión de Ruby, el rendimiento mejora considerablemente.

La comunidad de Python y Django está creciendo y parece tener pasos constantes.

Java 8 se lanzará pronto [edit: ya lanzado hace varios meses] con un paradigma de programación funcional; algo esperado por la comunidad de Java, que ya es grande y fuerte. Y dado que Java se ha convertido, más o menos, en el nuevo C, durará mucho tiempo. Un gran impulso (de desarrolladores y proyectos) lo está impulsando y está en casi todas partes. También se encuentra en el núcleo de muchos otros idiomas (Scala, Groovy y cierre, por ejemplo), y una plataforma para otros idiomas para ser portados (JRuby y Jython, por ejemplo). En ambos casos, esos lenguajes están haciendo un buen uso de la omnipresencia de Java en (casi) todas las plataformas (dispositivos y sistemas operativos), también hacen un buen uso de los objetos JVM como el GC, por ejemplo.

La gente de Scala ha demostrado el valor que Scala trajo al mercado. Akka ha demostrado ser lo suficientemente sólido como para construir sistemas concurrentes a gran escala a su alrededor. El Apache Spark se está apoderando de Hadoop tradicional. El marco de juego funciona bien y progresa rápidamente.

En resumen, cada uno de ellos muestra un nicho fuerte que lo distingue de los demás.

Puede usar RoR para materializar rápidamente su idea. Cuando tiene una base sólida en el mercado, puede pensar en la migración a Java / Scala, o mejorar lo que tiene. Este es un comportamiento típico visto en el mercado actual y generalmente es un buen plan.
Lo mismo ocurre con otras tecnologías. ¡Empleas lo que es mejor en cada uno de ellos y creas tu propio cóctel!

Muchos jugadores importantes están haciendo una GRAN inversión en JavaScript y más específicamente en Node.js. La última empresa que esperaba que fuera un gran jugador fue IBM, pero todos están en: https://strongloop.com/strongblo … IBM y otros están presionando para mover Node.js a la empresa. Java aún estará allí en la empresa en el futuro previsible, pero JavaScript puede tener su día. JavaScript definitivamente reemplazará a PHP como el lenguaje web más grande. La gran mayoría del dominio de PHP es WordPress y WordPress se está moviendo hacia JavaScript. En sus comentarios finales en el WordCamp USA más reciente, Matt Mullenweg, líder del desarrollo de WordPress, dijo: “Aprenda JavaScript, profundamente” ( http://www.slideshare.net/photom …) PHP seguirá siendo el núcleo de WordPress para el futuro cercano, pero la capa de vista se moverá a JavaScript. A medida que la comunidad se vuelve cada vez más centrada en JavaScript, ya no querrán usar dos idiomas. No se trata de si sino cuándo.

JavaScript, Python y Scala compartirán el botín.

JavaScript, porque siempre fue el caballo oscuro, ha tenido la gran ventaja del monopolio sobre el front end. Y JavaScript del lado del servidor finalmente se está volviendo lo suficientemente maduro. Solo necesita un marco web con mucha carne para condimentar las cosas.

Python: porque es el equivalente de Java en el mundo de las secuencias de comandos. Ha existido por mucho tiempo. Tiene toneladas de bibliotecas. Es poco probable que cualquier gran proyecto solo tenga preocupaciones de desarrollo web. En algún momento van a necesitar otras bibliotecas genéricas o de dominio específico. Python gana aquí por millas. Agregue mantenibilidad como otra ventaja. Obtuvieron una cosa: el énfasis en la legibilidad y la explicidad. Esto solo asegurará que continuará siendo el idioma de uso general favorito durante mucho tiempo.

Scala, porque combina lo mejor de varios mundos y las mentes más inteligentes ya se están moviendo allí. Estar en JVM es una gran ventaja, al igual que la flexibilidad de usar enfoques tanto funcionales como OO. Aquellos que no pueden usar Clojure (debido a la falta de marcos o desarrolladores) cambiarán a Scala y esto mantendrá la calidad de la comunidad alta.

PHP seguirá dando vueltas por mucho tiempo como lenguaje heredado. La base del código es enorme y no va a desaparecer pronto.

Difícil de predecir. Un par de sugerencias:

  1. PHP continúa dominando y PHP7 + Laravel ataca de nuevo a RoR y Python / Django.
  2. Lenguajes basados ​​en JVM esp. Kotlin y los marcos se fortalecerán ahora que la multiproceso y la escalabilidad se volvieron tan importantes, y también el ecosistema JVM muestra una mejora significativa hacia la facilidad de uso y el rápido desarrollo (con Kotlin, Spring Boot, etc.)
  3. Kotlin gana a otros idiomas JVM, Scala comienza a declinar, otros idiomas JVM como Clojure o Groovy siguen siendo marginales
  4. Golang también crecerá aún más, a costa de RoR, Node.js y quizás Python / Django
  5. El bombo de Node.js y Ruby ha terminado. Ambas eran grandes ideas en su momento, pero otros ecosistemas las superaron. Presumiblemente, Node.js se reposiciona hacia IoT, pero para el backend web hay mejores alternativas.
  6. Python: difícil de decir. Hoy está muy publicitado, pero creo que no es un lenguaje tan bueno y la exageración habrá terminado. Espero que Python y Django pronto comiencen a disminuir.
  7. C # no puede crecer más, vinculado al ecosistema de EM. Es un buen lenguaje, pero su uso se limita principalmente a las plataformas de MS.
  8. Rápido – difícil de decir pero cruzo los dedos. Espero que pueda crecer más allá del universo de Apple.
  9. Elixir y Phoenix siguen siendo un nicho, desafortunadamente.

Esa es una pregunta muy subjetiva. Ningún idioma es inherentemente mejor que otro, ciertamente no son idiomas tan básicamente similares. He estado trabajando en PHP por un tiempo, y honestamente puedo decir que decir que Python es más rápido o que PHP no escala es una porquería. Construí un sistema empresarial en él, una gran aplicación web para publicación en línea que pasó de un servidor a un clúster de carga equilibrada fácilmente, y funciona de maravilla.

Claro, PHP tiene sus desventajas, pero puedes lograr cualquier cosa que te propongas, dentro de los límites de una aplicación web normal. Sin embargo, donde Python realmente brilla es el hecho de que es de uso general y puede servirle de más maneras que PHP.

Acabo de comenzar a entrar en Pyhton, y me gustan los dos, pero si estuviera haciendo una aplicación web, siempre elegiría PHP. Todo está en los hábitos y las mejores prácticas. Claro, la mayoría del código PHP es horrible, pero eso se debe a que las personas que lo escriben son aficionados no entrenados. Definir límites claros, mejores prácticas y una estructura limpia es algo que puede mantener PHP mucho más estructurado, legible y claro que la codificación basada en sangría de Pythons.

Esta discusión huele a “¿Por qué Java es una mejor opción multiplataforma que AIR / Actionscript?”. La respuesta puede ser aparente, duh, es Java, pero no es así. Java es un buen lenguaje, pero tiene un rendimiento horrible. El JVM es una muerte lenta para cualquier máquina, un consumo de memoria más allá del reconocimiento incluso con las aplicaciones más optimizadas (NetBeans, que es un IDE para desarrollar aplicaciones Java en sí mismo, usará toda su CPU y más de 2 GB de RAM después de un par de horas de uso). eso es solo mientras lo uso para PHP). AIR puede superarlo en cualquier momento del día y tiene la misma funcionalidad. Pero las personas son naturalmente resistentes al AIRE porque:

1. Está escrito en Actionscript y AS proviene de Flash, ¿verdad? Ew, Flash! Incorrecto: Flash es increíble si sabes cómo usarlo. El hecho de que la mayoría de la gente lo use para hacer feos intros de sitios web no es culpa del idioma.
2. Nadie tiene ganas de aprender un nuevo lenguaje de programación si ya conoce uno que hace lo mismo.
3. Actionscript es para imbéciles, solo mira todos los bloqueos de Flash. Incorrecto: puedo hacer una pérdida de memoria en Javascript, PHP y Python tan fácilmente como en AS. El único factor de diferenciación aquí es la habilidad del desarrollador, y dado que la mayoría de los desarrolladores de AS son principiantes principiantes que pasaron por un par de tutoriales (lo mismo con PHP) y decidieron llamarse a sí mismos “desarrolladores” no significa que el lenguaje sea malo.

Aprender AS fue increíblemente útil para mí, incluso si solo hice un par de aplicaciones reales con él, y aprender PHP fue puramente un impulso profesional. También aprenderé Python, y luego a Scala, solo porque puedo, y solo porque quiero saber inherentemente qué idioma aplicar a cada problema sin intentar reinventar el agua caliente en otro idioma.

Por lo tanto, no se centre en “¿Por qué X es mejor que Y”? En cambio, vaya a “¿Debo aprender X primero o Y?”

Al revisar todos los comentarios, puedo concluir que la gente cree que “una solución para todos es la mejor solución”. La mayoría de la gente dice que va a ser Java, Javascript y Python porque hacen todo. Yo diría que el diablo está en los detalles .
El problema con JavaScript es suficiente. Es el idioma más popular después de Java hoy en día (al menos esto es lo que he sentido). Los desarrolladores front-end escriben código backend ocasionalmente y los desarrolladores backend escriben código front-end a veces (lo cual no es algo bueno la mayoría de las veces). ¡La cantidad de marcos en javascript es tan grande que puede que necesite un diccionario de bolsillo para rastrear y ese diccionario se actualizará todos los días! Esto nuevamente no es bueno. Empiezas a trabajar en un marco genial hoy y en 6 meses no hay desarrollo en ese marco porque la gente se ha ido por algo más genial. Un buen ejemplo es la columna vertebral que ha sido diezmada por Angular. Angular 2 va a ser tan diferente de Angular 1.3 es que puedes considerarlo como un nuevo marco. El nodo es el más popular, pero su desarrollo está casi muerto. Los paquetes aparecen cada segundo, pero el nodo como marco no está creciendo en características. Incluso tenemos coffescript, TypeScript y un nuevo Javascript (ES6) que es radicalmente diferente del actual. JavaScript es fragmentación en su mejor momento .

Lo mismo se puede aplicar a los demás. Siendo un tipo RoR, mencionaría algunas fortalezas de la plataforma. La gente dice que no es para productos a gran escala, lo que simplemente significa que no ha trabajado en una aplicación a gran escala en RoR o que leyó el artículo de Twitter 2007 fiasco y nunca lo intentó. El rendimiento es más de nuestra culpa. En segundo lugar, las aplicaciones a muy muy gran escala simplemente no usan una sola tecnología. Ninguna tecnología puede impulsar aplicaciones como Facebook o Twitter. Otra cosa es que RoR se está desarrollando más activamente en la plataforma en comparación con django y nodejs (verifique github y vea el gráfico para ver las contribuciones). El número de paquetes en ruby ​​es solo superado por npm (no repositorios git sino paquetes utilizables reales. RoR está específicamente enfocado al desarrollo web. Documentación, herramientas, comunidad y ecosistema todo está diseñado para eso. No digo que ruby ​​on rails sea lo más importante popular, pero digo que el más popular a menudo no es la mejor solución a su problema. Solo porque Python también puede procesar datos, no es mejor en el desarrollo web automáticamente. Solo porque puede escribir todo en JavaScript, no es la mejor solución para su aplicación todo el tiempo. El futuro sigue siendo una pregunta abierta. Todos los idiomas principales de hoy se quedarán durante los próximos años. Cualquiera no dominará porque cada uno de ellos tiene lo que llamamos el talón de Aquiles. Veamos cómo van a hacer frente a eso.

¿Qué pasaría si te dijera que te estás acercando a PHP de la manera incorrecta, limitando tu capacidad de escribir un buen código?

Primero debes darte cuenta de que PHP no apesta. Lo usas mal. Te enseñaron a usarlo mal. La gente anima a otros a usarlo mal. Mirándolo objetivamente, MVC (como nos referimos a él en PHP) es un término vago, y desafortunadamente, cuanto más terrible, confuso y no mantenible es el framework, más popular es.

Vamos a conformarnos con un director de diseño más inteligente.

¿Por qué nos preocupamos tanto por el papel de nuestros controladores? Los controladores simplemente deben coincidir con una ruta y definir una función de devolución de llamada. Esta función de devolución de llamada debe ser responsable de obtener los datos y representar la vista. ¿Por qué preocuparse por una clase para todo? Tenemos HHVM ahora, solo podemos compilar JIT toda nuestra base de código ahora. La necesidad de cargar a demanda el código php para ahorrar recursos ha desaparecido. ¿Qué tal algo tan simple que un hombre de las cavernas podría hacerlo?

$ app-> get (‘/ helloworld’, function () use ($ app) {
echo $ app-> loadTemplate (‘helloworld.twig’) -> render ($ app-> args);
});

¿Cómo logré este modelo simple?

Meses de piratería y una idea aleatoria y brillante. Creé una clase de interfaz, dándole los métodos que necesitaba de Slim y los métodos que necesitaba de Twig:

interfaz MyInteface
{
función pública run (); // método de ejecución delgada
función pública get ($ ruta, $ devolución de llamada); // método delgado
función pública loadTemplate ($ archivo); // método de ramita. devuelve un objeto de plantilla, al que puede llamar el método de representación de ramita.
// otros métodos que necesitas querer aquí
}

Luego implemento esta interfaz:

La clase MyApp implementa MyInterface {

$ args públicos;
public $ slim;
public $ twig;
public $ remote_addr;

función __construct ($ default_args, $ slim_args, $ template_path)
{
$ this-> args = $ default_args;
$ this-> slim = new \ Slim \ Slim ($ slim_args);
$ this-> twig = new \ Twig_Environment (new \ Twig_Loader_Filesystem ($ template_path));
$ this-> remote_addr = $ this-> slim-> request-> getIp (); // solo para darte una idea de las personalizaciones. Cielos el límite sobre qué cruft desea agregar bajo este techo.
}

función pública run ()
{
$ this-> slim-> run ();
}

función pública get ($ ruta, $ devolución de llamada)
{
$ this-> slim-> get ($ route, $ callback);
}

función pública loadTemplate ($ archivo)
{
return $ this-> twig-> loadTemplate ($ file); // tiene que devolver el objeto de plantilla creado para que pueda usar el método de cadena y llamar a render.
}

}

Tenga en cuenta que este ejemplo se abrevia para mantener esta publicación simple y concisa. Debería ser suficiente como punto de partida para que un programador php decente continúe. Planeo lanzar esto en Github / Composer para poder dejar de escribir uno de estos para cada proyecto. 😛 Actualizaré mi publicación si / cuando lo haga.

Javascript está aumentando rápidamente para las tres etapas de desarrollo, cada vez más desarrolladores eligen desarrollar en la pila MEAN, y ¿por qué no lo harían? No es necesario aprender un nuevo idioma para comenzar a desarrollarse, es de talla única y el idioma sigue creciendo.

Aunque, como todos los demás aquí señalaron, dominar es una palabra fuerte, JS sin duda tomaría una gran parte del futuro, pero Ruby / Python no se quedará muy atrás .

La dominación no es lo que va a suceder, lo más probable.

La razón es que el desarrollo web ya no es nuevo, y no hay una razón particular por la que deba adoptar una tecnología. JavaScript está aquí para quedarse, espero, pero no hay razón para escribirlo directamente; simplemente compile a JavaScript en su lugar (o a WebAssembly si / cuando eso realmente despega).

El desarrollo web no tiene un solo conjunto de cualidades. ¿Los proyectos son pequeños y ligeros, o enormes y complejos y necesitan domesticación? Puede ser cualquiera. ¿Necesita transacciones robustas, escalabilidad frente a enormes oleadas de tráfico, compatibilidad con navegadores antiguos, procesamiento eficiente? Sí o no, a cada uno. ¿Necesita que los desarrolladores se pongan al día rápidamente? ¿Necesita acceder a un sistema heredado? ¿Necesita poder hacer cambios con la seguridad de que está evitando los errores más sutiles? De nuevo, varía.

Al elegir un idioma adecuado para la tarea, el desarrollador puede tener una ventaja. Y las empresas también lo están reconociendo. El idioma importa , pero no tiene que ser la misma respuesta para todos.

Así que estamos en una era de flexibilidad cuando se trata de idiomas; Creo que todo lo que aparece en la lista va a perder terreno o permanecerá quieto (es decir, JavaScript, PHP, Ruby, Java y Python). Hay muchos jugadores más pequeños que van a ganar terreno (Scala, Go, Elm, Elixir, Haskell, Kotlin, Rust, etc.).

Si nadie va a dominar, ¿alguien va a perder? De los cinco grandes enumerados aquí, solo PHP tiene esencialmente cero ventajas, aparte del uso generalizado. Python y Ruby pueden ser tan concisos mientras son más claros; JS integra mejor los front-and-back-ends; Java lo supera. Entonces “no PHP” es la única respuesta que se puede tener. Además, es poco probable que los lenguajes que son en gran medida específicos del proveedor (Swift y C #) se hagan cargo a menos que puedan crecer convincentemente más allá de sus respectivas corporaciones.

Pero, oye, si realmente te gusta PHP y eres realmente bueno en eso, tendrás mucho que hacer durante muchos años. Eso se aplica a cualquiera de los grandes idiomas, y probablemente también a algunos de los pequeños.

Bueno, por supuesto, todo esto presupone que el futuro de la web siempre estará en el navegador web donde reina JavaScript. Pero no creo que los navegadores sean el único portal a la web que seguirá siendo relevante en el futuro. Ya estamos viendo otras formas de acceder a la web, a través del móvil, a través de Internet de las cosas. Más desarrollos vendrán. A medida que el navegador web comienza a desaparecer, también lo harán HTML, CSS, JavaScript y DOM. Agradecidamente.

En cualquier caso, cuando WebAssembly finalmente llegue, tendremos más opciones de idioma en el navegador web. Cuando no sea rehén de JavaScript, siempre elegirá mejores idiomas para su aplicación web. Smalltalk es una posibilidad! (Ya, Amber Smalltalk es un excelente lenguaje traducido). También lo son Clojure y Scala. Tal vez Elm o Haxe.

Con tantos idiomas compitiendo, ¡ JavaScript seguramente perderá! El lenguaje que dominará el futuro del desarrollo web es todo menos JavaScript .

Me hago eco de los que dicen JavaScript, pero también quería mencionar que Go también es maravilloso para el desarrollo web. ¿Por qué? porque es una hermosa sintaxis, una mecanografía estricta, una concurrencia integrada y posiblemente más rápida que JavaScript. Además, tiene algunas bibliotecas realmente increíbles que se incluyen. Quiere probarlo -> http://golang.org/doc/articles/w

Sin embargo, los amo a ambos, así que estaría feliz con cualquiera de ellos :).

————— Actualización 02 23rd 2016 ————

Mirando hacia atrás a esta pregunta, solo quería actualizar mi predicción (que es realmente de lo que se trata esta pregunta). Así que creo que esta pregunta pierde el punto. Siento que, aunque quizás un idioma termine siendo más popular que otro, siento que esto echa de menos una de las mejores partes de la web. Podemos usar cualquier idioma o tecnología que queramos. Lo maravilloso de Internet tal como está es que realmente no le importa qué tecnología usamos. Esto significa que hay una maravillosa cantidad de diversidad. Cualquier cosa que pueda hablar HTTP (o websockets) puede hacer la web. Hay tantas opciones nuevas e interesantes como Elixir y su marco de Phoenix para una gran reducción de fallas + un lenguaje hermoso. Hay Clojure, que es otro lenguaje altamente expresivo que también tiene una compilación madura para la historia de JavaScript y una gran integración a la increíble base de datos Datomic. Incluso hay Haskel si quieres algo de programación funcional seria y una escritura estática increíble. Incluso Rust se está convirtiendo en una gran opción. El punto es que es un buen momento para estar en desarrollo web. Y solo está mejorando.

Esta es una pregunta algo difícil de responder. En general, los lenguajes informáticos no solo existen por sí solos. Al responder una pregunta de este tipo, debe considerar el tiempo, el esfuerzo, la investigación, el apoyo de la comunidad y el dinero invertido en el desarrollo de estos idiomas.

La mayoría de los lenguajes informáticos comenzaron como proyectos de investigación en un laboratorio de computación o dormitorio, pero terminaron en el arsenal de grandes empresas comerciales que invirtieron mucho en ellos. Por ejemplo, cuando se lanzó Java en la mayor parte de los años 90, estuvo acompañado de mucha diversión. ¿Por qué? Principalmente porque la comunidad de programadores finalmente había encontrado una respuesta a un problema de programación antiguo: un lenguaje universal que estaba bien diseñado, orientado a objetos y podía ejecutarse en cualquier plataforma.

Entonces, ¿por qué era necesario crear otros lenguajes de programación más tarde, como PHP, C #, Ruby, Python, Scala o JavaScript?

La respuesta es que los lenguajes de programación son como herramientas en una caja de herramientas. Ningún lenguaje informático puede pretender abordar todos los problemas que enfrenta la sociedad. Habrá personas que quieran saber la forma más segura de aterrizar a un hombre en la luna, y habrá algunas personas que deseen resolver su problema de dolor de muelas. Un programador de computadoras es solo un solucionador de problemas. Por ejemplo, no quitará un diente con un martillo, y tampoco arará su granja con una llave inglesa.

JavaScript ha sido un gigante dormido durante mucho tiempo desde su invención, pero recientemente ha sido rejuvenecido por innovaciones en el lenguaje como Node.js que está escrito principalmente en JavaScript y puede permitir a los desarrolladores crear fácilmente aplicaciones de red rápidas y escalables. Node.js afirma utilizar “un modelo de E / S sin bloqueo controlado por eventos que lo hace liviano y eficiente, perfecto para aplicaciones en tiempo real con uso intensivo de datos que se ejecutan en dispositivos distribuidos”.
A menos que ocurra algo más en el futuro cercano, verá que la combinación JavaScript / Node.js continúa ganando impulso en 2015 y más allá.

PHP ha brindado mucha satisfacción a los desarrolladores web a lo largo de los años, principalmente debido a su capacidad de incrustar código PHP en etiquetas HTML y desarrollar rápidamente sitios web dinámicos que acceden a bases de datos relacionales dentro de redes. El par PHP / MySQL se ha convertido en sinónimo en el mundo del desarrollo web.

Ruby y Python están haciendo lo mismo y tienen enormes comunidades de seguidores.

En conclusión, no puedo recomendar un solo lenguaje de computadora que domine el futuro del desarrollo web porque cada uno de estos idiomas es popular, tiene grandes inversiones y grandes comunidades detrás. Sólo el tiempo dirá.

Sin embargo, esta es mi recomendación: aprenda tantos idiomas como sea posible. Esto se justifica por la gran cantidad de anuncios de empleo en periódicos, bolsas de trabajo y sitios de trabajo que vemos a diario en todo el mundo.

Ninguno de ellos. Todos tienen un lugar en el desarrollo web. Los lenguajes JVM (por ejemplo, Java, Scala, Clojure) tendrán un lugar en el software empresarial porque las empresas confían en el JVM, y ofrece un rendimiento predecible, tiene excelentes herramientas y soporte de herramientas, y hay un suministro confiable de desarrolladores.

PHP siempre tendrá un lugar porque cuando desea crear aplicaciones web para organizaciones pequeñas o medianas, no hay mejor punto de partida que los marcos basados ​​en PHP como WordPress, Drupal y Joomla.

Ruby y Python siempre tendrán un lugar porque son excelentes lenguajes con una comunidad de desarrollo sólida, excelentes bibliotecas para el desarrollo web, sintaxis amigable, retroalimentación rápida y desarrollo rápido. Son lentos, pero la mayoría de las aplicaciones web no necesitan una velocidad increíble, y la productividad de codificación que estos lenguajes hacen más que compensar la lentitud.

Y Javascript siempre tendrá un lugar en el navegador, y la facilidad de encontrar desarrolladores de Javascript continuará alimentando la demanda de marcos Javascript del lado del servidor como node.js.

Si bien estoy de acuerdo en que a algunas tiendas les gustará la idea de estandarizar un lenguaje de programación y que será Javascript, no estoy seguro de que sea realmente necesario. Primero trabajo en casi todos estos lenguajes de programación y no tengo problemas para cambiar entre ellos. En segundo lugar, sería bueno estandarizar Javascript tanto en el front-end como en el back-end, a menudo el front-end y el back-end tienen diferentes desarrolladores. El desarrollo de la interfaz de usuario del front-end es un conjunto de habilidades diferente que el desarrollo del servidor del back-end. Entonces, para proyectos de desarrollo más pequeños en los que un desarrollador hace tanto el front-end como el back-end, puedo ver un movimiento a todos los Javascript. Para equipos de desarrollo más grandes con UI dedicada y desarrolladores de servidores no hay necesidad de esto.

JavaScript será grande en FrontEnd, por supuesto
ROR / PHP es bueno para la creación de prototipos a pequeña escala
.NET / Java es muy pesado en Enterprise o cualquier cosa que esté subiendo la escala, vaya, escuché que está arriba y viene aquí
Scala nunca he usado, pero escuché que es genial para aplicaciones Data Heavy
No olvidemos C / C ++ para las tareas intensivas del procesador (¿procesando imágenes alguien? Lol)
Python es un poco universal, bueno para casi todo

Lo importante es darse cuenta de que cada idioma es mejor por derecho propio