Summary
My passion is implementing programming languages. While the languages I have created (e.g. Cat and Heron) haven't exploded in popularity, I have learned a few things along the way and I've decided to share some of it back with the community.
Advertisement
My passion for designing and implementing programming languages started about 15 years ago, when it dawned on me, just how many common programming bugs were the results of how languages were designed. As a hobby I designed and implemented two languages: Heron and Cat.
Cat received some minor recognition. There have been nearly 4000 downloads, a couple of mentions in articles, and it has inspired other typed functional stack-based languages. Heron on the other hand has gone largely unnoticed.
Heron has been under development for about 10 years. The goal was to make a successful main-stream language with similar characteristics to C# and Scala. Last year I rewrote Heron from scratch, and the design reached a point that I was happy with. Some of my favorite features of Heron:
Recognizable syntax for C, C++, Java, and JavaScript programmers.
Modules as first-class objects
Well-structured file layout
Meta-programming system based on tree rewriting
Static + dynamic typing
First class list type
Support for both object-oriented and functional programming techniques
Once I was ready to start telling the world about Heron I asked myself a tough question: how could I convince a working programmer to use such an immature new language regardless of how great the feature set was? There were no libraries or tools, the implementation had poor performance, and was probably full of bugs! I decided to put Heron on the shelf until I find the time to make an implementation that programmers might seriously consider using.
For now I've decided to focus on sharing some of what I've learned over the last 15 years with the community as an article Implementing Programming Language Tools in C# 4.0. I hope to eventually build the material up into a book as well.