Why change v8 to spidermonkey in mongodb js engine?

Hi @anlex_N,

The JavaScript engine is only used in limited contexts. You can learn about the server source code without ever touching the code for the embedded JavaScript engine.

If you are learning about the server source code, I would focus on a specific area or subsystem of interest. Working with the source code for a large project is more like reading short stories than sitting down with a novel where you read every chapter.

I think you may be referring to the MongoDB C++ Driver which supports C++11 or newer.

The definitive information for the server source code is on GitHub (mongodb/mongo). You can find the prerequisites (which may vary for major release branches) in docs/building.md. The current requirement is C++17, which is the most recent ISO standard before C++20.

The build requirements for a mature product with an established codebase and many supported platforms cannot change as quickly as the latest language features, but the platform team does evaluate the benefits (and risks) of upgrading to newer prerequisites at the appropriate time.

C++20 has been in development for a few years, but the language standard was only approved in Sept 2020 and published by ISO in Dec 2020. Adopting a new language standard also requires compilers with feature support, and many still only have partial/experimental C++20 support at this stage.

I wish you luck in your further studies but I believe your original question on choice of JavaScript engines has been thoroughly addressed now.

Regards,
Stennie