I read about a .Net-based open source language project named Cobra. What is Cobra? Chuck Esterbrook, the creator of Cobra, gave this presentation at Lang.NET. According to Chuck, the Cobra language takes the best of several languages and puts them in one place:
MOTIVATION: Productivity boosters are scattered across languages
– Clean syntax (Python, Ruby)
– Run-time performance (C#, C++)
– Static and dynamic typing (Objective-C, VB)
– Contracts (Eiffel, Spec#)
– Nil tracking (Spec#, iihtdioa.C#)
– Not mutually exclusive!
Cobra runs on .Net and Mono.
Call me old fashioned, but considering Chuck’s plan to open source the compiler (under the MIT license), why’d he go down the .NET path? So I asked him:
1] Why did you decide to build Cobra on top of .NET?
I made two attempts in private to build Cobra as a standalone language and gave up after a few months in each case. The amount of work
involved, which includes the creation of a standard library, is daunting and time consuming.
.NET was a multi-language design from the start including CodeDom support and multiple languages from Microsoft’s own people. When I saw how much leverage the Boo project was getting out of it, I decided to try again.
Now I’m excited about further developments like Silverlight and Pex. Interoperability and leverage is a good thing!
I hope not. I do a lot of the development on Novell Mono, which is OSS. Cobra itself will be OSS this month. And there is a growing
number of OSS projects that run on .NET and Mono.
Just that I was in stealth mode until my presentation at Lang.NET in January. My focus right now is “release early, release often”.
Cobra is self-hosted meaning that the compiler is implemented in Cobra. That was very important to me so that for the hours I spend maintaining the language, I’m using it. It also means I have to pay attention to performance. And of course, it’s the ultimate test case after I make a change (both last and biggest).
Good luck Chuck!