O Motor JavaScript V8
V8 é o nome do motor JavaScript que alimenta o Google Chrome. É o que pega nosso JavaScript e o executa enquanto navegamos com o Chrome.
V8 é o motor JavaScript, ou seja, ele analisa e executa código JavaScript. O DOM e as outras APIs da Plataforma Web (todas juntas formam o ambiente de execução) são fornecidos pelo navegador.
O legal é que o motor JavaScript é independente do navegador em que está hospedado. Essa característica fundamental possibilitou a ascensão do Node.js. O V8 foi escolhido para ser o motor que impulsionou o Node.js em 2009, e com a explosão da popularidade do Node.js, o V8 se tornou o motor que agora alimenta uma quantidade incrível de código do lado do servidor escrito em JavaScript.
O ecossistema Node.js é enorme e graças ao V8, que também alimenta aplicativos de desktop, com projetos como o Electron.
Outros motores JS
Outros navegadores têm seu próprio motor JavaScript:
SpiderMonkey
(Firefox)JavaScriptCore
(também chamado deNitro
) (Safari)- O Edge era originalmente baseado em
Chakra
, mas mais recentemente foi reconstruído usando o Chromium e o motor V8.
e muitos outros também existem.
Todos esses motores implementam o padrão ECMA ES-262, também chamado de ECMAScript, o padrão usado pelo JavaScript.
A busca pelo desempenho
O V8 é escrito em C++ e está em constante aprimoramento. É portátil e roda em Mac, Windows, Linux e vários outros sistemas.
Nesta introdução ao V8, ignoraremos os detalhes de implementação do V8: eles podem ser encontrados em sites mais autoritativos (por exemplo, o site oficial do V8), e mudam com o tempo, muitas vezes radicalmente.
O V8 está em constante evolução, assim como os outros motores JavaScript, para acelerar a Web e o ecossistema Node.js.
Na web, há uma corrida pelo desempenho que acontece há anos, e nós (como usuários e desenvolvedores) nos beneficiamos muito dessa competição porque obtemos máquinas mais rápidas e otimizadas ano após ano.
Compilação
O JavaScript é geralmente considerado uma linguagem interpretada, mas os mecanismos JavaScript modernos não se limitam mais a apenas interpretar o JavaScript, eles o compilam.
Isso tem acontecido desde 2009, quando o compilador JavaScript SpiderMonkey foi adicionado ao Firefox 3.5, e todos seguiram essa ideia.
O JavaScript é compilado internamente pelo V8 com compilação just-in-time (JIT) para acelerar a execução.
Isso pode parecer contraintuitivo, mas desde a introdução do Google Maps em 2004, o JavaScript evoluiu de uma linguagem que geralmente executava algumas dezenas de linhas de código para aplicativos completos com milhares a centenas de milhares de linhas executando no navegador.
Nossos aplicativos agora podem ser executados por horas dentro de um navegador, em vez de serem apenas algumas regras de validação de formulários ou scripts simples.
Nesse novo mundo, compilar JavaScript faz todo sentido porque, embora possa levar um pouco mais para ter o JavaScript pronto, uma vez feito, ele será muito mais performático do que o código puramente interpretado.