Sobre a criação do NodeJS e o C/C++
O Javascript foi criado baseado no ECMAScript que não é uma linguagem, mais sim um padrão que define regras e estrutura para o Javascript, é uma linguagem que foi desenvolvida pela Netscape em 1995. O motor V8 do Google Chrome, interpretador de scripts foi desenvolvido pela equipe do Google, para interpretar o JavaScript e a biblioteca, um ambiente de execução (runtime) JavaScript server-side que utiliza a engine V8 do Google, escrita em C++. "libuv"para lidar com E/S assíncrona, permitindo alto desempenho, gerenciamento de memória e interação com o sistema operacional. Criado por Ryan Dahl em 2009, ele funciona como um ambiente de execução fora do navegador.
Qual o motivo de utilizar o C/C++? Simplesmente porque é a linguagem que tem maior dominio de um sistema microprocessado. Essa é a importância da primeira linguagem de médio e alto nível C/C++. Não precisamos nos preocupar, pois tudo isso é abstraído para o programador e muito mais ainda para o usuário.
Mais quer uma dica comece pela linguagem C/C++. Diversos programadores já tentaram criar outras linguagens mais substituir integralmente o C/C++ ainda esta um pouco além. Cartões de créditos, jogos, IA tudo tem um pouco ou muito do C/C++, todas as linguagens foram criadas utilizando no mínimo o conceito do universo C/C++, fica a dica comece a programar pela linguagem C com o paradigma estruturado, depois vá para a OO com o C++. Depois para a Web o HTML e o CSS e utilize o Java para dar dinâmica aos seus sites, irá facilitar bastante essa sequência. Para o frontend seria bom no mínimo o básico do Java e depois mergulhar no Javascript eu recomendo o React.
Principais razões e componentes:
- Motor V8 (C++): Interpreta o JavaScript e o converte em código de máquina, garantindo velocidade.
- libuv (C++): Biblioteca que gerencia o loop de eventos, Threads e operações de entrada/saída (arquivos, redes) de forma não bloqueante.
- Performance: A estrutura em C/C++ permite que o Node.js acesse recursos de baixo nível do sistema operacional, algo que o JavaScript puro não consegue fazer.