This is a post in a series about the Apache CouchDB 3.0 release. Check out the other posts in this series.
CouchDB has always relied on Mozilla’s JavaScript engine, Spidermonkey, for all its JavaScript needs. However, being a web browser engine, the development of Spidermonkey is many times faster than that of CouchDB, and at one point, it got rewritten from C to C++. This made our custom bindings obsolete.
And because updating custom bindings from C to C++ is neither easy, nor fun, CouchDB kept staying dependent on the now very ancient Spidermonkey version 1.8.5. The implications were as far reaching as various package managers keeping that version around just for CouchDB.
While there is nothing inherently wrong with Spidermonkey 1.8.5, JavaScript has seen a surge of changes in the past decade, and those changes are now finally available in CouchDB 3.0 and Spidermonkey 60, most notably:
- ECMAScript 6 support
- Multi-generational leap in JavaScript execution performance
Users have been asking for an update in this area for a long time, and we are happy to announce that it is finally here.
Special thanks to Peng Hui Jiang, who took the time to make this technically challenging update possible.
The Road to CouchDB 3.0 – CouchDB Blog