He visto a muchos programadores hablar sobre la próxima insignificancia que tendrá JavaScript en el futuro con respecto al desarrollo web. ¿Qué tan cierto es esto teniendo en cuenta las documentaciones, la comunidad y los marcos que tiene JavaScript?

Pude ver un par de caminos donde esto podría suceder. Uno es un lenguaje que compila a JS eficiente. Es decir, parte de la propuesta de valor del lenguaje es que los creadores del lenguaje conocen JS mejor que usted y mantendrán el lenguaje compilando (o más bien transpilando) a la versión más eficiente disponible. Aprendes su idioma una vez y se ocupan de los detalles. Agregue algunos beneficios adicionales y tendrá un caso decente. Elm hace esto, pero si bien puede ser útil por derecho propio, no es necesario ni suficiente para lograr el cambio que los “muchos programadores” a los que te refieres podrían buscar. También podría argumentar que todavía es JS. Eso es cierto, pero debajo de eso son todos los 1 y 0, pero nadie afirma estar programando en código máquina. Bueno, tal vez unos pocos hobbiests o gente súper técnica.

El otro camino es mucho más en el subjuntivo. Fueron suficientes las personas adecuadas para considerar que la web en sí misma está bastante rota y necesita una actualización, una que JS no es adecuada para manejar, esto podría suceder. Algunos de esos problemas y actualizaciones pueden ser en forma de enlaces con fechas de vencimiento, seguridad, deshacerse del DOM (que es más de la mitad de por qué las personas parecen odiar a JS), lo que permite capacidades altamente útiles y deseadas (digamos AR o VR) y así.

  1. El problema con esto es que es muy probable que sea compatible con JS para evitar el problema de que la mayor parte de la web se rompa inmediatamente y lo que luego se consideraría navegadores heredados que solo podrían mostrar las cosas viejas.
  2. Es probable que la nueva solución deba ser algo que JS no pueda hacer para superar la inercia de millones y millones de líneas de JS que están en uso. Pero (y aquí está el problema), JS es un lenguaje completo de Turing … puede. Hombre, justo cuando pensabas que íbamos a llegar a alguna parte.

Puede contrarrestar eso al igual que con DOCTYPE, podría haber algún indicador que le diga a un navegador mejorado que use el nuevo hotness en lugar del JS viejo y roto. Completamente posible, pero significaría el doble del trabajo para el codificador moderno. Escríbelo en JS (más todas las tecnologías adicionales), luego escríbelo en el nuevo hotness.

La presentación PyCon 2014 de Gary Bernhardt El nacimiento y la muerte de JavaScript es la mejor respuesta a esta pregunta que he visto.

Los dos aspectos más importantes de un lenguaje del lado del cliente son el rendimiento y la seguridad. Las IU deben estar libres de latencia y deben estar aisladas de los recursos en el cliente que el servidor no tiene derecho a mirar.

Esas no son características de un lenguaje, son características de su implementación. En este momento, el motor V8 es el sandbox más seguro disponible por un gran margen. (Ciertamente es lo suficientemente rápido, aunque como cualquier cosa, podría ser más rápido).

Pero es increíblemente difícil escribir código malicioso para un motor que ha sufrido tanto escrutinio como V8. (No me crean: miren los argumentos de Kenton Varda en Introducing Cloudflare Workers: Run JavaScript Service Workers at the Edge, publicado este jueves).

Alguien podría idear la tecnología más asombrosa imaginable para expresar y ejecutar la lógica del lado del cliente, pero hasta que miles de ingenieros hayan pasado una década buscando y reparando errores y vulnerabilidades en su implementación, no será algo para lo que sea seguro. mil millones de personas para usar en sus computadoras. Ese es realmente el desafío que enfrenta cualquiera que desee reemplazar JavaScript.

JavaScript simplemente ganará más y más impulso. La razón es que todos los problemas principales con JavaScript (esto, falta de espacio de nombres, alcance de bloque) se han resuelto con versiones más recientes de JavaScript. Mientras tanto, las características del lenguaje de JavaScript (herencia prototípica, dinámica y tipada libremente) de las que la gente se queja son solo eso, características que son útiles para ciertos casos de uso. Otras características (IDE incorrecto, estándares de codificación, etc.) se resuelven con herramientas de terceros.

No se producirá un reemplazo real de JavaScript debido a la necesidad de un paso de compilación intermedio y la complejidad que conlleva. Los navegadores admiten JavaScript, la web siempre será compatible con versiones anteriores (imagine que su navegador NO puede ejecutar páginas web anteriores), por lo que JavaScript siempre estará disponible. El mejor (o peor) caso es que JavaScript obtiene un competidor en el navegador. Pero considere esto: React Native, supuestamente desarrollado como una solución integral para un refugio multiplataforma, requiere JavaScript. Mientras tanto, los “reemplazos” de JavaScript se compilan en JavaScript, pero siempre es bueno saber cómo funciona la compilación y cómo funciona JavaScript para depurar problemas. Y así sigue y sigue, sigue y sigue. ¿Por qué es esto? Porque necesitas un lenguaje de script. También podría elegir el más común.

Una vez que admite que necesita un lenguaje de script para un determinado caso de uso, todos los problemas con JavaScript se convierten en males necesarios. Puede ser un PITA, puede ser horrible, puede ser terrible, pero tiene sus usos.

También te guste o no, la escritura suelta permite una creación de prototipos más rápida y un desarrollo más rápido en general. Por lo tanto, incluso hay un caso de negocios molesto para JavaScript … es decir, siempre habrá un millón de novatos de JavaScript para contratar porque aprender un lenguaje de secuencias de comandos es más fácil (no dominar, sino aprender) y el diseño de desarrollo y el tiempo de comercialización generalmente serán más rápido al ignorar los tipos y tratar todo como una cadena. Esta es la razón por la que JavaScript es popular en las startups, donde el dinero puede quedarse sin dinero.

Ignore JavaScript bajo su propio riesgo (si desea evitar trabajos webdev específicamente). Hoy, si desea un trabajo webdev o un trabajo como desarrollador junior, debe conocer JavaScript y su ecosistema, y ​​esto será cierto durante muchos años. Solo puede permitirse ignorar JavaScript si tiene una muy buena educación / experiencia / experiencia y puede elegir sus trabajos.

Hasta ahora, JavaScript ha sido el único lenguaje que se puede ejecutar en el navegador y todavía no se han recibido noticias sobre una próxima alternativa a JS. Y si lo hubiera, tomaría años de optimización para que la alternativa ofrezca la velocidad y seguridad similares a las de JS.

Hay lenguajes que se trasladan a JS como TypeScript, Kotlin, etc. Todos ofrecen algo que JS no tiene: TypeScript ofrece seguridad de tipos, tipos opcionales; Kotlin ofrece sobrecarga del operador, etc., etc. Estos lenguajes son geniales, pero hay inconvenientes: la configuración del proyecto lleva tiempo, la compilación a JS lleva tiempo, etc.

Algunos de los lenguajes que se compilan en JS, como CoffeeScript, incluso mueren eventualmente, porque a medida que se incorporan nuevas funciones en JS, esos lenguajes pierden su valor porque ya no tienen nada que ofrecer.

De hecho, JS tenía sus desventajas como: código asíncrono horrible o Callback Hell, pérdida de velocidad cuando se usa try-catch, promesas, etc. Ahora, los problemas de pérdida de velocidad se han solucionado y puede administrar fácilmente las operaciones asíncronas en JS con async / waitit o generadores que están disponibles en casi todas partes ahora.

La comunidad está creciendo, se están desarrollando nuevas especificaciones de JS, JS incluso se está utilizando en el desarrollo de aplicaciones móviles (por ejemplo, reactivo nativo), desarrollo de aplicaciones de escritorio (electrón).

Espero que lo anterior te haya convencido lo suficiente de que JS no va a desaparecer pronto.

La gente se ha estado quejando de la insignificancia de JavaScript durante años.

Honestamente, nunca debes estar atado a un idioma porque ¿quién sabe qué puede pasar? Lo que es más importante es poder adaptarse.

Puedo decir con certeza dada la comunidad de JavaScript y los planes futuros, no creo que JavaScript desaparezca pronto. En todo caso, seguirá evolucionando.

Bueno, si los deseos fueran caballos …

Aparte de eso, JavaScript tiene una comunidad muy sólida , excelente documentación en toda la web, tutoriales gratuitos en todas partes, en muchas formas diferentes, una plataforma que llega a la mayoría de los idiomas solo puede soñar y, por supuesto, un equipo muy poderoso que está empeñado en hacer JavaScript El idioma más perfecto que existe.

Cada vez que alguien te diga eso la próxima vez, pregúntale qué idioma supera este momento o espera hacerlo en el futuro, ¡paz!

He escuchado lo mismo, y culpan a la disminución de WebAssembly o uno de la multitud de transpiladores.

La cuestión es que JavaScript continuará teniendo un uso significativo en el futuro. Webassembly no está destinado a ser escrito por desarrolladores y, si su código de transposición, debe poder evaluar el JavaScript generado.

Entonces, no, JavaScript continuará siendo utilizado.

El desarrollo web generalmente no se trata de una herramienta o tecnología que merezca tanto como ser el primero. JavaScript fue el primero en su espacio y eso supera su mérito o falta de mérito.

Tomando a un lado las cosas que compilan a JavaScript. Mira lo que se necesita. Debe adoptar o escribir un idioma y obtener al menos los tres navegadores web con la mayor participación de mercado para respaldarlo. Entonces tendría años de versiones de navegadores antiguos que tendrían que ser reemplazados.

Es más fácil para mí ver un movimiento hacia las aplicaciones de escritorio en lugar de las aplicaciones web que para algo que no sea JavaScript que se ejecuta de manera efectiva en los navegadores. Podría ver que tal vez con la nueva regulación del gobierno de los EE. UU. O la falta de ella (todo el debate sobre la neutralidad de la red) podría crear una decisión de que algunas empresas podrían querer alejar sus aplicaciones de la web. Francamente, no veo que eso suceda, pero podría.

La velocidad seguirá siendo importante y si los ISP participan en demasiados estrangulamientos, podría haber una reacción violenta.

Respuesta práctica más breve: no pierda un momento pensando en este tema hasta que las alternativas se manifiesten de forma tan persuasiva que realmente veamos que la gigantesca comunidad de desarrollo web realmente hace un movimiento significativo desde JavaScript. Toda mi experiencia me dice que incluso las nuevas tecnologías más atractivas pueden tener el peor tiempo para obtener tracción contra las más arraigadas.

La única razón por la que JS es tan popular en el desarrollo web es porque es la única opción. No porque sea bueno (en realidad es terrible, y el ecosistema está casi loco). En el momento en que hay algo más disponible para hacer cosas web, se vendrá abajo.

Una de las razones es que es difícil imaginar algo peor que JS frontend hipster hell.

Un día, pronto, JS se unirá a las filas de Blockbuster y Nokia.

More Interesting

Quiero invertir los próximos 6 meses en aprender Ruby on Rails. ¿Cómo debería ser mi plan de estudio?

Soy un nuevo programador que busca entrar en el desarrollo web. ¿Con qué tecnología debo comenzar?

¿Qué debo aprender a continuación si conozco HTML, CSS, JavaScript, jQuery, PHP, MySQL y WordPress?

No puedo decidir si quiero aprender web u otra programación, así que ¿no puedo hacer las dos cosas?

¿Cuál es una mejor opción para mi startup, PHP o Python? ¿Recomendaría usar un marco para PHP? Usando PHP o Python con Django, ¿habrá una diferencia significativa en el tiempo de desarrollo?

Si no quiero hacer desarrollo móvil o web, pero quiero hacer algunos proyectos para mostrar a los empleadores, ¿cuál sería mejor seguir?

Sé HTML 5, CSS, conceptos básicos de JavaScript y ASP .NET. ¿Qué más necesito saber para aprender MVC?

Soy un principiante en el desarrollo web, que se siente extremadamente frustrado cuando no puede instalar el software de requisito previo. ¿Qué puedo hacer para facilitar esto?

Sigo perdiendo empleos (desarrollador web) porque "soy demasiado lento y cometo errores". Pero me contratan para un papel mejor y más compensado cada vez. ¿Por qué?

Tengo una maestría en CS de una escuela superior y finalmente comencé mi carrera en el desarrollo de aplicaciones web. Mis amigos creen que esto es un desperdicio. ¿Es esto cierto?

Soy desarrollador de SQL y mi empresa me reembolsará los certificados de TI, pero estoy en el desarrollo web. ¿Cómo debo aprovecharlo?

Si escribo un programa para enviar muchos correos electrónicos, ¿se clasificará como spam?

Quiero construir mi primera aplicación web. ¿Tendré éxito si empiezo a codificar mi aplicación web (aprendiendo sobre la marcha) o si me tomo un mes para aprender primero los fundamentos de las redes informáticas?

Estoy planeando obtener una MacBook Pro. Lo usaré para el desarrollo de iOS y también para algunos desarrollos web. ¿Estoy atascado entre la cantidad de ram para elegir, ya sea 16gb u 8gb?

He estado tomando lecciones en codecademy.com para HTML, JavaScript y Ruby, pero me gustaría comenzar a aprender otros lenguajes como C, C ++, C # y PHP. ¿Dónde empiezo?