¿Qué hay de malo en amar a JavaScript? Nunca entendí por qué no puedo usarlo para todo.

La razón simple es que JavaScript es uno de los lenguajes de programación peor diseñados en la historia de los lenguajes de programación (dejando de lado los lenguajes de broma como Brainfuck). Para empezar, ¡ni siquiera tiene un tipo de datos entero! ¿Qué otro idioma no tiene enteros?

JavaScript no tiene matrices normales como la mayoría de los programadores las entienden. JavaScript es uno de los pocos lenguajes existentes que tienen una tipificación débil (que no debe confundirse con la tipificación dinámica), lo que resulta en muchas coerciones de locos. JavaScript es el único lenguaje que conozco que puede fallar en silencio en el tiempo de ejecución debido a errores sintácticos.

Y apenas he arañado la superficie. El hecho de que un libro como “JavaScript: The Good Parts” de Douglas Crockford sea incluso necesario le dice todo lo que necesita saber. El hecho de que una plantilla sea prácticamente obligatoria para usar JavaScript habla en forma segura.

Ni siquiera puede usar JavaScript para preparar a un principiante para la profesión de TI porque casi TODOS los otros idiomas principales son lenguajes OOP basados ​​en clase … Java, PHP, Python, C #, C ++, Ruby, Objective-C, Perl, Scala, Swift. JavaScript se basa en gran medida en los prototipos de objetos, una característica dudosa que solo comparte otro lenguaje de algún significado: Lua.

Por lo tanto, JavaScript le enseñará muchos malos hábitos que no son transferibles al resto de la industria de TI.

Debe comprender que la ÚNICA razón por la que JavaScript domina el desarrollo web es que los desarrolladores web no tienen otra opción . JavaScript es el ÚNICO idioma disponible en el navegador web. Si los desarrolladores web tuvieran una opción, ¡seguro que no elegirían un lenguaje estúpido como JavaScript!

Aquí está la verdad: la comunidad de desarrollo web ha sido efectivamente secuestrada por JavaScript. Sólo el síndrome de Estocolmo convence a todos de que es un buen lenguaje. Lo que esta comunidad necesita seriamente es un “desprogramador”.

Claro, JavaScript está presente en varios otros dominios, pero en las reglas de dispositivos móviles, Java y Objective-C / Swift. En escritorio, Java, C ++, y otros son populares. En los juegos, todo se reduce a C # y C ++. En la computación en nube, es Java. En computación numérica, es Java, Python y C ++. En ciencia de datos, es R y Python. En finanzas, es C ++ y Python. En robótica e Internet de las cosas, Java, Python, C y otros son extremadamente populares. Y así.

Fuera del desarrollo web, JavaScript tiene un lado de servidor de tracción, pero Node tiene una aplicabilidad bastante limitada. Para aplicaciones de servidor de alto rendimiento y alta disponibilidad, hay muchas alternativas superiores como Java, Scala, Clojure, Go, Erlang, etc.

A pesar de lo que otros puedan decirle, JavaScript no es el lenguaje de programación universal. Para tener éxito en la industria de TI, debe ser políglota. Por lo tanto, amplíe su alcance con Java y Python, como mínimo, y considere seriamente la posibilidad de elegir Go , C # y uno de los lenguajes de FP (como Haskell, Clojure, Erlang).

Nada No hay nada de malo en eso, al contrario de muchas otras respuestas aquí.

¿Deberías usarlo para todo? Absolutamente no, de hecho probablemente ni siquiera para “la mayoría” de las cosas. Sin embargo, hay cosas en las que JS lo hace realmente bien. Para el navegador, obviamente ese es el camino a seguir, ya que es el único camino a seguir. Entonces, ¿qué hay de las aplicaciones de escritorio (es decir, Electron)? Sospecho que la gente no estará de acuerdo con esto, ¡pero yo digo que sí! ¡Absolutamente! Hay muchos marcos, muchos de los cuales son realmente excepcionales para trabajar, que han sido diseñados desde cero para construir interfaces modernas y aplicaciones altamente interactivas. Combine esto con el entorno nativo de JavaScript, HTML y CSS, y tendrá una de las formas mejores y más intuitivas de crear aplicaciones para usuarios. De hecho, incluso lo compararía con el sueño original de que Java iba a ser el lenguaje en el que escribes algo una vez y lo ejecutas en todas partes. Sin duda, JavaScript se está acercando cada vez más a esa realidad con pocos compromisos (yendo aún más lejos si tener en cuenta cosas como reaccionar nativo). JS incluso ha demostrado que vale la pena en el lado del servidor y se está utilizando para hacer grandes cosas en muchos de los grandes jugadores de la industria (Netflix es un gran ejemplo). Por ejemplo, encuentro que es excepcional para los servidores API con el buen rendimiento que obtiene de Node y la facilidad de tratar los datos en JSON (JSON, literalmente, solo es JavaScript). No cubre todos los casos, pero por eso tenemos más de un idioma para elegir. Decir que es un lenguaje que es bueno para “nada” es muy difícil de creer.

La mayoría de las personas tienden a tener problemas con el lenguaje en sí, es semántica, son expresiones idiomáticas y ciertamente son inconsistencias. Incluso en este frente, diría que la mayoría de las personas con las que he hablado están simplemente equivocadas. “¡Pero confusas reglas de igualdad!”, Dicen. “¡Coerciones de locos!”, Dicen. “¡Pero mira el tamaño relativo de las ‘Partes buenas’ y ‘Partes malas’!”, Dicen (lindo, pero inexacto). La gente dice estas cosas porque están comparando mentalmente el idioma con el fondo que tienen, y lo entiendo, empecé con C ++ y he usado muchos idiomas. Incluso odié a JS cuando empecé a usarlo por primera vez. Casi todos los argumentos que he escuchado en contra del lenguaje están sesgados en la dirección equivocada, generalmente equivocados y (lo más importante, últimamente) generalmente obsoletos. JS es un lenguaje hermoso cuando lo entiendes, escribir código realmente elegante es mucho más fácil que muchos otros idiomas, pero debes abordarlo de manera diferente a cualquier otro idioma que hayas probado antes. Además, diría que la forma más efectiva de escribir un gran JS es usar conceptos de programación funcional, que tienden a alejar a mucha gente con antecedentes OOP muy estrictos, pero en realidad es a donde se dirige la comunidad JS. Si alguien le dice que JS es basura, pídale que le muestre un ejemplo específico y 9 de cada 10 veces puede mostrarle por qué ese ejemplo no es válido o simplemente está inventado.

Yo también soy un fan de JavaScript, pero haré todo lo posible para ser imparcial aquí. En resumen, no hay absolutamente nada de malo en ello, pero puede que no sea la forma más eficiente de hacerlo en todos los casos. Creo que deberías considerar tres cosas cuando quieras decidir sobre un lenguaje de programación para un proyecto.

Primero , creo que un factor importante es lo cómodo que estás con un lenguaje de programación. Si desea comenzar un proyecto serio (no por diversión), no es una buena idea desarrollar con lenguajes y herramientas con los que no es competente y con los que no se sienta cómodo. Elija algo que conozca bien, comprenda sus mejores prácticas y conozca los recursos para obtener ayuda si se atasca.

Usted mencionó que ha jugado con Java, pero aún prefiere JavaScript. Así que aborda mi primer punto. Esto significa que estás más cómodo con JavaScript, luego lo usas.

El segundo factor son las bibliotecas, los paquetes y los marcos disponibles en ese idioma para su propósito específico. Hace 10 años, si hubieras pedido a alguien que desarrollara una aplicación de servidor en JavaScript, se habrían reído de ti. Luego vino Node.js, y se está volviendo más y más popular. Hace 5 años, si hubieras pedido a alguien que desarrollara una aplicación móvil en JavaScript, se habrían reído de ti. Luego vino Córdoba y la jónica. Lo mismo con la aplicación de escritorio, pero luego vino Electron. En todo caso, JavaScript se está volviendo más y más popular, y la comunidad lo está mejorando constantemente, tanto el idioma como las bibliotecas disponibles. Incluso Microsoft desarrolla su código de Visual Studio multiplataforma en JavaScript (sorprendentemente una gran aplicación de Microsoft).

Ni siquiera mencioné bibliotecas geniales para la programación del lado del cliente como Angular y React. Creo que hay muchas bibliotecas y marcos excelentes disponibles para ayudarlo en casi todos los aspectos de un proyecto. Nuevamente en este punto, confíe en el uso de JavaScript.

El tercer factor es el desarrollo y las herramientas de depuración disponibles. Estoy de acuerdo en que, hasta hace pocos años, la depuración de proyectos de JavaScript grandes o medianos era muy difícil y consumía mucho tiempo. Pero hay varios IDE excelentes (por ejemplo, VS Code) y herramientas de depuración (por ejemplo, Chrome Dev Tools) que te ayudarán a depurar fácilmente tus programas. A medida que las necesidades y los casos de uso de JavaScript evolucionaron, lo mismo sucedió con sus herramientas y entornos de desarrollo.

Si se asegura de seguir las mejores prácticas y utiliza tales herramientas, puede desarrollar en JavaScript similar a cualquier otro lenguaje de programación moderno. Una vez más, no hay ningún problema con JavaScript.

Personalmente recomendaría aprender TypeScript (un superconjunto de JavaScript), ya que mejora aún más el propio JavaScript. También le ayuda a administrar y depurar proyectos más grandes con mayor facilidad.

Ahora, ¿estoy sugiriendo que todos deberían cambiar a JavaScript? Absolutamente no. Intenté resumir mi experiencia personal sobre cómo elegir un lenguaje de programación y convencerlo de que Javascript hoy en día es similar a otros lenguajes de programación modernos activos, y puede hacer casi las mismas cosas sin ningún problema adicional.

Varias grandes compañías, como Google, Microsoft y Facebook, están invirtiendo fuertemente en JavaScript. Obviamente, pueden iniciar una transición lenta a otro lenguaje de programación si así lo desean, ya que controlan los pocos navegadores que existen, pero han optado por seguir con JavaScript y mejorarlo.

En general, recomiendo jugar con nuevos lenguajes de programación en su tiempo libre, explorarlos, sus comunidades y sus herramientas. Nunca sabes de lo que podrías enamorarte a continuación.

Al final del día, se trata de lo que desarrollas y de lo bueno que es, no del lenguaje con el que se desarrolla.

No puedo hablar por otros aquí, ¿ok? Por lo tanto, a continuación es una respuesta muy opinada . Sin embargo estoy tratando de ser consistente:

Con el JavaScript de hoy, puedes usarlo para todo:

  • Cree software real (Electron hizo posible tecnologías como Slack, Spotify, VSCode, Brave browser y más)
  • Cree aplicaciones móviles (React Native hizo posibles aplicaciones móviles para Facebook, Instagram, AirBnB, Leanpub y más)
  • Cree aplicaciones de una sola página (o simplemente sitios web muy dinámicos) (React está aquí para ayudar a compañías como AirBnB, Asana, Box, DropBox, IMDb, Netflix y más)
  • Cree sistemas de back-end complejos / sensibles / basados ​​en datos / rápidos (Dow Jones, LinkedIn, PayPal, Trello, Uber y más)
  • Construya robots (tecnologías como Johnny-Five, Cylon.js hicieron posible la creación de robots / IoT utilizando JavaScript)

Respondiendo a tu pregunta: ¿Qué hay de malo en eso? Nada

No soy un purista, soy un constructor. Escribo código para que sea útil para alguien. Algo que vale la pena compartir. Mi alegría en nuestra profesión es ver cómo se usan las cosas. Con JavaScript puedes hacer casi cualquier cosa. Y eso es lo mío.

Me gusta JavaScript, me gusta construir cosas. Si lo haces también, no hay nada de malo en eso. JavaScript es hermoso, mejora en cada versión y gobierna el mundo. 😉

Estás bien. Su entusiasmo lo llevará a través de cualquier deficiencia en su entorno durante mucho tiempo.

Haga tiempo para explorar otras cosas, se sorprenderá de cuántos de ellos podría enamorarse también. No hay beneficio de ser un programador monógamo.

Soy un ingeniero senior en Amazon, escribiendo código de alto rendimiento en tiempo real para nuestros juegos de PC recientemente anunciados. He trabajado como ingeniero de renderización en ensamblaje de escritura, y he comprimido los últimos ciclos en un espacio en blanco horizontal durante las últimas décadas. He escrito muchos códigos de producción, principalmente en C ++.

Anoche escribí una aplicación de validación para un nuevo flujo de datos que estoy escribiendo. 30 minutos en coffeescript + node.js + jqplot y tengo un analizador y explorador interactivo de datos de series de tiempo. Esta es mi zona de confort. Bosquejo aplicaciones y algoritmos en js todo el tiempo. WebGL, en particular, se ha convertido en un fantástico parque infantil. Para mí, es el punto óptimo entre el tiempo de iteración, la IU fácil y el soporte de biblioteca.

¿Haría cosas “más grandes” en él? Depende del proyecto. Siempre lo hace No hay manera de generalizar las características de un lenguaje de producción ampliamente utilizado, de manera que pueda decir categóricamente que es bueno o malo para todas y cada una de las tareas. Cualquiera que te diga lo contrario está haciendo proselitismo innecesariamente. Cuidado con sus consejos.

Ahora deja de preocuparte y vuelve a la creación.

Creo que es la misma pregunta que Ryan Dahl, el creador de NodeJS (Node.js), se hizo a sí mismo en 2009. Y, de hecho, su respuesta fue: no hay razón para que no pueda, y estoy tentado de decir el esta en lo correcto.

ES6 y sus extensiones (personalmente me encanta TypeScript) ahora pueden competir con un lenguaje moderno fuertemente tipado. Para el que lo ignora, ES6 introdujo la sintaxis orientada a objetos a javascript.

Tengo más de 20 años de experiencia primero en C ++ y luego en Java (pero también trabajé en algún proyecto de C #), por lo que no era un amante de JavaScript en el pasado.

En los últimos 10 años estuve involucrado principalmente en proyectos de tamaño mediano a grande como gerente de proyectos y desarrollador principal y debo confesar que en el principiante tenía muchas dudas sobre el javascript y su falta de un soporte de tipo fuerte, pero usándolo de la manera correcta De modo que debo admitir que es un lenguaje que permite escribir y leer códigos fácilmente.

Lo único que aprendí en este año 20 es que la TI no es muy diferente del resto de la vida: la ideología y las tendencias no son buenas para elegir las métricas.

La tecnología y el idioma elegidos para lograr un objetivo dependen de varios factores, y no de la experiencia del equipo. Si alguien me pide que comience un nuevo gran proyecto, probablemente sugeriré usar el lado del servidor Java y Javascript / Angular JS para el lado del cliente, pero solo porque estas son las tecnologías que mi equipo y yo podemos dominar, y ya que no lo hacemos. escriba el código para la gloria pero para alcanzar el objetivo, esta es la arquitectura en la que estaremos más cómodos y estoy bastante seguro de que haremos un buen trabajo, pero también estoy bastante seguro de que otra persona en el mundo puede hacer el mismo trabajo En Javascript tanto del servidor como del lado del cliente obtenemos un buen resultado.

Entonces, si le encanta JavaScript, nada está mal, pero estudiar es siempre una buena idea, así que si tiene la oportunidad de trabajar con otra tecnología y lenguaje, sin duda le ayudará a tener una mejor compresión del mundo de TI.

PD: Actualizo mi respuesta desde que leí esa otra oración escrita como: escribirías excel o GTA en javascript. Incluso para aplicaciones de oficina y juegos, existe una lista de aplicaciones exitosas escritas en Javscript tanto en la oficina como en el sector de juegos.

No hay nada de malo en amar a JavaScript, pero diría que hay un problema con querer usarlo con todo.

Como programador, cada lenguaje que aprendemos es como una herramienta en nuestra caja de herramientas. Sí, puedo usar un destornillador de cabeza plana para hacer pasar los tornillos, clavos de martillo (con la parte posterior del mango) e incluso cincel en un pedazo de madera hasta que se separe en dos partes, pero realmente debería usar un martillo y un martillo. Vi por esas cosas.

JavaScript es un lenguaje de script, y eso conlleva cierta sobrecarga, ya que el script se interpreta a medida que se ejecuta el programa. Para los scripts básicos y la animación de sitios web, eso realmente no es un problema, pero podría ser cuando se trata de programas con mayor uso de recursos (espero que nunca vea un navegador web completamente escrito en JavaScript, incluido el motor). Algo que se compila al código de máquina es mucho mejor para eso

Edición: se mencionó en las ediciones de la compilación JIT, donde el código interpretado se compila en el código de máquina nativo en el primer uso, y luego se conserva como código de máquina para su uso posterior, digamos, como una función que se llama varias veces. Esto lleva a velocidades casi nativas para (¿la mayoría?) Programas JIT después del inicio inicial, quizás más rápido que compilado, ya que JIT se compila en el procesador nativo. Hay una discusión más detallada en los comentarios sobre JIT en comparación con la compilación estática que debe considerarse si tiene curiosidad acerca de ese tipo de cosas.

Además, otros idiomas tienen escritura estática que genera errores de compilación (o tiempo de ejecución, aunque yo prefiero compilar) si intenta pasar una cadena a una función que espera un número. Sí, la función puede verificar si la cosa pasada es un número, pero eso es mucho código adicional cuando se multiplica sobre un proyecto grande y solo necesitas olvidarlo una vez. Lo mismo if (obj.hasOwnProperty(“prop”)) {} con if (obj.hasOwnProperty(“prop”)) {} .

Puedes encontrar otras rarezas extrañas de JavaScript en esta publicación del blog. En serio, léelo. Es fascinante.

JavaScript, las partes extrañas

JavaScript no es la bala mágica de la programación, y te animo a que aprendas más que solo ese idioma. Animaría a cualquiera que sepa un solo idioma a aprender uno nuevo.


Siento que debería aclarar. No odio JavaScript. De hecho, fue el primer lenguaje que utilicé. Escribí una aplicación usando Node.js una vez. Escribí una biblioteca de JavaScript de tamaño decente en una pasantía. Tiene usos. Simplemente no en todas partes.

No creo que haya nada malo en amar a JavaScript. Demonios, me gusta mucho JavaScript para la mayoría de las cosas, especialmente cuando también usas Node / Express para el servidor. Hace las cosas realmente fáciles, hasta que no lo hace.

Primero, si está usando mucho JS en la parte delantera de un proyecto a escala de producción, probablemente se encuentre con problemas en los que su código no se ejecuta de la misma manera en IE vs. Firefox vs. Safari vs. Chrome. Realmente no podemos culpar a JS por la implementación inconsistente de los estándares web, pero no obstante, hace que escribir algo que funciona de la misma manera en todos los navegadores sea más difícil. Claro que jQuery existe para resolver parte de este problema, pero estas inconsistencias también hablan de llevar partes de la lógica de la aplicación al servidor para que podamos garantizar un tiempo de ejecución consistente.

Por un tiempo, me quedé impresionado con todo el apoyo de la comunidad de NPM, y sentí que era lo mejor desde que me corté el pan, hasta que empecé a trabajar con Python. El mismo gran espíritu de código abierto que se encuentra dentro de la comunidad JS está vivo y bien con todos sus otros lenguajes de programación importantes. Además, hay cosas que puedo hacer con Python que no soñaría hacer con JS, como la manipulación de imágenes, el análisis de datos, el procesamiento de lenguaje natural.

Como desarrollador, debes mirar los diferentes idiomas que conoces como herramientas en tu caja de herramientas. Si lo único que tiene a su disposición es un martillo (JS), entonces tratará todo como un clavo. Y, claro, usted podría usar un martillo realmente bien y aun así hundir un tornillo en la madera con suficiente persistencia, pero al hacerlo, pierde muchos de los beneficios de usar un tornillo en primer lugar, una mejor adherencia, más resistente, etc. .

Hay muchos carpinteros que solo usan clavos, pero cuantas más herramientas tenga en su caja de herramientas, mejores serán las soluciones que puede construir para soportar diferentes entornos. No hay nada de malo en que te guste algo, pero no dejes que tu admiración por algo te engañe haciéndote creer que es lo mejor que puedes hacer con X.

Nada. (:

Es simple, eficiente, su estructura interna elimina muchos problemas, como muchos de los que surgen en los subprocesos múltiples al mismo tiempo que ofrece la mayoría de los beneficios de los subprocesos múltiples, y su sencillo conjunto de piezas se puede combinar en una amplia gama de formas que puede construir estructuras y funcionalidades mucho más complicadas incluso dentro del propio lenguaje, sin complicar demasiado las cosas.

Dicho esto, aunque es realmente bueno en pequeños fragmentos de código y aplicaciones, es muy torpe en la construcción de aplicaciones de tamaño mediano a grande. Lo que no es algo malo, en mi mente; Personalmente, opino que las aplicaciones más grandes y monolíticas deben seguir el camino del dinosaurio. Piense en ello: ¿desea una navaja de bolsillo del tamaño de una caja de herramientas con herramientas personalizadas y adjuntas que solo le permiten trabajar con tornillos y clavos y los que se han creado específicamente para ella, o desea poder comprar / pedir prestado / usar? Destornilladores y martillos de cualquier empresa, ¿y no los tiene adheridos a nada más? La World Wide Web y la Internet de las Cosas son solo dos de las muchas formas en que las aplicaciones monolíticas se extinguen, se sustituyen por agrupaciones y redes de aplicaciones de herramientas pequeñas e individuales, y debido a que es donde JavaScript prospera, se destaca. y es poco probable que desaparezca pronto. Agregue a eso el hecho de que es increíblemente fácil implementar su funcionalidad principal, y que casi todos los dispositivos del mundo ahora lo admiten …

Una de las principales objeciones que tienen los programadores tradicionales es una de sus mayores fortalezas: la tipificación de pato. Los programadores están demasiado acostumbrados a ser fanáticos del control, y se enfocan en cada detalle de último minuto, en parte porque se los exigía en el pasado por razones técnicas, y en parte porque la mayoría no se da cuenta de lo extremadamente frágil que hace este código. Javascript obliga a los programadores a lidiar con el desorden del mundo real, y lo hace de una manera que, en su mayor parte, si realmente entienden el estilo de codificación y no intentan forzarlo a ser frágil al tratar de definir cada detalle, Sobre todo cuida de sí mismo.

Podría seguir y seguir … Pero en general, encuentro que en casi todos los casos, a las personas que no les gusta Javascript no les gusta porque: 1) En realidad no lo entienden, pero creen que sí, o 2) Están tratando de obligarlo a hacer algo de una manera que no debería ser, o ambas cosas.

En primer lugar, nadie puede decirte que está mal que ames algo. Tu amar algo es tu propio negocio.

En segundo lugar, no puedes hacer * todo * con JavaScript. No puedes escribir controladores de dispositivo con él, por ejemplo. No puede escribir cosas que suceden para usar otra cosa para las secuencias de comandos (por ejemplo, Lua). No puedes escribir aplicaciones nativas de Android sin algún soporte de Java. Lo mismo para las aplicaciones de iOS. Y así. Sin embargo, para la mayoría de los intentos y propósitos, puedes usar JS en cualquier lugar.

¿Saber * solo * JS es algo bueno? Yo diría que no. JavaScript no es un idioma de todos los idiomas, a pesar de su popularidad. Hay tantos otros lenguajes que hacen tantas cosas de manera diferente (Erlang, Java, OCaml, Lua, LISP, solo por nombrar algunos). A veces escoges un nuevo idioma y tu mente queda arrastrada por una sola característica. Entonces te das cuenta de que realmente puedes aplicar eso a JavaScript, y tu mente se vuelve loca de nuevo.

No hay nada de malo en amar a Javascript, en absoluto. Hay muchos aspectos negativos en la mayoría de las respuestas, pero no proporcionan los puntos positivos.

Primero el principal. Javascript tiene su programación. Esto es genial, es una entrada fácil a la programación, todo lo que necesita es un editor de texto y un navegador, y puede ver resultados inmediatos. Intenta eso en la mayoría de los otros idiomas.

Javascript me parece bastante expresivo. La noción de pasar cosas como funciones como argumentos no suele ser intuitiva o fácil en muchos idiomas. Desde el principio, tiene una sensación diferente de cómo la mente resolverá un problema y, junto con su fácil acceso al aprendizaje, es algo bueno.

Así que muchas personas pueden decir que forman malos hábitos, pero en realidad creo que forman algunos buenos, en términos de sentir la flexibilidad y el control de un idioma.

Claro, no irías a programar un sistema bancario en Javascript, pero ¿quién quiere hacer eso? Diviértase con el idioma, y ​​en algún momento se encontrará con otros idiomas para aprender, y en ese punto, comprenda por qué prefiere usar ese nuevo idioma para ese problema en particular.

Si quieres hacer una prueba de automatización sabiendo que Javascript es un gran activo:

  1. Selenium Webdriver (aplicaciones web): utiliza Node.js como lenguaje de scripting
  2. Apache JMeter JVM (Pruebas de carga): la clase pública JavaScript se extiende. AbstractFunction se puede usar para ejecutar Javascript de vainilla
  3. Postman (REST API Testing): usa Javascript de vainilla
  4. SOAP-UI (REST & SOAP API Testing): usa Javascript de vainilla
    4.A. LOAD-UI (Load Testing): integración en SOAP-UI
  5. Appium (Pruebas de automatización de aplicaciones móviles): usa vainilla Javascript
  6. Cucumber (Prueba de aceptación de Automet escrita en estilo de desarrollo impulsado por comportamiento): utiliza Cucumber.js, pero yo prefiero a Gherkin

Ahora la mayoría de la gente dirá que para Selenium Webdriver y Apache JMeter, debe usar Java (o incluso C #) en lugar de Javascript y para Cucumber debería Gherkin.
Echemos un vistazo a dichos reclamos:

Primero, Javascript es el idioma que ganó internet:
– Cada desarrollador de Full Stack xx (Web) sabe que Javascript funciona en todos los navegadores
– Los desarrolladores de Full Stack MEAN conocen el lado del cliente con Javascript y el lado del servidor
– Los desarrolladores front-end también tienen que saber Javascript, además de HTML y CSS

Así que la mayoría de los desarrolladores (deberían) saber Javascript

En segundo lugar, si crea una configuración de automatización de prueba en un cliente, intente introducir un idioma que no sea el lenguaje de desarrollo principal del proyecto y ver qué tan bien se reducirá.
Sin embargo, el punto 1 (todo el mundo sabe Javascript) evita este problema

En tercer lugar, la automatización de pruebas es solo una parte de todas las tareas que un probador de software / Ingeniero de control de calidad debe realizar para hacer su trabajo correctamente, por lo que la mayoría de las veces tenemos que especializarnos en 1 lenguaje de programación / scripting, por lo que elegir Python, Java o C # sobre Javascript limitaría nuestra base de clientes (vea el punto 2: introducción de un lenguaje de desarrollo primario que no sea de proyecto)

Si utiliza un enfoque estructurado y correcto para el desarrollo en Javascript, es un gran lenguaje. Si no utiliza un enfoque estructurado y correcto, Javascript se convierte en un lenguaje disfuncional, pero eso también será cierto para C ++, Java, Python, COBOL, C # y cualquier otro lenguaje de programación.

Nada. Aunque, no tengo idea de cómo alguien puede amar un lenguaje de programación.

Puedes amar las abstracciones, las herramientas bien diseñadas o las ideas ingeniosas. Un idioma que no tiene nada de especial (excepto que es el único idioma que se ejecuta en el navegador) no puede ser amado “solo porque”.


No puede usar JS para todo simplemente porque no hay suficientes herramientas (bibliotecas) en JS que le permitan alcanzar su objetivo.

Por otro lado, puede crear un servicio sencillo de REST API que utilice la biblioteca en su idioma de destino para que lo consuma su sistema JS, lo que le permite utilizar su entorno JS para lograr un objetivo, que era casi imposible (en un tiempo razonable) sin JS.


En general, puedes amar a JS. Pero también debe probar los idiomas de la familia Lisps y ML porque saber que un solo idioma se vuelve aburrido con el tiempo.

Probablemente voy a recibir mucha mierda de programadores serios aquí, pero como un chico de la vieja escuela diré esto:

No hay nada de malo en JavaScript … siempre que entiendas:

  1. Es solo eso: un lenguaje de scripting (muy) de alto nivel, ejecutado desde un intérprete, no compilado (a menos que estemos hablando de Node.js pero ese es un tema diferente)
  2. Debería estar al 100% en su cinturón de servicios, pero NO debe ser su idioma principal.

Si aún no lo ha hecho, obtendría una sólida comprensión de una lengua materna como C o Java para que pueda comprender cómo funcionan las lenguas en el núcleo. Cada desarrollador debe usar la herramienta adecuada para el trabajo. Tener un buen conocimiento de muchos idiomas y conocer sus beneficios e inconvenientes. Esto te hará un programador invaluable. No es tan desalentador como suena. Una vez que entiendas lo básico, todo es solo sintaxis y bibliotecas.

Por cierto, ¿ya enseñan diseño de compiladores en la escuela?

Douglas Crockford siempre habla de las partes buenas de JavaScript, y por qué debemos evitar las partes malas, y con razón. Una base de código de JavaScript grande puede ser una pesadilla para asumir. Este es un problema generalmente con lenguajes dinámicos.

Con los lenguajes estáticos es mucho más fácil trabajar con una base de código grande, y es más extensible y estable. JavaScript no tiene esa extensibilidad o estabilidad.

Además, JavaScript es un lenguaje interpretado . Como tal, las aplicaciones que requieren recursos escritos en JavaScript son más lentas que las aplicaciones escritas en C y C ++ y compiladas en código de máquina.

Además, me gustaría señalar que no es atractivo profesionalmente cuando las personas expresan su apego emocional para determinados tipos de tecnología. Si te mueves en círculos profesionales y dices cuánto amas JavaScript, en el mejor de los casos te verás inmaduro y, en el peor, puedes inspirarte a la burla.

El principal problema con JavaScript es que no es para todos los gustos.

Desde sus inicios ha estado bajo una enorme presión para convertirse en otra cosa. Se forjó en pocas semanas, se implementó de forma masiva sabiendo que no era lo suficientemente maduro, se secuestró para lograr lo imposible e infinitamente “mejorado” con nuevas bibliotecas y preprocesadores que nunca lograron ponerse de acuerdo entre sí. JavaScript ha sido un experimento continuo para descubrir qué se puede hacer en la web. Y como cada experimento, está hecho para ser reemplazado continuamente por una nueva versión de sí mismo.

Esto puede ser emocionante hasta que ya no lo sea, hasta que te das cuenta de que has pasado muchos años trabajando arduamente para mantenerte al día con una bestia en evolución y te has perdido otros aspectos más sólidos de tu experiencia. Es el tipo de lenguaje que une a sus profesionales con los aspectos más volátiles de la programación.

Me gusta JavaScript. No creo que deba ser el mejor lenguaje para ser lo suficientemente bueno en lo que hace, pero sé que pasará porque eso es lo que ha estado haciendo durante las últimas dos décadas. Ya sea que sea reemplazado por un nuevo motor o terminemos interactuando con el navegador a través de una nueva pila llena de herramientas y bibliotecas de opinión, es solo una cuestión de semántica.

¿Qué hay de malo en amar a JavaScript? Nada, excepto que el amor de tu vida cambiará y pasará a otra cosa, dejándote solo con el equipaje viejo que nadie podría preocuparse.

No hay nada de malo en ello. Pero aprovechando algunos conceptos de lenguajes de programación como C, C ++ o incluso el favorito de código abierto recientemente doblado, Elixer te ayudará a recorrer un largo camino con un desarrollador de JavaScript.

JavaScript es un lenguaje muy indulgente y en realidad espera que los usuarios finales cometan errores e intenten corregir automáticamente los malos hábitos para que nunca lo sepan, ya que simplemente funciona.

Por ejemplo, tratar de usar una variable no declarada sin ‘uso estricto’ funcionará, sin embargo, en cualquier otro lenguaje de programación, por supuesto, esto generaría un error al tratar con la CPU, la memoria RAM con C y debe cuidarlo usted mismo. . Con JavaScript, los datos se almacenan automáticamente y no es necesario limpiar después de ti mismo para mantener la referencia de los punteros a las direcciones que tienen el valor real.

En otras palabras, JavaScript es excelente, porque hace la vida mucho más fácil porque abstrae muchas cosas, por lo que no tiene que preocuparse, pero JavaScript es malo porque hace la vida mucho más fácil porque abstrae muchas cosas, así que no tienes que preocuparte

No hay nada malo con JS. JS está en todas partes y está aprovechando el poder para construir la web para más personas. El lenguaje tiene sus defectos y belleza como cualquier otro lenguaje de programación.

La mayoría de los lenguajes de programación “se pueden usar para todo”, es decir, son Turing-completos. Pero tienen diferentes estilos de hacer las cosas, correspondientes a diferentes formas de abordar los problemas mentalmente.

“¿Por qué no puedo usar JavaScript para todo?”

OS.js es una implementación de escritorio web JavaScript para su navegador con un administrador de ventanas completo, API de aplicaciones, kits de herramientas GUI y abstracción del sistema de archivos.

Este escritorio web ha sido codificado 85.8% en Javascript.

Fuente de la imagen: os-js / OS.js

¿Hay algo más que JavaScript no pueda hacer?

También programo en la web usando JS. Creo que es una gran herramienta para mi área de enfoque, que es la web. Estoy familiarizado con la mayoría de los “lenguajes” con scripts en la web y estoy tratando de aprender otros lenguajes que probablemente sean los primeros en hacer que mi machismo de programación aumente. Y en segundo lugar para entrar en el desarrollo del juego (tal vez). Pero si mi pan y mantequilla están hechos en la web y puedo alcanzar o superar mis metas de empleo y carrera financiera, entonces dispersar mi enfoque para cubrir todos los otros idiomas solo para sentirme más como un verdadero “programador es realmente” secundaria “.

Encontré esto porque tenía una sensación similar de querer usar JavaScript simple en lugar de PHP para hacer algo en un proyecto en el que estoy trabajando y quería conocer los riesgos de seguridad involucrados.

Vi el video y tenía mucho sentido para mí. Podía decir cómo saldría el código antes de que se lo dijera a la audiencia. Sabía qué funcionaría y qué no. Y en última instancia, me alegro (como en la otra publicación acerca de no ser JS avergonzado), aprendí primero los idiomas web. Siento que estoy aceptando más una declaración como:

int varName = 5;

que utiliza una tipificación estricta de datos, entonces estaría tratando de desprogramar mi mente para lidiar con un sistema de tipificación de datos completamente abierto como JS después de conocer primero la estructura.

Me arriesgo a tener un momento Yoda. Estoy tratando de comprender todas las partes de esta cultura sin fin de tecnología.

A +, red, seguridad, lenguajes de programación infinitos, Android ide (Droidscript with JS).

Esta es mi nueva perspectiva. Como el arte. (primer amor) la web es mi lienzo: JS, PHP, Dhtml, etc. son mis herramientas y, por supuesto, miles de millones, incluidos algunos de estos mismos tipos, son mi público.

Yo creo arte. Yo no fabrico la pintura. Yo no creo los pinceles ni el lienzo. Pero utilizo todas estas herramientas para crear lo que el público ama.

El dominio de las herramientas que conozco trae el aplauso. Aprender nuevas herramientas / trucos mejora el rendimiento. Pero más que cualquier otra cosa, debo recordar jugar siempre con el público, no con los fabricantes.

Hombre, es muy difícil escribir esto sin parecer un verdadero gilipollas.

Yo diría que * puede * usar JavaScript para todo si quisiera, pero cada vez que lo use, sería un error.

En la web, JavaScript no es opcional, es el único idioma disponible, pero en otras partes, por supuesto, hay muchas alternativas. Entonces, ¿podemos mirar a JavaScript y decirnos a nosotros mismos, “He experimentado las alternativas y creo que JavaScript es la mejor opción”? No creo que podamos.

JavaScript es un lenguaje realmente malo, pero incluso si no lo fuera, ¿es el mejor para un escenario dado? No, no es.

Puedes usar JavaScript para todo, si lo deseas, pero estarías usando el idioma equivocado cada vez.

Cuando solo conoces un idioma (o solo conoces uno bien ), entonces es fácil relacionarse emocionalmente con un idioma y querer defenderlo, y si es el único que conoces bien, entonces no hay un punto de comparación. .

Si un principiante ama JavaScript, eso es normal. Si un programador experimentado con décadas de experiencia ama JavaScript, es inexplicable.

Si te encanta JavaScript y quieres usarlo para todo, no dejes que te disuade. Sin embargo, si te dejo con algún consejo, diría, no permitas que tu apego emocional a JavaScript enturbie tu juicio.