ooc was born out of the desire to write cross-platform applications with a concise, yet clear syntax, and to produce native binaries rather than relying on a downloadable runtime.
It’s a general-purpose, language with a source-to-source compiler (to C99), and a portable SDK, readily available bindings for quite a few C libraries, a flexible module system, testing facilities and a set of utilities to make one’s life easier.
Why use ooc?
It’s a hard choice to make nowadays, to spend a chunk of your time learning and writing a codebase in a language that isn’t “mainstream”. Some would argue, not without reason, that it is a dangerous enterprise - that choosing a more established platform is the right thing to do. That hobby programming language skills aren’t marketable, etc., etc.
However, a good programmer is a good programmer in any language. Discovering new ways of perceiving, designing, and manufacturing pieces of software is always a worthy pursuit.
Hence, for small to medium-sized, personal projects - a personal command-line utility, a graphical front-end for an application you like, a custom piece of zeromq-powered network infrastructure, or an indie game - ooc is a practical alternative to what’s out there.
It’s been a while since the “marketing” phase of the ooc project has been abandoned. Although it is motivating to push for adoption, imperatives like paying the bills, maintaining healthy relationships, and preserving one’s sanity, have pushed for a more intimate approach to development.
Since its inception, many novelty programming languages have come and gone. The naiveté of youth, combined with a relentless thirst for experimentation, have inspired many developers to try and do their own thing. ooc survived through sheer, continued usefulness.