‹ BackHN Continuity

Thread

Goose Programming Language

54 points · 69 comments · bobbydigitales

  1. backlands · · focus · HN ↗
    > Goose looks familiar like C or Rust, and is built on one idea: there is no heap

    So it looks like it restricts the memory management to 100% scope based. I expect that makes a lot of designs for programs not translate to it as well as they fit in Rust or Java (for example). There are a bunch more constraining design choices they list further down:

    > - Nothing ever moves

    > - ... A string, an array of strings, a record with variable-size fields and an array of those records are each one contiguous block with no pointer in it

    I'll have to look a bit deeper to decide if it's feasible to write many things in this language.

    1. bobbydigitales · · focus · HN ↗
      What kinds of things do you think might not translate well?
      1. tombert · · focus · HN ↗
        Not the OP, but I'm thinking about like closures?

        Say you wanted to make a Node.js framework with callbacks that react to an event. The callback might be a closure that captured some of its surrounding variables. At that point, any of the captured variables are not trivially stack-allocated.

        You might be able to do something similar to what Rust does with moving though.

        1. jandrewrogers · · focus · HN ↗
          Typically you would construct this state in statically allocated memory. A lot of systems work this way. Dynamic heap allocation isn’t the only alternative to stack allocation.
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.