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

La economía de la mayoría de los dispositivos integrados es bastante diferente de los mundos de TI más típicos. Los proveedores de dispositivos pequeños no tienen la opción de actualización continua, y a menudo dependen de la venta de grandes cantidades de sus dispositivos para obtener bajas ganancias de nivel de unidad en cada dispositivo. Por lo tanto, es importante mantener el precio de cada artículo en la lista de materiales del dispositivo lo más bajo posible.

Entonces, en estos entornos, el enfoque de “productividad del programador über alles” que domina la mayoría de los entornos de software termina siendo reemplazado por “hacer que el software funcione con la configuración de hardware más barata posible”.

Tenga en cuenta que los costos iniciales de ingeniería en estos dispositivos es un costo único, mientras que la lista de materiales se paga en cada dispositivo.

El uso de lenguajes de programación más “caros” simplemente aumentará el perfil de gastos para estos dispositivos, sin mucha ventaja competitiva, por lo que los lenguajes que son “amigables para el dispositivo” continuarán siendo utilizados, a menos que se entregue un valor profundo al cliente mediante el uso de más procesadores y lenguajes que requieren RAM.

El abaratamiento de la Ley de Moore probablemente no cambiará mucho esto, ya que todos los vendedores de un dispositivo en particular están compitiendo básicamente con las mismas listas de materiales. Si un proveedor tiene un perfil de costo unitario más alto, ese proveedor ganará menos dinero y entregará un producto menos exitoso en el mercado.

C / C ++ es la elección de la industria si planea desarrollar sistemas desde la prueba de concepto hasta la producción real.

Por otro lado, si recién está comenzando a explorar el increíble mundo de los sistemas integrados que provienen del paraíso de los idiomas de alto nivel, ya hay personas trabajando para eso. Por ejemplo, existe MicroPython – Python para microcontroladores y Espruino – JavaScript para microcontroladores. Aunque personalmente no los he probado (prefiero construir mi samurai habilitado para wifi desde C), se ven realmente prometedores.

En la mayoría de los microcontroladores, sus únicas opciones reales son C y C ++ (para las más avanzadas).

Esos dispositivos están diseñados para ingenieros profesionales, no para principiantes. Siempre intentan darle la mayor funcionalidad al precio más bajo (que es lo que más le importa a la mayoría de las empresas), y la facilidad de programación es una prioridad bastante baja.

Hay algunas personas que experimentan con plataformas IoT que se pueden programar con lenguajes más “amigables para los novatos”, pero en realidad son más como juguetes y herramientas de enseñanza. No los verá acostumbrarse a ningún producto. Es mucho más barato para las compañías contratar a alguien que sepa lo que están haciendo para programar en C / C ++, que gastar $ 2 adicionales en cada dispositivo que venden para poder programar en Python.

La programación de dispositivos integrados es mejor dejarla a personas con habilidades reales, ya sabes. No quiero pagar un buen dinero por alguna basura medio programada por algún principiante de Python o Java. Ya ha habido demasiada destreza en la industria del software, lo que resulta en el bloatware propenso a fallas de hoy. Así que seguramente espero que los dispositivos integrados permanezcan con C. De hecho, creo que cualquier persona a la que se le permita trabajar en ellos primero debe aprobar un examen en Assembler, solo para asegurarse de que comprenda adecuadamente lo que está haciendo.

No, voy a tener que darle la mala noticia de que si no desea dominar C, entonces probablemente no tendrá una carrera profesional en sistemas integrados.

No se trata de argumentos emocionales o “mi lenguaje es mejor porque …”. Se trata de hechos técnicos duros y consideraciones comerciales.

Lea mi respuesta a esta pregunta, le dirá por qué:

¿Qué se necesitará para matar C / C ++? ¿Se puede imaginar un futuro algo cercano en el que se reduzca el propósito de C / C ++?

OP debería revisar Labview. Es el rey cuando se trata de programar chips y controlar hardware. Sin embargo, el costo de la licencia es prohibitivo.
En cuanto a la pregunta real, ciertamente no en el futuro cercano, pero dentro de diez años, creo que la mayoría de los graduados de CS pensarán en C como ahora piensan en Fortran o Pascal (desdén e indiferencia).
Tendrán herramientas que les permitirán ignorar el lenguaje por completo.

Sí, eventualmente serán programados en instrucciones de CPU nativas (lenguaje de máquina) por otras computadoras.

C no va a desaparecer en ningún momento en el futuro cercano.

Si C es difícil depende de su perspectiva e historia. Si tiene experiencia en diseño de hardware digital, entonces el “por qué y qué es” de C es obvio.

Si tiene la intención de trabajar en el espacio de IoT, particularmente en el lado del dispositivo, de todos modos necesita esa experiencia de hardware. Recoge eso. Es importante entender qué es apropiado cuando.

Diría que es muy probable que C permanezca en el espacio incrustado durante bastante tiempo. El único competidor real y prometedor es Mozilla’s Rust. Creo que llevará mucho tiempo que Rust se extienda en los sistemas integrados.