Nova

Languages and libraries

javascript engine

SHOW HN2024

271points
102comments
#254of 3,515 in 2024
Top 8%of 2024 by points

How HN took it

CuriousMostly questions and neutral comments

6 positive, 25 neutral or asking, 2 mixed, 9 critical, out of 42 comments about the project. Thread score -0.12.

Design: 3 for, 2 againstExecution: 1 for, 3 againstIdea: 1 for, 2 againstPerformance: 0 for, 2 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Interesting data-oriented architecture ideas

    From 2 comments
    • Thank you for the encouragement! Avoiding alignment gaps is indeed pretty great: I have a vision of packing Arrays into 9 bytes split over two or three cache lines. On typed…
      aapoalas on HN
    • Well I'll be damned! That sounds very much like what I want Nova to eventually be :) We don't have fields split apart at present, mostly because Rust doesn't make that quite as…
      aapoalas on HN

Objections

  • Heap vector reallocation and compaction during GC could cause stalls

    From 1 comment
    • It is very true that a general purpose computation can theoretically do anything and mess linearity of access patterns entirely up. But in practice programs do most of their work…
      aapoalas on HN

Requests

  • Comparison of this engine design against a traditional one

    From 1 comment
    • Well I'll be damned! That sounds very much like what I want Nova to eventually be :) We don't have fields split apart at present, mostly because Rust doesn't make that quite as…
      aapoalas on HN

Questions

  • Whether an ECS-like layout helps in practice

    From 2 comments
    • Thank you very much for your well-wishes <3 > Yes, but note this is still a different pattern of access (array of "entities"). I was referring to the `[foo, foo2, foo3]` objects…
      aapoalas on HN
    • Excellent question: In a theoretical sense the answer would be that we cannot know since it depends on the JavaScript being run. But: In practice I think that is indeed the case.…
      aapoalas on HN

Alternatives named

  • V8

    From 2 comments
    • That's a good point. The "Internals of Nova" blog posts do a bit more explicit comparisons to V8. In V8, and other production engines AFAIK, objects are variable-sized monoliths:…
      aapoalas on HN
    • V8 could probably implement the backing object "trick" with some trouble. I'm half-hoping that Nova will show it to be worth their while and that they will eventually do it. It…
      aapoalas on HN
  • Safari JavaScriptCore

    From 1 comment
    • I'm mostly just hoping it won't become necessary, though that is perhaps a vain hope. The reasoning is that, according to my interpretation of talking with some folks working on…
      aapoalas on HN
  • Ladybird LibJS

    From 1 comment
    • I'm mostly just hoping it won't become necessary, though that is perhaps a vain hope. The reasoning is that, according to my interpretation of talking with some folks working on…
      aapoalas on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/42168166)