Skip to the content.

JavaScript

🔧 Engine & VM JavaScript (V8 etc)

Lorsque vous serez plus Ă  l’aise avec JavaScript il vous sera nĂ©cessaire d’étudier un minimum le fonctionnement des moteurs modernes comme V8, JS Core, SpiderMonkey etc (ce sont eux qui ont la responsabilitĂ© d’interprĂ©ter et exĂ©cuter votre code JavaScript que ce soit dans Node.js ou mĂȘme dans le navigateur).

Ce n’est clairement pas un investissement Ă  la portĂ©e d’un dĂ©butant mais plutĂŽt d’un dĂ©veloppeur de niveau intermĂ©diaire ou expĂ©rimentĂ© 📚. Pour pouvoir mieux comprendre comment votre code sera gĂ©rĂ© et optimisĂ© il vous sera donc nĂ©cessaire d’apprendre les rouages de la machine 😈.

Parmis les articles que je vous recommande trĂšs fortement de lire:

Il existe nĂ©anmoins des dizaines d’articles tous aussi passionnants que j’ai pris la peine de rassembler ici 👀: https://github.com/fraxken/VM-Resources

Quelques talks en plus pour votre plus grand bonheur:

😡 La dangereuse mode des benchmarks

Je pense qu’il est important d’aborder le sujet des benchmarks pendant que nous sommes dans la section engine JS. Les dĂ©veloppeurs adorent les utiliser comme argument pour justifier divers choix ou idĂ©ologies 😰


Le problĂšme c’est que la plupart du temps ces benchmarks sont complĂštement ratĂ©s et/ou ne sont pas reprĂ©sentatifs d’un workload de production 😂. MĂȘme s’ils sont concrets il va vous falloir de l’expĂ©rience pour en dĂ©duire des conclusions (et encore rien ne dit que le souci vous concerne par ailleurs).

Voici quelques articles pour vous Ă©veiller au sujet:

MĂȘme si cela peut paraĂźtre difficile Ă  entendre, je pense qu’une personne n’ayant pas de solide connaissance sur le fonctionnement des moteurs JavaScript n’a pas de lĂ©gitimitĂ© Ă  formuler des conclusions Ă  partir des rĂ©sultats d’un benchmark đŸ’„.

“The hardest thing of all is to find which operation is more expensive inside the darkness of VM, especially when no operation is performed.” (Vyacheslav Egorov)

Et mĂȘme les personnes ayant beaucoup d’expĂ©rience (dont notamment les contributeurs des moteurs eux-mĂȘmes) ont toujours le doute et prĂ©fĂšrent prendre des pincettes pour chacune de leurs conclusions 😯. C’est vous dire la difficultĂ© de la tĂąche
 savoir si vous allez faire for-in, for-of ou .forEach n’a pas vraiment grand intĂ©rĂȘt ici.

“ 👉 L’optimisation prĂ©maturĂ©e est la racine de tous les maux (ou, du moins, la plupart d’entre eux) en programmation.” (Donald Knuth)


âŹ…ïž JavaScript: 🌌 Cours en ligne, talks et articles | âžĄïž ⚡ ECMAscript