is an open-source project working to deliver an implementation of the popular
Holmstrom, a programmer in Gothenburg, Sweden, created IronJS as part of a
larger project he is building out. Holmstrom said he uses C# and
his "hobby" work. With support for dynamic languages such as Python
and Ruby being a popular topic among developers, Holmstrom spoke with eWEEK
Senior Editor Darryl K. Taft about his project.
How did you come up with the concept for IronJS?
Basically the idea sprung up over a year back when I started playing around
and realized how much
a sort of mismatch between the client/server/database and results in a lot of
duplicate functionality and an (often homegrown [or] project-specific) way to
communicate between the server and client. And this is done with some arbitrary
I really saw an opportunity here to build something that would allow you to
the same language as the client. I started researching into the subject several
times during the last year, but I always got sidetracked. However, about three
weeks ago I really set my mind on actually getting it done. I downloaded the
DLR [Microsoft Dynamic Language Runtime
sources from CodePlex
hacking, first following the tutorial language (called SymPL) to get a feel for
how the DLR works. Then I dug into the IronRuby source code (which is a bit
more manageable than the IronPython source, which is insanely huge) to get a
really good feel of how to implement a language on top of the DLR.
All in all, it's taken me about three weeks to get to the current state of
IronJS, which is a real testament to how awesome a piece of technology the DLR
How far along are you in terms of putting it out as a 0.1 release?
The current main branch on GitHub
usable, but barely (which I've labeled as 0.1-alpha). A somewhat usable 0.1
release is about three to four weeks away, I would say.
Is IronJS open source?
Yes, it is. It's released under the GNU General Public License v3.
What's your day job?
My day job is at CP+B Europe (www.cpbeurope.com
) which is the European
branch of Crispin Porter + Bogusky (www.cpbgroup.com
). I work as a .NET
developer doing mostly back-end stuff for various Websites.
I see where you said all your professional work is done in C# and
As I stated previously, I do mostly back-end stuff for our various clients;
[it] ranges from small ad campaigns to full-blown six-month, full-time
C# with some PHP for good measure.
Why the varied mix of F#, Python and Clojure for your hobby work?
This is a hard one. I would say that this is mostly about the fact that I
enjoy using programming languages that teach me something other than their
has its roots in OCaml and ML, which preaches a specific way of functional
is a Lisp [derivative],
as you might know, and the s-expressions are a very nice way to express some
problems. Python just happened to be a really nice mix between C, Lisp and
Other than IronJS, what other hobby work are you involved in?
At the moment I have two projects that are on hiatus, they are actually just
waiting for IronJS to get to a stable enough state that I can start basing the
scripting functionality of them on the IronJS run-time-this is also one of the
run-time on .NET that fulfilled three main
goals, to be: one, free and open source; two, fast; [and] three, actively
And after searching for a month or so I gave up trying to find one and
decided to teach myself the DLR and write my own. I'm still a bit secretive
about my two other projects, but they will be publicly available on GitHub once
the time comes.