¿Podría JavaScript ser el lenguaje elegido para los sistemas integrados?

Depende.

Si su dispositivo integrado implica muchos problemas de conectividad, por ejemplo, suscríbase a mensajes de otros dispositivos, JavaScript / Node.js tiene ventajas para los sistemas integrados. Esto se debe a que el paso de mensajes es gratuito con el bucle de eventos.

Además del bucle de eventos, es posible que JavaScript sea más fácil de aprender. En principio, solo necesita un navegador web para comenzar (los navegadores web modernos admiten conexiones Bluetooth y de puerto serie de fábrica).

En general, la cadena de herramientas JavaScript es mucho más barata para comenzar que los IDE o compiladores patentados. En lugar de pasar horas para comprender todos los problemas “complicados” del “hardware”, puede obtener bastante retroalimentación de un dispositivo que ejecuta JavaScript.

En segundo lugar, hay una gran comunidad de JavaScript, y hay posibilidades de que encuentre soluciones de otros con la ayuda de npm, el administrador de paquetes más grande del mundo.

Por último, construir robots con JavaScript puede ser interesante, porque puede aprovechar el bucle de eventos de JavaScript para interactuar con mensajes de diferentes fuentes. De esta manera, no necesita preocuparse por la gestión de hilos.

Los proyectos interesantes que admiten JavaScript fuera de la caja son Espruino – JavaScript para Microcontroladores y Tessel 2

Recojo diferentes enfoques y tableros para un nuevo libro aquí: Node.js for Embedded Systems

Posiblemente para sistemas más grandes, pero los sistemas pequeños tienen una economía extremadamente exigente, y el hecho de que necesite un intérprete bastante sofisticado para ejecutar Javascript significa que no sería bueno para esos entornos.

La “economía integrada” es bastante implacable y se vuelve más implacable a medida que los dispositivos se hacen más pequeños, por lo que cualquier cosa que agregue costos a la lista de materiales del hardware requiere un alto nivel de justificación comercial. La mayor diferencia entre “economía integrada” y “economía de TI” es que, a diferencia del “mundo habitual”, el hardware cuesta mucho más que la ingeniería para la mayoría de los dispositivos integrados, por la sencilla razón de que el BOM se paga en cada dispositivo, mientras que el código para que un dispositivo se escriba, y se pague = solo una vez, y para dispositivos pequeños, en particular, nunca cambia después de que se envía el dispositivo.

Como ejemplo, agregar $ 1 de RAM adicional en un dispositivo que tiene 10,000,000 unidades enviadas significa que el fabricante tiene que pagar $ 10M adicionales, lo que paga mucha ingeniería, y a menos que la funcionalidad del producto sea significativamente mejorada por el extra hardware, no tiene sentido que el fabricante lo pague.

Esto es parcialmente por qué si no se usa el ensamblaje, C se usa para pequeños dispositivos integrados versus lenguajes más “modernos” que necesitan sistemas operativos más sofisticados y hardware más costoso para admitir máquinas virtuales y esas cosas. También es la razón por la cual los argumentos de “productividad del programador” no son tan atractivos en embebido como lo son en entornos de ingeniería más típicos.

En una palabra: no.

JavaScript es un lenguaje verdaderamente execrable. La única razón por la que es tan popular para el desarrollo web es porque JavaScript es el idioma nativo del navegador web.

En el espacio incrustado, y de hecho en todas partes fuera del espacio web, JavaScript tiene que competir contra lenguajes mucho mejores, como Java, Python y C. Cuando hay una elección de idioma , la gente siempre elegirá el mejor idioma.

Sin duda, algunas personas usarán JavaScript para sistemas integrados, pero nunca dominarán.

Sé poco acerca de la programación en JavaScript, sin embargo, sé que JavaScript almacena todas las variables en formato de punto flotante. Este formato para almacenar variables no es confiable debido a los errores en la aritmética de coma flotante. También sería más lento en sistemas integrados que no tienen una unidad de punto flotante. El uso de variables de punto fijo suele ser más confiable y más rápido.

Además, JavaScript es un lenguaje interpretado. Los idiomas compilados se ejecutan más rápido y más eficiente. Con el poder de la informática hoy en día, esto no siempre es un problema, sin embargo, a veces los sistemas embebidos deben tener poca potencia, lo que requiere la eficiencia de los lenguajes compilados.

Muchos dispositivos integrados no tienen unidades de coma flotante, como dijo una persona. Si son dispositivos “genéricos” que necesitan soportar varias operaciones (algo así como la forma en que las CPU Intel generales admiten muchas cosas), entonces sí pueden.

Si está hablando de interactuar con el dispositivo incorporado a través de servicios web y usar Javascript para agregar funcionalidad a la interfaz de usuario. Es probable y ciertamente posible; sin embargo, la verdadera pregunta es: ¿debería un servidor web realmente estar en este dispositivo?

Siéntase libre de enviarme un PM para obtener más información.

Javascript el lenguaje es de un solo subproceso por diseño. Esto es complicado una vez que comienzas a hablar sobre devoluciones de llamadas de eventos y demás, pero básicamente no quieres estar haciendo cosas multiproceso o concurrentes en javascript. Lo que tiende a descartarlo de la construcción de sistemas integrados.

Nunca será el idioma de elección , pero puede convertirse en un lenguaje de conveniencia , de la misma manera que Basic era el lenguaje universal en los primeros días de las computadoras personales. Al igual que con Basic, cualquier persona que busque rendimiento en el software y el respeto de sus amigos y colegas escribirá en otro idioma.

Oh si. mira estos enlaces

Marco de JavaScript para robótica, informática física e Internet de las cosas usando Node.js

Kinoma – Hacer las cosas guionables

No lo llamaría el idioma de elección para nada.

Particularmente no para sistemas integrados donde necesita cosas como hilos y garantías de rendimiento en tiempo real.

Para una cierta clase de dispositivo integrado, seguro, de hecho preferible. Estoy construyendo sobre Javascript (Node.js y compatriotas) en un par de sistemas mientras hablamos.

¿Se puede usar Java con JVM en sistemas embebidos? Sí

¿Puede JavaScript con motor V8 como VM usado en sistemas embebidos? Sí

More Interesting

¿Por qué algún software Thin Client utiliza Windows Embedded en lugar de Linux?

¿Puedo legalmente aplicar ingeniería inversa a un controlador de dispositivo propietario y lanzar un reemplazo de software de código abierto gratuito?

¿Qué debería leer un estudiante universitario para mantenerse al día con el mundo de los sistemas integrados?

Cómo hacer un retraso de tiempo en 8051 (en C incrustado) usando un temporizador / contador

¿Cómo conecto un micrófono electret a un microcontrolador para que el LED conectado a la salida del microcontrolador se ilumine cuando se proporciona una entrada de voz al micrófono?

¿Cuáles son los libros para vlsi y sistemas integrados para principiantes?

¿Qué significa exactamente un ingeniero incorporado?

¿Los sistemas integrados son parte de IoT?

Cómo escribir el código de interfaz del sensor para el microcontrolador AVR Atmega 128 en el estudio AVR

Cómo usar _crc16_update (uint16_t crc, uint8_t a) para obtener el crc de mi programa en la memoria del programa

Cómo prepararme para cumplir con el 'conocimiento de los microcontroladores y la experiencia de deseable incrustado' este requisito de trabajo cuando soy un profesional de software puro con Java y C ++

¿Se alejarán los dispositivos integrados de ser programados en C en un futuro cercano?

¿Cuáles son las tendencias actuales en prototipos virtuales?

¿Cuál es el protocolo de prueba para productos de sistemas electrónicos / integrados?

¿Cuál es la mejor manera de crear un sistema operativo de propósito único para un dispositivo integrado?