|
| 1 | +--- |
| 2 | +title: Nova 1.0 |
| 3 | +description: Entering the major release era. |
| 4 | +date: 2026-03-15 |
| 5 | +authors: |
| 6 | + - name: Aapo Alasuutari |
| 7 | + url: https://github.com/aapoalas |
| 8 | +--- |
| 9 | + |
| 10 | +Today, Nova JavaScript engine has published its first major version 1.0.0! This |
| 11 | +marks the beginning of a new era for the engine where experimental status is |
| 12 | +shed and a relative stability and polishing takes over. This does not mean that |
| 13 | +the engine promises to stay unchanged or even that it is a perfect and |
| 14 | +fully-formed product, however. |
| 15 | + |
| 16 | +## Shortcomings |
| 17 | + |
| 18 | +First it is important to acknowledge some big shortcomings of the engine: if |
| 19 | +you're shopping around for a JavaScript engine for a big product or project, |
| 20 | +we'd be happy if you take a look at Nova as a prospective engine but it is very |
| 21 | +possible it is not the engine for you. |
| 22 | + |
| 23 | +First, the engine's performance is acceptable or even fairly good on small |
| 24 | +datasets and quick scripts, but it is _not_ a fast engine. Performance |
| 25 | +optimisations are unfortunately being shipped on a later ship, and you'll be |
| 26 | +sorely disappointed if you are looking for a V8 killer. |
| 27 | + |
| 28 | +The engine also still has some bigger gaps in its ECMAScript support: the |
| 29 | +`RegExp` object and engine especially are not specification compliant, differing |
| 30 | +on Unicode and character set matching, nor supporting lookaheads, lookbehinds, |
| 31 | +or backreferences. Arrays in the engine do not support sparse storage |
| 32 | +internally, which means that setting the `length` property of an array to be |
| 33 | +excessively large will also reserve excessive amounts of memory. Subclassing of |
| 34 | +`Promise`s also does not work, and a bug currently stops class fields from |
| 35 | +working on subclasses as well. Finally, no WebAssembly support exists at |
| 36 | +present. |
| 37 | + |
| 38 | +But if what you're looking for is a lightweight, easy-to-embed engine for |
| 39 | +running scripts on the smaller side then Nova just might be the engine for you! |
| 40 | + |
| 41 | +## Versioning strategy |
| 42 | + |
| 43 | +Entering the major version era means that SemVer rules will be followed from now |
| 44 | +on: the 1.x family will have backwards compatibility. That doesn't mean that the |
| 45 | +API of the engine won't change, however. Rather, Nova will be following a |
| 46 | +similar versioning model to V8: small, incremental breaking changes may happen |
| 47 | +relatively frequently and in that case new major versions will be published. The |
| 48 | +intent is to publish a new version roughly every few months at least, meaning |
| 49 | +that if need be then new major versions will be published every few months as |
| 50 | +well. |
| 51 | + |
| 52 | +Major versioning gives us a versioning scheme we can use to guarantee backwards |
| 53 | +compatibility with, but we do not aim to give LTS-like API stability guarantees |
| 54 | +for the foreseeable future. |
| 55 | + |
| 56 | +## Onwards! |
| 57 | + |
| 58 | +That's all I wanted to say: Nova is now in the major version era, don't expect |
| 59 | +miracles but do expect a little! Thank you for reading and see you in future |
| 60 | +patch, minor, and major releases! |
0 commit comments