¿En qué tipo de aplicaciones trabajan los programadores que trabajan con C ++ / C o sistemas integrados dado que gran parte del software ahora está basado en la web?

Escribiré aquí algunos de los proyectos más grandes e importantes, que los programadores trabajan con C / C ++ en esos días.

V8 es el motor de JavaScript de alto rendimiento de código abierto de Google , escrito en C ++ y utilizado en Chromium, Node.js y muchas otras aplicaciones de integración. V8 implementa ECMAScript como se especifica en ECMA-262. y se ejecuta en Windows XP o posterior, Mac OS X 10.5+ y sistemas Linux que usan procesadores IA-32, ARM o MIPS.

Tiempo de ejecución de JavaScript de Nodejs para el lado del servidor

nodejs / node Puede verificar una gran cantidad de C ++ en su perfil oficial de github.

Pitón es un lenguaje de programación de alto nivel ampliamente utilizado para programación de propósito general, creado por Guido van Rossum y lanzado por primera vez en 1991.

python / cpython Puede consultar el perfil oficial de github de python, Python tiene oficialmente más de 200 colaboradores y se actualiza y crece todos los días.

Puede ver una gran cantidad de código C en su base de código central.

¿Quieres crear aplicaciones de escritorio con JavaScript?

Cree aplicaciones de escritorio multiplataforma con JavaScript, ELECTRON es para eso.

Pero adivina, ¿qué lenguaje se usa para construir el núcleo ELECTRON?

C ++, por supuesto, y Python para herramientas.

Puedes verificar electrón / electron

Y es hora de hablar sobre una de las mejores bibliotecas de MachineLearning del mundo.

Que están construidos en C ++ y Python, verifique su github aquí tensorflow / tensorflow


Así que podemos escribir aquí muchos proyectos que hoy son importantes para nosotros los desarrolladores, y para el resto del mundo, pero en resumen todo lo que hay detrás de la web, dispositivos móviles, computadoras de escritorio, sistemas operativos, hardware, juegos. HAY AC y C ++.

Observe que todas esas aplicaciones web tienen backends, que se ejecutan en servidores, ¿verdad? A algunas personas les gusta llamarlas “nube” para sonar mágicas, pero todas son computadoras.

Luego tiene teléfonos inteligentes, tabletas, computadoras portátiles, etc. que ejecutan la aplicación web. También son computadoras. Además, las aplicaciones web no pueden funcionar en ningún hardware directamente. Algo debe estar interpretando todo este código. Cuando habla con una base de datos, está interactuando con una aplicación de base de datos, que se ejecuta, sí, lo adivinó, en una computadora.

Todas esas computadoras necesitan sistemas operativos, controladores de dispositivos. Luego necesitan navegadores con motores javascript, middleware, bases de datos, etc. El hecho de que no los vea no significa que aparezcan mágicamente. Miles de desarrolladores trabajan en ellos y usan lenguajes compilados como C, C ++, C #, Rust, etc.

Y aún no he comenzado los sistemas integrados. Su automóvil probablemente tiene controles de tracción automatizados, un sistema de información y entretenimiento con perillas, botones, pantalla LCD / OLED. Probablemente esté familiarizado con la puerta de seguridad en la que utiliza placas RFID. Supongo que tienes un enrutador en casa y un trabajo que te permite conectarte a Internet. Apuesto a que a veces usa ascensores, que pueden detenerse en una secuencia de pisos cuando diferentes personas seleccionan diferentes pisos al mismo tiempo, e incluso se detienen a mitad de camino para recoger a más personas. Los sistemas integrados están a su alrededor, que hacen su trabajo sin ser notados. Cuanto mejor en su trabajo son, menos piensas en ellos. Eso es por diseño.

No escribo aplicaciones. El software integrado que escribo no es una aplicación, es un controlador y una pila. Maneja hardware de módem e implementa protocolos de telecomunicaciones. Dentro del teléfono móvil promedio hay muchos millones de líneas de código dentro del módem, todas escritas en C / C ++ o ensamblador. El módem no es la GUI de Android / IOS que ves, sino la pieza de HW / SW que es responsable de proporcionar conectividad a la red móvil.

La mayoría de los programas incrustados están ocultos para que no los vea. Están en algún lugar dentro de un chip que trabaja con hardware. A menudo se usa para hacer que el hardware sea más flexible. Utilizamos una combinación de software de hardware en módems para permitirnos ser más flexibles a los cambios en los estándares móviles. A menudo, el HW se diseña antes de que se finalicen los estándares y el SW proporciona la flexibilidad. En este momento, hay muchas compañías que están diseñando módems para 5G, a pesar de que el estándar 5G aún se está acordando. El firmware trabajará con el hardware para implementar el estándar final cuando se acuerde.

Esto puede ser una sorpresa, pero los trabajos integrados y de bajo nivel C han estado en alza en los últimos años. Después de la primera ola de resolución de problemas comerciales en la nube, ahora hay una ola de escalas. Aquí hay una excelente manera de escalar su programa: escríbalo de manera rápida y eficiente en C, de modo que 40–100 usuarios puedan ser manejados con los mismos recursos que los programas de alto nivel necesitan para 1 usuario. La programación de GPU también está muy integrada.

Hay todo tipo de lugares donde se usan C y C ++. Cada dispositivo en Internet de las cosas (bombillas, electrodomésticos, seguridad, …) debe tener un programa integrado para que funcione. A menudo estos están en C o C ++.

Nosotros (programadores de C / C ++) trabajamos principalmente en el desarrollo de controladores de dispositivos, programas básicos. Los desarrollos basados ​​en la web dependen de los controladores de dispositivos de bajo nivel escritos por nosotros. Somos las personas que implementamos los protocolos de comunicación en el nivel inferior y permitimos que los chips funcionen.

La mayoría del software, visible para la gente común, tiene un dispositivo de salida llamado pantalla. La forma estándar de acceder a la pantalla es mediante algunos controladores que están “orientados a la web”. Al hacer el programa de esa manera, no debe hacer ningún cambio en el software al cambiar la pantalla. Esa es la razón por la que cree que “una gran cantidad de software ahora está basado en la web”.

Hay una gran cantidad de software que no utiliza ninguna pantalla. Cuando enciende la lámpara LED, hay algún software que limita la corriente del LED. Algunos programadores tuvieron que escribir ese software …