Goals and Philosophy
Nova goals
Nova must be gamedev
Nova has ambitions of demonstrating to the world that software stacks are grossly overcomplicated. That being the case, if Nova will be up to that task, it should be up to the task of being used as the core of video game logic, at least as much as Lua is today. As this stands, the largest current obstacles are performance related.
Nova must be distributed
As pointed out by Admiral Grace Hopper in the 80s, technology and information run on systems of computers. This has only become more true as time has passed on, and yet most languages leave the distributed case in an awkward place. Async/await help a bit, but Nova has the chance to do better here, by making systems that are always ready to wait for something, because they are already doing that.
Nova must be simple to use
Nova is meant to re-enable power users, to make conversations with computers accessible to a dramatically larger audience. Features that add complexity to Nova should be weighed against this use case. Low performance machines are a good way to help developers write higher performance code. Usability by persons with cognitive impairments (ADHD, sleepiness, dyslexia, brain fog) is a good way to judge the cognitive complexity of a language.
Nova must be impressive
The ideas of Nova already turn heads when presented to professional developers. We cannot rest on this laurel. Nova needs to demonstrate the ability to manage complexity at scale. Video games are one avenue for this, distributed systems are another.
This also means that we, as the current carriers of Nova, must remain as humble as we are ambitious, taking good faith feedback in stride, and not letting engineering, cultural or political challenges remain unaddressed.
We should be impressive like Erlang, readily documenting engineering concerns and limitations, not merely hyping ourselves up. Nova is meant to eat the software world, but no plan survives first contact with the enemy, and bad intel leaves us with gaps.
Nova philosphy
Nova is human scale
Nova is meant for the city library, for the medical practice, for the personal PIM, for the indie game dev. It's meant to allow for mixing and matching programs.
Javascript is infamously a ten day language. Nova should be, with some references, possible for any motivated professional software developer to re-implement in 10 days in their language of choice.
Nova is transparent
From storage to distribution to live state, Nova systems don't hide their internals from their operators, but also provide tools to be understood effectively.
Nova is punk
Nova will inevitably see adoption at megacorps at some level, but it should enable users and developers to divest themselves from megacorps.
As much as possible, information on Nova will be located outside the reach of Large Language Models, as they are agents of the corporations that drown us in incidental complexity.
Nova is queer
Nova is built by and for neurodivergent, queer and disabled people. We will manage our spaces to be welcoming to anyone that is willing to accept that, and will not tolerate bigotry in any form. If you don't like that, you are welcome to take your energy elsewhere.