Introduction

WhyWhatWhen

Why another programming language?

Why yet another programming language? Good question. Why do languages evolve, and why is there sometimes a revolution?

The first question is fairly easy to answer: situations change, forcing a change in the carrier to express to changes. Simple. The second question can be refrased to "when is revolution (a new language) 'better' than evolution (extending/changing a current language)"?

There are a number of reasons why there is more 'revolution' in programming languages than in human languages:

So, why a new systems programming language? A systems PL, in my idea, is a language which allows a programmer to get as close to the hardware as (s)he wants, gives excellent (and controlled) resource control, does not need any runtime library, and of course compiles to a binairy executable.

Currently there are quite a few excellent application programming languages. However, the list for a systems PL is fairly short. Let's pick the most well known: C. Ask any systems programmer, and you will get a long list of things which should be improved in C. Alas, most language which improve those things, also add features which make them unsuitable for systems programming. So that's why I designed Ocean.

What will it be?

Ocean should not limit the programmer, except when the programmer wishes to be limited. So it will have multiple inheritance, exceptions, and threads, but only if you ask for it, and you will have none of the overhead if you do not use them.

Ocean will have good support for building large programs, both in doing only the minimal recompilation during changes, and allowing module and program wide optimization.

When will it be ready?

Ocean is a pet project of Nanning Buitenhuis. As I have a job, to many hobbies, and three kids, available time will be limited. I am planning to finish this though.

I'm now working on a first interpreter (in C). If/when I get that to work I will start on a simple compiler (in Ocean itself).

The website reflects the development progress. Items will be moved, removed, rewritten, and expanded. Please email me if you have remarks.