Thursday, July 12, 2007

Loyc: Language of your choice

I am a programmer, but this is not a programming blog. Naturally I want to write about programming topics sometimes, but I prefer to keep the general public as my audience here. So I've been putting my technical posts in my scribblings blog, which I really intended for notes-to-self and other nonsense. So now I've created Loyc, etc., a blog for serious programming posts, and, of course, for Loyc.

I'll try to explain in layman's terms.

I've become increasingly frustrated with the primitive tools programmers use to write programs. Programmers write code in programming languages, and I want to increase the power of those languages. So in my free time I work on a "compiler architecture" called Loyc.

See, there are literally thousands of programming languages in the world. And each of them has an "interpreter" or "compiler". A compiler is a program that understands a programming language. It translates code written by a human into binary code which a computer understands. There are also "interpreters" which are the same but different (get it?).

It seems that most programmers who aren't happy with the programming languages they've got just make another one. Hence we end up with about a zillion of them. Each language has certain features and lacks others.

I'm doing something different. I'm not making a new programming language. Instead, my compiler will (...someday...) understand two languages that already exist, "C#" and "boo". Loyc, which stands for "Language of your choice", will be an "extensible" compiler. This means that other programmers can come along and add features to the C# language and the boo language. They can even add whole new languages!

The idea is that I myself will not be The Great Innovator. I'm not gonna be the one to make a new language with new features. Instead, I will provide a way for programmers to add new features to languages that already exist.

See, usually there's some committee or even a single person that gets to decide what features will be in a language. In contrast, my design is democratic. Any skilled programmer can add a feature, and then the other programmers in the world can choose whether they will use the feature or not. Loyc should thus evolve as some sort of utopian democratic meritocracy, or this is my hope :)

Anyway, if you are a programmer, don't get too excited. Loyc doesn't really exist yet. Mostly it's just ideas in my head, but I'm working on it.