The Beginnings of Meta

August 11th, 2009 | Tags:

I’ve long been a connoisseur of programming languages, hacking on just about anything I can get my hands on from Io to D, from Objective CAML to Haskell, and from Scheme to PostScript to Erlang. I’ve just finished getting familiar with Erlang, and I can’t help it now, I find myself picking at its syntax rules (anonymous functions are a bulky construct, and must be bound to variable names starting with a capital letter, providing a weird dichotomy between module functions and anonymous functions). Don’t get me wrong: Erlang is definitely a good language.

And so, I have decided that I must write a language. I expect this to be a many-year personal endeavor, but a lot of these language complaints I have on a recurring basis, and I suspect starting a language should have a lot more influence than simply complaining.

The language is tenatively named “Meta”. C++ provides rich meta-programming support in a statically typed environment; however, it falls down in many different ways and this rich support has never been successfully exported to another language. Meta intends to export this rich meta-programming support to a functional language (which is a different beast, so we aren’t just trying to “fix C++”).

Meta will be compiled, statically-typed, and functional. It will not be lazy. Objects will be immutable. It should be able to write safely concurrent programs, and should be usable in large projects by multiple developers, meaning that it should be pragmatic.

I will make a series of posts on design decisions for Meta, and I ask for feedback and input.

No comments yet.
TOP