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.