"Lo mejor que podemos hacer hoy a JS es retirarlo. Hace 20 años, yo era uno de los pocos defensores de JS. Su combinación de funciones anidadas y objetos dinámicos era brillante. Pasé una década tratando de corregir sus defectos. Tuve un pequeño éxito con ES5. Pero desde entonces, ha habido un gran interés en inflar aún más el lenguaje en lugar de mejorarlo. Así que JS, como los demás lenguajes dinosaurios, se ha convertido en una barrera para el progreso. Deberíamos centrarnos en el próximo lenguaje, que debería parecerse más a E que a JS".
|
etiquetas: javascript , douglas crockford , desarrollo web , lenguaje de programación
JavaScript, el lenguaje de programación más popular del mundo según la mayoría de las encuestas, se ha convertido en una barrera para el progreso, según Douglas Crockford, creador de la especificación JSON (JavaScript Object Notation) utilizada en todas partes para serializar datos en las aplicaciones web.
Crockford hizo esta afirmación en una entrevista el mes pasado:
"Lo mejor que podemos hacer hoy a JavaScript es retirarlo. Hace veinte años, yo era uno de los pocos defensores de JavaScript. Su combinación de funciones anidadas y objetos dinámicos era brillante. Pasé una década tratando de corregir sus defectos. Tuve un pequeño éxito con ES5. Pero desde entonces, ha habido un gran interés en inflar aún más el lenguaje en lugar de mejorarlo. Así que JavaScript, como los demás lenguajes dinosaurios, se ha convertido en una barrera para el progreso. Deberíamos centrarnos en el próximo lenguaje, que debería parecerse más a E que a JavaScript".
…...
JavaScript, el lenguaje de programación más popular del mundo según la mayoría de las encuestas, se ha convertido en una barrera para el progreso, según Douglas Crockford, creador de la especificación JSON (JavaScript Object Notation) utilizada en todas partes para serializar datos en las aplicaciones web.
Crockford hizo esta afirmación en una entrevista el mes pasado:
"Lo mejor que podemos hacer hoy a JavaScript es retirarlo. Hace veinte años, yo era uno de los pocos defensores de JavaScript. Su combinación de funciones anidadas y objetos dinámicos era brillante. Pasé una década tratando de corregir sus defectos. Tuve un pequeño éxito con ES5. Pero desde entonces, ha habido un gran interés en inflar aún más el lenguaje en lugar de mejorarlo. Así que JavaScript, como los demás lenguajes dinosaurios, se ha convertido en una barrera para el progreso. Deberíamos centrarnos en el próximo lenguaje, que debería parecerse más a E que a JavaScript".
Según una encuesta de StackOverflow realizada a principios de este año, JavaScript es utilizado por más del 65% de los desarrolladores, muy por delante del segundo clasificado, Python, con un 48% (sin tener en cuenta HTML, CSS y SQL, que no son lenguajes de propósito general). Se trata de un logro improbable teniendo en cuenta sus orígenes.
Brendan Eich inventó el lenguaje para Netscape en 1995, aparentemente en sólo 10 días. "En mayo hice 10 días de trabajo duro, no dormí mucho", dijo Eich en la conferencia dot.JS en 2018. En 2012 Eich dijo a Charles Severance de Computer que: "Entré a hacer... un lenguaje de programación para HTML, para que los diseñadores y programadores web lo usaran, incrustado directamente en la página web... no como Java, que era un lenguaje de profesionales en el que se ejecutaba código real con declaraciones de tipo, y había que escribir de forma que se compilara". Añadió que "el nombre es una total mentira. No está tan relacionado con Java como con un ancestro común, C, en la sintaxis".
Eich calificó el trabajo de "trabajo apresurado", pero también dijo que "sabía que habría errores, que habría lagunas, así que lo hice muy maleable como lenguaje. Eso ha permitido a los desarrolladores web hacer que sea lo que quieran".
¿Por qué JavaScript ha tenido un éxito tan rotundo?
Hay múltiples razones, entre ellas la previsión de Eich, la facilidad de aprendizaje y la tolerancia al código que sería un
… » ver todo el comentario
Saludos
Y no solo me pasa a mi. Hay montones de páginas que largan decenas de errores de JavaScript si uno se pone a mirar la consola.
Esta parte da miedito. Desde luego nunca entendí como la escalada sobre funciones web avanzadas partió de JavaScript sabiéndose cómo estaba montado, quizá fue por los mismos motivos de la eficacia de JavaScript: las prisas.
Pero también es verdad que aquí se criticaba a C, un lenguaje precioso, simple y sencillo que entra en cualquier autómata.
Empiezas a corregir el primero, hasta que se acabe el último.
El problema es ya de librerías de terceros.
A qué te refieres exactamente?
Pd: espera que YA está en el 0.34%
Además que JavaScript surgió para cubrir unas necesidades de añadir comportamientos y dinamismo a las páginas pero están hiendo demasiado lejos, depurar y trabajar con ello es un tortura, por no mencionar las decenas de herramientas relacionadas con paquetes de módulos y managers y dependencias y configuraciones y bugs... estoy seriamente pensando en pasarme a back-end definitivamente. Estoy mucho más disfrutando con PHP ahora mismo, imaginaos como es mi vida de disfuncional ahora mismo
PHP más JavaScript, huye, sal corriendo y no vuelvas a ese proyecto
Por no hablar de bugs que generaban html incorrecto y salían meses después de haber publicado una web y que sólo se daban con combinaciones concretas de datos metidos por los usuarios.
Así que para no quedar mal todo el mundo que lo usaba no validaba los errores y lo usaba como HTML normal. Luego se pasó a HTML 5 y la idea de validación por XML se abandonó.
Para que funcionara algo como lo que dices todos los navegadores y motores web en uso tendrían que ponerse de acuerdo y poner una fecha límite para que las empresas fueran cambiando de paradigma, y eso no va a pasar, ya que tal como está montada la web actualmente generaría muchísimos costes y ralentización de desarrollo a todas las empresas que se dedican a hacer webs, que van a poner todos los impedimentos que puedan, y porque basta que un solo navegador funcione como hasta ahora para que los usuarios migren a ese porque "ese funciona" y el resto es una mierda porque da errores. Suerte explicándoles que ese que funciona es el que realmente lo está haciendo mal.
Un poco de orden, que la web es una gran casa de putas, y mucho es por que para 1 tio que hay con frialdad y ganas de hacer las cosas bien hay 100000 hippies con infulas e ideas de bombero.
Gracias.
Ahora bien, el ecosistema es lo putísimo peor... que si libraries y frameworks que salen cada dos por tres, que esta libreria funciona solo en un tipo de paquetes, y esta otra es sólo un módulo, y esta es módulo pero ES6 y esta otra es sólo para CommonJS y esta otra es UMD y este otro grupo de desarrolladores dice que UMD caca y que mejor no hacer eso, etc etc etc. Ya sin entrar a la putísima mierda de frameworks frontend en donde todo está mal, nada tiene sentido. Complejidades, herramientas todavía más complicadas, etc. Convenciones y más convenciones por todos lados, sin ningún estandar efectivo. Typescript ayudando y poniendo orden y al mismo tiempo añadiendo una nueva layer y más y más caos. Después la barbaridades de añadir paquetes de terceros para cualquier gilipollez. Basura deprecated, anticuada, malas practicas por todos lados. MUY malos ingenieros por todos lados, aunque el ecosistema tampoco ayuda en absoluto.
Pero, en serio, Javascript como lenguaje está muy bien y ser el creador del mismo no significa que sepa de lo que está hablando.
Ahora, estoy de acuedo en que ES6 metió algnas cosas criminales (como las falsas clases) que lo hacen aún más lioso.
Si "quitan" JavaScript lo que acabará ocurriendo es que la gente tendrá que usar dos navegadores de Internet, uno moderno y otro antiguo, para poder acceder a páginas web cuyos autores no piensan modificar porque las han hecho gratis y demasiado si pagan ellos el hospedaje de su bolsillo.
Lo que tienen que hacer en JS es permitir "programar bien", por ejemplo, permitir usar tipos de dato definidos (int, float, double... pero aún mejores), pero sin renunciar a la opción de usar tipos de dato como ahora, que van en función de lo que declaras. Eso permitiría programar aplicaciones web muy robustas si el programador quiere, y luego si no quiere, hacer las cosas un poco como ahora.
¿Opción más realista? Que los navegadores aceptasen TypeScript.
Por curiosidad, sabéis de algún otro lenguaje que tenga desestructuración, y spread?
Cc #17 por supuesto que se puede saber
C es como los Stark, rectos, del Norte, fieles a su código. Pero a la hora de la verdad, sin un puto duro. Cuando curraba en C y assembler compartía piso y no llegaba a fin de mes.
Javascript es la familia Lannister: follan entre hermanos, beben, montan orgías... No son los más rectos, pero están podridos de pasta. Y son más divertidos.
Gano en un mes de javascript lo que ganaba en el 2006 en un año de C.
Así que un respeto, que JS siempre paga sus deudas.
Gracias Javascript!
Lenguajes menos conocidos? Hay a patadas con desestructuración y spread. Por ejemplo Haskell, OCaML, Erlang y Prolog.
Y si, JS ES basura, lo es. Es una casa de putas.
Todabia no ha salido un lenguaje que no sea una casa de putas, no ha salido algo como C, aunque hay algun lenguaje viejo que se acerca y alguno nuevo que se acerca. Y digo C, no C++.
Si me consigues un salario similar en C yo me cambio
El problema es que no hay ningún sustituto para Javascript en frontend. Todas las alternativas han sido deliberadamente peores: ActiveX, Flash, Java Applets, Silverlight. Todas ellas estaban basadas en el lock-in y el "sólo nuestro navegador o nuestras herramientas". Con WebAssembly quizás eso cambie, pero primero tenemos que ver algo que no caiga deliberadamente en los problemas anteriores (por ejemplo Blazor va de nuevo a "solo nuestro framework y nuestras herramientas").
Con respecto al backend, Javascript ofrece alternativas más sencillas que muchos sistemas actuales (excepto NestJS) y al mismo tiempo permite compartir código entre el frontend y el backend. Por ejemplo via NextJS. Esa es una combinación que muy pocos lenguajes de programación pueden ofrecer. De nuevo, WebAssembly puede cambiar eso, pero sólo si la gente deja de obsesionarse con sus herramientas propietarias y su navegador propietario.
Lo cual significa que tendremos Javascript para rato.
JS es una casa de putas. Una casa de putas que paga bien.
El lenguaje para sistemas que no sea una casa de putas ya existe. Se llama Rust. Básicamente un C con sistema de tipos fuerte.
En cuanto a Rust, si, a ese me referia como algo nuevo sin ser casa de putas, aun asi no llega a lo que es C en algo Lean. Lo importante de Rust no son los tipos, no hay tanto problema, por mucho que se repita tanto, con los tipos, la verdad, no se lo que hace la gente para que eso sea tanto problema. Lo importante de Rust es el Borrowing, arma de doble filo, pero bueno...
HTML es caca?
JSON es caca?
Yaml es caca?
Abre tu mente hombre. Que además abre puertas.
Esta es la web del lenguaje: erights.org/ No utiliza ni https y parece sacada de los 90 (falta un gif animado con un cartel de en construcción), con enlaces para probar el lenguaje online sin instalar nada como este: meme.b9.com/cdates.html?channel=erights (que no funciona). También podéis visitar la sección de la wiki Getting Started (wiki.erights.org/wiki/Getting_Started) que no se actualiza desde 2011.