V8 é o nome do mecanismo JavaScript que alimenta o Google Chrome. É o que pega nosso JavaScript e o executa enquanto navega com o Chrome.
A V8 fornece o ambiente de tempo de execução no qual o JavaScript é executado. O DOM e as outras APIs da Web são fornecidas pelo navegador.
O legal é que o mecanismo JavaScript é independente do navegador em que está hospedado. Esse recurso-chave permitiu o surgimento do Node.js. O V8 foi escolhido para ser o mecanismo que alimentava o Node.js em 2009 e, à medida que a populariedade do Node.js explodiu, o V8 se tornou o mecanismo que 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 browsers que tem suas próprias engines JavaScript:
- Firefox tem o SpiderMonkey
- Safari tem o JavaScriptCore (também chamado de Nitro)
- Edge foi originalmente baseado no Chakra mas teve recentemente um reconstrução usando o Chromium e o motor V8.
Há muitos outros além desses.
Todos esses mecanismos implementam o padrão ECMA ES-262, também chamado de ECMAScript, o padrão usado pelo JavaScript.
O V8 é escrito em C++ e é continuamente aprimorado. É portátil e roda em Mac, Windows, Linux e vários outros sistemas.
Nesta introdução ao V8, vamos ignorar os detalhes de implementação do V8: eles podem ser encontrados em sites mais confiáveis (por exemplo, o site oficial do V8 e que mudam com o tempo, muitas vezes radicalmente.
O V8 está sempre evoluindo, assim como os outros mecanismo JavaScript existentes, para acelerar a Web e o ecossistema Node.js.
Na web, há uma corrida por desempenho que vem acontecendo há anos, e nós (como usuários e desenvolvedores) nos beneficiamos muito dessa competição porque temos máquinas mais rápidas e otimizadas ano após ano.
O JavaScript é geralmente considerado uma linguagem interpretada, mas os mecanismos JavaScript modernos não apenas interpretam o JavaScript, eles o compilam.
Isso vem acontecendo desde de 2009, quando o compilador JavaScript SpiderMonkey foi adicionado ao Firefox 3.5, e todos seguiram essa ideia.
O JavaScript é compilado internamente pela V8 com compilação just-in-time (JIT) para acelerar a execução.
Isso pode parecer contra-intuitivo, 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 em execução 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ário ou scripts simples.
Neste novo mundo, compilar JavaScript faz todo o sentido porque, embora possa demorar um pouco mais para ter o JavaScript pronto, uma vez feito, ele terá muito mais desempenho do que o código puramente interpretado.