navgen.com
The Nova Programming Language

About News Features Examples Reference Download



29th October 2023  -  OpenGL ES Gears Example

An updated OpenGL ES gears example has been released today.  It also includes some new features from the forthcoming version of the runtime (V 0.10.0).



Located on the examples page (SDL2_14 [OpenGL ES Gears]).



3rd July 2023  -  OpenGL ES Colour Cube Example

An updated OpenGL ES colour cube example has been released today.  It also includes some new features from the forthcoming version of the runtime (V 0.10.0).



Located on the examples page (SDL2_13 [OpenGL ES Cube 7]).



28th January 2023  -  Version 0.9.0 Released

Version 0.9.0 of the Nova Runtime has been released.  The new developments are as follows:

    - The core nova runtime codebase is now cross platform C++ (required for
       Emscripten).
    - Working nova runtime build for Emscripten.
    - Unicode improvements (UTF-8).
    - Initial SDL2 library bindings.
    - SDL2 library example programs.
    - New “UserPtr” library class.
    - Initial Emscripten library bindings.
    - Initial OpenGL ES 2.0 library bindings.
    - New cast object to child class expression.
    - Exception handling improvements.
    - Serialised bytecode improvements.
    - "switch" statements for integral and string types.
    - Converted the Direct3D library structures to classes.
    - Deprecated "struct" value types from the language.
    - New and improved operand stack.
    - Single threaded option for Emscripten applets, by also using the main thread
       to perform the garbage collection.
    - Nova data texture example using Opengl ES.
    - Run the first loaded class with a valid main method or the first loaded applet
       class, instead of just the first loaded class.
       This improves the runtime’s versatility.
    - Nova texture examples with the relevant SDL2 bindings (png, jpg, bmp).
    - Emscripten command line arguments.
    - Improved the line number output of where a compilation error has occurred.
    - Lightweight “runtime only” build for Emscripten, which excludes the nova
       source compiler.

Freely available on the download page.



17th May 2021  -  Version 0.8.0 Released

Version 0.8.0 of the Nova Runtime has been released.  The new developments are as follows:

    - “Using namespace” declarations with the new “using” keyword.
    - “Copy object” facility to produce deep copies of objects.
    - Multithreading improvements.
    - Lots of other improvements and refinements.

Freely available on the download page.



14th May 2020  -  A Progress Update for Nova

It has been quite a long time since the last release and I wanted to give a quick update, to say I am still working on things and progress has far from stopped.  There has been a break from development for approximately five years, during this time lots of new ideas had been researched and investigated.  Then finally a couple of years ago a new idea was embraced as something really good with a lot of potential.  So the last couple of years has been spent developing this idea into a solid design. 

Therefore, at the moment I just want to say Nova is very much alive and well and I am working in the background for the next release.  As there has been a lot of design work going on and development work is just starting, there will not be a release in the short term.  But I aim to give more frequent updates on what is happening. 

So work is continuing on The Nova Programming Language / Runtime plus a new and exciting project that will become a very substantial part of it. 

Stay tuned!



31st March 2013  -  Version 0.7.0 Released

Version 0.7.0 of the Nova Runtime has been released.  The new developments are as follows:

    - Exception handling capabilities have been added to the runtime.
    - New language keywords: try, catch, finally and throw.
    - Created the initial exception library classes.

Freely available on the download page.



31st December 2011  -  Version 0.6.0 Released

A significant amount of work has been performed on the Nova compiler.  The changes are mostly internal, but these restructuring improvements provide many benefits.  Like a much improved architecture, better performance and much more potential for future software developments.

Sixty new C++ classes were added to the compiler, a lot of existing code was very carefully reorganised, with also numerous extra improvements added along the way.  The new code has been written to maximise the performance strengths of using the powerful C++ programming language, as Nova is heavily based on this amazing language.  The time spent on this update should make a worthwhile investment for the long term future of the project.

Freely available on the download page.



13th November 2011  -  Browser Plugin Bug Fix

A quick bug fix has been applied to the browser plugin (NPAPI). This now allows the plugin to work properly with Firefox 4 and above, in particular when loading applets which have multiple classes.

Freely available on the download page.



1st June 2011  -  A Quick Progress Update

During the last few months, a lot of restructuring work has been performed on the original Nova compiler, which was the first code to be written for the project, back in early 2002.  A lot has been learnt since then. 

Therefore in the next release sometime in the next few months, we should have a second generation Nova compiler. 

The improvements should be much faster performance plus an even better foundation for future developments, due to its improved internal architecture.



1st June 2010  -  Version 0.5.1 Released

The eighth public release, seven years to the day after the first release, we have Version 0.5.1 of the Nova Runtime.  The new developments are as follows:

    - Windows x64 compatibility update.
    - Improvements for nova.exe command line arguments.

Freely available on the download page.



10th January 2010  -  Version 0.5.0 Released

Version 0.5.0 of the Nova Runtime has been released.  The new developments are as follows:

    - New Nova Runtime XML class file format.
    - novac compiler binary for creating Nova XML class files.
    - Runtime can deserialize and run multiple XML class files.
    - Browser plugins can download and run multiple XML class files.
    - Many other minor updates and improvements...

Freely available on the download page.



26th November 2007  -  Version 0.4.0 Released

Version 0.4.0 of the Nova Runtime has been released.  The new developments are as follows:

    - Added member access specifiers (public, private, protected).
    - Version information added to the Windows binaries.

Freely available on the download page.



19th October 2007  -  Version 0.3.1 Released

Version 0.3.1 of the Nova Runtime has been released.  The new developments are as follows:

    - Updated to be fully compatible with Windows Vista.
    - Improvements to the runtime binaries by utilizing dynamic linking.
    - Improvements to the install system.

Freely available on the download page.



3rd August 2007  -  Version 0.3.0 Released

Just over a year since the last update.  Version 0.3.0 of the Nova Runtime has been released.  The new developments are as follows:

    - External library module interface.
    - Re-structuring of source code for future platform independence.
    - Synchronization / timing improvements to the Mozilla / Firefox plugin.
    - Minor improvements to the installer.

The external library module interface allows native libraries and bindings to be packaged into DLL files separate from the core runtime.  These external modules are stored in the "lib" directory and dynamically loaded at runtime.  This allows developers to easily create their own custom libraries, greatly adding to the versatility of the runtime. 

Freely available on the download page.



29th July 2006  -  Version 0.2.1 Released

As hoped and planned, more frequent updates.  Version 0.2.1 of the Nova Runtime has been released.  The new developments are as follows:

    - Minimal, proof of concept Direct3D9 bindings.
    - Preliminary struct functionality (only supporting primitive types).
    - "typeof" operator.
    - "type" primitives.
    - Firefox / Mozilla plugin improvements.
    - Many other minor updates and improvements...

Here are the latest code metrics for the core Nova Runtime:

    - 193 C++ Classes
    - 3.11 MB of Source Code
    - 28,319 Statements
    - 42,221 Lines (code only)
    - 36,750 Lines (comments only)
    - 4,532 Lines (code with comments)

Freely available on the download page.



11th December 2005  -  Version 0.2.0 Released

I am very pleased to announce that version 0.2.0 of the Nova Runtime has been released.   The main new developments are:

    - Firefox / Mozilla / Netscape plugin.
    - Full internal Unicode support.
    - Garbage collection enhancements.
    - Nullsoft installer.
    - OpenGL spheres applet with motion blur effect.
    - Matrix calculation classes.

Here are the latest code metrics for the core Nova Runtime:

    - 175 C++ Classes
    - 2.88 MB of Source Code
    - 26,125 Statements
    - 43,518 Lines of Code (excluding blank lines and comments)
    - 38,441 Lines of Comments (excluding blank lines)

Freely available on the download page.



1st June 2005  -  A Progress Update

During the course of the last few months primitive data types have been added to Nova.  The rationale behind this fundamental design change is to enable higher runtime performance, greater storage efficiency and also increased versatility.  Therefore Nova is not longer a pure object oriented language.

There have been many other exciting developments since the last update.  One of most impressive is the ability to run multiple OpenGL Nova applets on a single web page with really efficient CPU/GPU performance.  I am eager to demonstrate this in the next public release, which should be in the next few months.  Included in the next release will be a new install system, which is needed for the Nova applets.  After the next release I am hoping that subsequent ones will become more frequent now that Nova is starting to have a solid foundation.

Here are the latest code metrics:

    - 168 C++ Classes
    - 2.19 MB of Source Code
    - 33,955 Lines of Code (excluding blank lines and comments)
    - 28,603 Lines of Comments (excluding blank lines)



1st June 2004  -  A Progress Update

Exactly one year on, here is a brief progress report to keep you up to date with the most significant additions and developments since the first release:

    - Designed and implemented a fully working Nova bytecode instruction set.
    - Multidimensional arrays.
    - Method references (static and instance).
    - Cpw OpenGL framework library bindings.
    - break and continue keywords.
    - Recursive type matching.
    - New types and operators.
    - 64-bit types (Long and ULong).
    - NFC library (Nova Foundation Classes).
    - Inheritance.
    - virtual keyword.
    - Virtual functions and polymorphism.
    - Nova Applets.
    - Nova ActiveX control (NovaCtl).
    - Basic multithreading capability.
    - Dual interfaces for Nova applets and applications.
    - OpenGL teapot example.
    - OpenGL colour-cube example.
    - Many other optimisations and improvements...

The Nova RTE source code has been greatly refined and has also significantly increased in size:

    - 139 C++ Classes
    - 1.6 MB of Source Code
    - 26,790 Lines of Code (excluding blank lines and comments)
    - 19,967 Lines of Comments (excluding blank lines)



1st June 2003  -  Version 0.1.0  -  First Public Release

Today celebrates the first public release of the Nova Programming Language together with the Nova Runtime.  Nova has been in the making for just over a year and has been solely produced in my spare time, starting from nothing but the C++ Standard Template Library (STL) and some exciting ideas.  This project is my most ambitious project to date.  This first release contains the following amount of C++ code, which sees it off to a good start:

    - 109 C++ Classes
    - 887 KB of Source Code
    - 16,917 Lines of Code (excluding blank lines and comments)
    - 10,658 Lines of Comments (excluding blank lines)

Nova is intended to be long term project and possibly the basis for my future work.  I see its potential as being very promising and hope to see some fantastic developments with it in the near future.