Pregunta

Inspirado por esta pregunta .

Por lo general, veo que las personas se refieren a JavaScript como un lenguaje de bajo nivel, especialmente entre los usuarios de GWT y kits de herramientas similares.

Mi pregunta es: ¿por qué? Si usa uno de esos kits de herramientas, se está cortando algunas de las características que hacen que JavaScript sea tan bueno para programar: funciones como objetos, escritura dinámica, etc. Especialmente cuando se combina con uno de los marcos populares como jQuery o Prototype .

Es como llamar a un nivel bajo de C ++ porque la biblioteca estándar es más pequeña que la API de Java. No soy programador de C ++, pero dudo mucho que cada programador de C ++ escriba sus propias GUI y bibliotecas de red.

¿Fue útil?

Solución

Es un lenguaje de alto nivel, dada su flexibilidad (funciona como objetos, etc.)

Pero cualquier cosa que se compile comúnmente puede considerarse un lenguaje de bajo nivel simplemente porque es un objetivo para la compilación, y hay muchos idiomas que ahora se pueden compilar en JS debido a su función única como el idioma de control de DOM del navegador.

Entre los idiomas (o subconjuntos de ellos) que se pueden compilar en JS:

  • Java
  • C #
  • Haxe
  • Objective-J
  • Ruby
  • Python

Otros consejos

Respondiendo a una pregunta que dice "por qué a veces se llama X ..." con " no es X " es completamente eludir la pregunta, ¿no?

Para muchas personas, " nivel bajo " y " nivel alto " Son ideas flexibles y abstractas que se aplican de manera diferente cuando se trabaja con diferentes sistemas. Para las personas que no están colgadas en el pasado (no existe tal cosa como un lenguaje moderno de bajo nivel para algunas personas) la alta o baja de un lenguaje generalmente se referirá a qué tan cerca de la máquina objetivo está es. Esto incluye máquinas virtuales, de las cuales un navegador es hoy en día. Lo siento por todos los muchachos que deseen asm en el hardware base.

Cuando ves el navegador como una máquina virtual, javascript es lo más cercano al hardware (falso) que obtienes. Ese es el punto de vista que muchos de los que llaman javascript " nivel bajo " tener. Creo que es una distinción inútil que hacer y las personas no deberían quedarse atascadas por lo que es bajo y lo que es alto.

" Bajo " Aquí tiene el mismo significado que en las oraciones " El número de víctimas sufridas en la primera guerra mundial fue bajo, " y "el helado bajo en grasa es bajo en calorías". Tiene sentido cuando hay un punto de comparación obvio, pero fuera de contexto, es simplemente absurdo.

Mucha gente dice esto porque los objetos y las estructuras provistas en JavaScript son tan simples como puedes obtener. Para desarrollar cualquier tipo de funcionalidad real, tienes que usar una biblioteca externa. Un nivel bajo es una mala forma de expresarlo, porque ya tiene un significado en ciencias de la computación. Una mejor manera de decirlo es que no tiene bibliotecas integradas.

Compare esto con Java, donde el lenguaje real realmente no hace mucho. Intente hacer una matriz sin un ArrayList, o acceda al sistema de archivos sin las bibliotecas IO. La mayoría de los idiomas son más que solo lo básico, vienen con esta funcionalidad adicional.

Con JavaScript, el único poder real que obtenemos proviene de las API introducidas por los navegadores y que no forman parte del lenguaje. Cosas como la manipulación de DOM y Ajax son suministradas por el navegador.

Puede ser mejor resumir todo esto diciendo que con un lenguaje como Java, puede comenzar a realizar un trabajo serio sin tener que descargar bibliotecas de terceros, pero con JavaScript, debe descargar una biblioteca o escribe una biblioteca propia.

No veo javascript como un lenguaje de bajo nivel. Se proporciona una gran cantidad de impulsores de funcionalidad y experiencia de usuario. Quizás otros puedan verlo como tal simplemente porque los usuarios pueden desactivarlo en las opciones de su navegador, pero es un lenguaje muy robusto que prácticamente ejecuta la web en prácticamente todos los tipos de navegadores ...

No lo es, puede que sea del nivel más bajo que se puede obtener en la programación normal del navegador, pero está a la par con lenguajes funcionales como Scheme o Python.

Creo que las grandes carencias de Javascript son la falta de espacios de nombre o empaquetado y no hay subprocesos

Es de bajo nivel en comparación con GWT y juegos de herramientas similares, pero no es un lenguaje de bajo nivel en el esquema más amplio de las cosas. Las características que ofrece son de muy alto nivel: cierres, tipificación dinámica y herencia prototípica son solo algunos ejemplos de sus características de alto nivel.

Algunas personas consideran que es de bajo nivel las que prefieren escribir java para generar javascript y luego escribir javascript (es decir, no les gusta de manera justa o injusta). Muchos se quejan de Java en estos días, pero a pesar de la falta de comprobación de tipos estáticos, la mayoría de las personas probablemente consideraría que ruby ??y python son más fáciles de escribir en la mayoría de los casos (Java es un lenguaje estático bastante simple, que es mucho más difícil de diseñar bien sin una gran compilación). -en conjuntos de características entonces un lenguaje dinámico simple).

Pocas personas dirían que Python o Ruby tienen un nivel bajo en comparación con Java, y si la gente se viera obligada a apuntar a Python o Ruby VM, es difícil imaginar que un compilador de Java a Python / Ruby se vuelva tan popular como GWT.

Para cerrar, javascript tiene un problema de imagen (las personas a veces piensan que los idiomas se vuelven más difíciles a medida que se vuelven más bajos y viceversa).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top