En la historia antigua, Brendan Eich tenía un diseño de lenguaje, y en el mundo de hoy, JavaScript es un lenguaje popular implementado y utilizado en muchos lugares diferentes.
¿Qué hizo que el idioma se volviera popular? ¿Era la sintaxis tipo C familiar para los programadores anteriores? ¿Netscape tenía suficiente control del mercado para obligarlo a ser utilizado? ¿O hay alguna razón más profunda por la que JavaScript es popular y otros lenguajes no?
En particular, si tuviera que hacer un lenguaje tan popular como JavaScript, ¿qué condiciones iniciales necesitaría para recrear su crecimiento en popularidad?
programming-languages
javascript
history
Mathnerd314
fuente
fuente
Respuestas:
Estaba comentando una respuesta anterior , pero se estaba volviendo grande, así que pensé en darle la vuelta.
Cualquier lenguaje nuevo solo puede tener éxito si aprovecha una frontera emergente en informática.
Ejemplos anteriores:
Para responder a su pregunta, JavaScript era el idioma de Netscape Navigator cuando ese era el navegador dominante. Específicamente, era el lenguaje para el desarrollo dinámico front-end.
El próximo gran lenguaje tendrá que resolver otra frontera. Todavía parece haber un acaparamiento de tierras en el espacio de desarrollo web de back-end. Además, la informática móvil no está totalmente resuelta, a pesar del dominio actual de Apple. Además, está surgiendo la computación en múltiples núcleos y en la nube, que es algo en lo que muchos lenguajes intentan capitalizar (como lenguajes concurrentes como Erlang y Go, o lenguajes funcionales como Haskell y OCaml).
Los empresarios tienen una expresión similar a "encontrar a alguien en llamas y venderle una manguera de incendios". Entonces, si quieres introducir un nuevo lenguaje, ¿a quién le estás apagando? Cada nueva frontera en computación trae una gran cantidad de dolores de cabeza; así que dale aspirina y serás dorado.
fuente
Es bastante simple: Netscape utilizó un motor de JavaScript en su navegador. Si lo que quería hacer secuencias de comandos en la web, JavaScript fue él . Internet Explorer tenía (y aún tiene) JavaScript y VBScript, pero obviamente si desea trabajar en algo más que solo IE, no tiene más remedio que usar JavaScript.
JavaScript es un gran lenguaje por derecho propio, pero no sería tan popular hoy en día si no fuera por el hecho de que es el único lenguaje que puede usar para escribir HTML.
fuente
Voy a agregar una actualización a esto porque creo que la aparición de JS en la web del lado del cliente ha sido mal entendida en algunos puntos clave a lo largo de los años.
No fue Ajax
No digo que Ajax no fuera importante para la evolución de la comprensión de JS como lenguaje, pero la lucha por el dominio del navegador del lado del cliente terminó mucho antes de que se acuñara el término Ajax.
No fue porque era el único juego en la ciudad.
Había Java Applets, Flash y VBScript. Escuché que incluso había otras opciones de secuencias de comandos en los años 90 (pero requerían los complementos IIRC). Java es muy popular pero los applets fueron un fracaso total. Eran feos y, a menudo, de queso suizo de seguridad, pero lo que es más importante, no creo que Java sea una buena opción por las razones que abordaré más adelante. Flash fue muy popular y tuvo una sólida posición durante varios años, pero incluso cuando Flash finalmente tenía opciones de SEO, no se usaban normalmente, lo que hacía que los sitios exclusivamente Flash fueran muy difíciles de descubrir. Incluso ahora, la mayoría de nosotros actualizamos Flash regularmente para poder ver películas, pero ese es el verdadero talón de Aquiles. La tecnología patentada en los navegadores es molesta. Y, por supuesto, VB, que solo funcionaría con IE, así que no.
El lugar correcto en el momento correcto es relevante pero no la respuesta completa
Sí, sin la ola web para montar, es posible que nunca hayamos visto JavaScript o un lenguaje de uso popular como lo hicimos tan pronto como lo hicimos. O tal vez tendríamos ...
Terminó siendo la herramienta perfecta para el dominio del problema
Yo diría que alrededor del año 2000 tuvimos los siguientes problemas:
Así que necesitábamos un lenguaje que fuera profundo, que ofreciera la capacidad de estructurar y diseñar una aplicación más avanzada con componentes portátiles / reutilizables en el lado del cliente pero también accesible para personas que no sabían mucho y solo necesitaban cosas aparecer / reaparecer al hacer clic en un botón.
Además, MS es la bestia desgarbadora / incompetente y / o dominada a través de prácticas anticompetitivas que a veces son, no pudo realmente tocar su implementación de API DOM no compatible durante una buena década sólida, aunque lograron agregue algo ocasional como el objeto XHR original y querySelectors en IE8.
Lo importante a tener en cuenta es que alrededor de 2005 habíamos logrado enterrar por completo la complejidad involucrada en el manejo de problemas entre navegadores que ya no era realmente un problema grave en el frente de JavaScript. La incapacidad de soportar CSS2 correctamente durante el tiempo que lo hicieron causó mucho más dolor. Para tener una idea del gran volumen y la profundidad de los problemas, recomiendo visitar quirksmode.org . No creo que esta sea una hazaña que podría haberse logrado con tanta facilidad y en tantas bibliotecas en Java, ciertamente no en VB y definitivamente no con ninguna estrategia de complemento cuyo objetivo es evitar todo el problema convirtiéndose en un tema completamente nuevo tipo de molestia
Otras características del lenguaje que tienen mucho sentido para la interfaz de usuario:
Funciones de primera clase: en mi experiencia, nada se presta mejor para el procesamiento asíncrono y los paradigmas basados en eventos que un lenguaje que haga que sus funciones sean de primera clase. Ambas preocupaciones se abordan regularmente en el trabajo de IU.
Tipos dinámicos: La conversión y verificación de tipos es una necesidad muy rara en JavaScript que ayudó a mantener el código conciso y ajustado. Las preocupaciones sobre la interfaz de usuario pueden volverse complejas y desordenadas muy rápidamente. Mantener el código estricto y ser absolutamente claro sobre el flujo de datos es fundamental para comprenderlo y modificarlo / mantenerlo.
No es proteccionista: durante muchos años, alguien ha estado predicando que debe protegerse de sus propios errores y de las cosas tontas que el otro tipo podría hacer con su código al hacer construcciones de código altamente rígidas e inflexibles e imposibles de entrometerse con la intención original que era escrito con y mucha gente ha estado escuchando. No diré que siempre están equivocados (podría pensarlo), pero diré que es el enfoque incorrecto para la interfaz de usuario web y creo que es un fenómeno que hemos estado produciendo, manteniendo y modificando clientes. Las interfaces gráficas de usuario secundarias a un ritmo mucho más rápido y con mayor facilidad que dicho trabajo se realizaban en lenguajes más restrictivos en el pasado. Ser capaz de cambiar las cosas sobre la marcha rápida y fácilmente hace que sea mucho más fácil tener esquemas de arquitectura dinámica / fluida que no requieran cantidades monumentales de indirección y abstracción, lo que en última instancia hace que sea más fácil ver qué demonios está sucediendo en su código y adelantar o manejar excepciones mucho más limpiamente. Es más fácil de mantener simplemente a través de la pura virtud de hacer posible ser más directo en todo lo que haces y con mucho menos código del que tomaría dada la otra filosofía.
¿Cómo se hizo popular JS? Ha demostrado ser una excelente herramienta para el trabajo una y otra vez. No es el lenguaje con el que estamos "atrapados" Es el lenguaje que puede haber inspirado una gran evolución en los idiomas populares en general. Y por eso, puedes agradecer a Brendan Eich y a todos los contemporáneos que ayudaron a poner la idea en su cabeza, por considerar a Scheme como una inspiración de diseño adecuada para el problema en cuestión más de lo que le gustaba Java.
fuente
Una táctica utilizada inicialmente fue el nombre: "JavaScript" estaba destinado a aprovechar la popularidad de Java, que había estado en aumento durante un tiempo.
fuente
¿No ha sido el único lenguaje de script del lado del cliente para varios navegadores? Su popularidad parece haber crecido al ritmo de la web, lo cual tiene sentido.
fuente
Momento correcto, lugar correcto. Y no fue del todo malo.
Es la misma razón por la que Facebook está ganando.
fuente
En mi opinión, Javascript es popular porque es compatible.
Primero, es el único lenguaje para Netscape e IE en su momento. Después de que se establezca una "comunidad javascript" y se estabilice, nadie podría pensar en "otro bien" que requiera construir desde cero. Simplemente contribuyen a hacerlo cada vez mejor.
Si desea crear un nuevo lenguaje popular, lo primero que pienso es que debe determinar quién usa ese idioma . Los primeros clientes siempre son difíciles de conseguir, y debe hacer que su lenguaje sea superior al javascript de una forma u otra. Quizás incluso en un campo restringido / comunidad restringida de programadores, por ejemplo, "un motor javascript mejor / más rápido para iPhone móvil" puede ser una buena opción.
Además, su idioma debe ser fácil de usar y personalizar por comunidad, porque es la comunidad la que determina qué idioma podría sobrevivir.
fuente
No me vas a creer, pero Flash y (en algunos pequeños applets de Java antes) hicieron una gran contribución en el crecimiento de la popularidad de JavaScript y en la evolución del lenguaje en sí.
Cuando apareció Flash, fue la primera evidencia de que vale la pena pensar en las aplicaciones web.
En cierto sentido, la competencia con los complementos, los intentos constantes de mostrar: mire lo que podemos hacer sin los complementos, convirtió a JavaScript en un lenguaje con un espectro más amplio de aplicaciones y, por lo tanto, lo hizo popular.
fuente
Por mi parte, creo que la gente pensó que Javascript tenía que hacer algo con Java.
(Como hoy en día todo comienza con una "i")
La estrategia de marketing / publicidad juega un papel importante.
fuente
Realmente creo que tiene que ver con su C-como sintaxis . Según Wikipedia, Javascript apareció en el '95. En ese momento, C estaba en su punto más alto y Java era el lenguaje próximo. Creo que la sintaxis fue realmente atractiva (para ese momento) y su asociación de nombres con el próximo gran lenguaje, Java , le dio una ventaja.
Permitió un cruce fácil en ese momento para que los programadores de C se adaptaran a un lenguaje dinámico.
Índice Tiobe
Si tuviera que recrear el éxito de Javascript , vería los problemas que afectan a los programadores modernos y les daría una solución con una sintaxis familiar.
La programación paralela de la OMI es el próximo gran problema que enfrentan los programadores. Creo que los lenguajes funcionales realmente hacen un gran trabajo para superar ese obstáculo. Si tuviera que crear el próximo Javascript , crearía un lenguaje funcional con una plataforma común . Además, creo que debería ser lo suficientemente flexible como para ser un lenguaje envolvente pero lo suficientemente potente como para ser un lenguaje estáticamente tipado, con un gran marco.
Aunque no todos pueden estar de acuerdo, en esas condiciones, creo que F # puede tener muchos méritos en el futuro.
fuente
JavaScript se hizo popular debido a AJAX y buenas herramientas de inspección como Firebug. Por supuesto, el hecho de que funcionó en todos los principales navegadores y era la única forma de hacer DHTML ayudó.
Básicamente para que el lenguaje más feo sea exitoso, tiene que ser capaz de hacer algo realmente útil que ningún otro idioma pueda hacer. También debe proporcionar herramientas que permitan a los programadores realmente sentir que controlan lo que hace el lenguaje, que no era el caso de JavaScript antes de Firebug.
fuente
Javascript es popular como un truco para superar las deficiencias del marcado HTML para hacer que las páginas web aparezcan como los diseñadores quieren que aparezcan. Sin Javascript, todas las páginas web se verían así : HTTP 1.1 . Apenas un paso adelante del protocolo Gopher .
fuente