The Artima Developer Community
Sponsored Link

Heron-Centric: Ruminations of a Language Designer
(Re-)Introducing the Heron Programming Language
by Christopher Diggins
March 5, 2010
Over five years ago I started talking about Heron on After several re-designs, and many side adventures, I am finally making the first Alpha release of version 1.0 of the Heron interpreter.


I've finally released the first Alpha of version 1.0 of the Heron language.

This is an open-source interpreter for Heron written in C#, that runs only on Windows. Unfortunately I do not currently support Mono, because of some dependencies on the new .NET 4.0 parallelization libraries.

A Short History of Heron

Since I have been talking about Heron for so long, and this is a landmark release, I thought I might talk a bit about the history of Heron.

Heron has been under development for over five years. In fact it started as a seed of an idea during a programming languages survey course I took at McGill University nearly 15 years ago.

The original idea I had was that programming languages were in general more complicated than they needed to be. It seemed to me that there was no real reason we couldn't write pseudo-code like I found in textbooks like the famous Introduction to Algorithms. Of course I hadn't yet heard about Python or Ruby.

As I started learning new languages I kept finding reasons to give up on my programming language project, and then new reasons to start it up again. It seemed that no language quite fulfilled my quixotic desires.

About six years ago, I started work on Heron. The first version of the language was almost a dialect of C++ with better support for meta-programming. It was implemented as a Heron to C++ translator. I had a lot of trouble getting traction on the idea, and got side-tracked on another project: the Cat programming language.

Two years ago, I started a complete redesign of Heron which was quite different from the original. While the syntax still resembles C++ somewhat, there is now much more influence from other languages like Scala, Scheme, JavaScript, and Python.

What Kind of Language is Heron?

Heron is a general-purpose object-oriented language that strives to be appropriate for large scale project development (at least once it is mature). Heron borrows a number of ideas from functional languages, and offers some new twists on object-oriented programming.

While Heron is being designed for larger-scale team-based software development, it should also be appropriate for simple programming tasks. I want to be able to use it do develop simple programs, which can be reused easily in larger program without modification.

Characteristics of Heron

The following are the most notable features of Heron

Heron is also notable in its explicit omittance of certain common language features, which are mostly redundant because of the features listed above. Some notable omissions and a brief rationalization are:

About this release of Heron

It's a little audacious to declare a language release as version 1.0, because there is so much work to do on it always. Nonetheless I've declared the current release of Heron as the first Alpha for Version 1.0 for two reasons:

  1. I'm convinced that the language semantics and syntax won't change significantly until the next major version
  2. The language has undergone a fair amount of testing on my side and is ready for early adopters to start trying it out, reporting bugs and making minor feature requests.

For more Information

If you want more information about Heron I strongly urge you to download it and take a look at the various test programs that it comes with. You can also wonder around the web site at Google code hosting, or ask me questions here! I look forward to hearing your feedback.

Talk Back!

Have an opinion? Readers have already posted 19 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at

This weblog entry is Copyright © 2010 Christopher Diggins. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use