Tuesday, July 27, 2010

Clay Programming Language

Recently we've seen an upsurge of interest in new programming languages. The latest addition to the pack is Clay, which intends to marry C's tight memory model and small runtime overhead to generic programming semantics and a concise syntax. It's a tall order, but it's long past due someone took it.

There is no particular reason why modern features such as dynamic array instantiation, managed strings and a module system (to name a few deeply-felt C absences) couldn't be efficiently integrated into a native programming language. For a while now I've felt the need for an "updated C" that didn't represent a radical departure from the original, but brought it up to speed with the state-of-practice; Clay may or may not turn out to be that language, but in that respect I find quite encouraging its dismissing (up to this point) of classic object-orientation in favour of a simpler ADT-based model.

Details on Clay are sparse at this time (the project page provides no documentation whatsoever, only a terse feature list and some example programs), but a fully functioning compiler is already available for download. It will be interesting to see how far it goes, and whether other languages will follow on its theme of native-compiled languages with high-level abstraction features.