Thursday, April 12, 2012

Mythryl: Another great language introduction

Another great language introduction, this one for Mythryl:

Howdy! I’m Cynbe, lead Mythryl developer.

Why do I do it?

Let me tell you.

I spent the first four years of this millennium doing eighty-hour weeks at a Fortune 5 company in a division internally famous for producing more revenue per employee than the IRS.

I remember arriving home at three AM Christmas Day, sleeping thirty-six hours straight, and then driving right back to work.

It was a cool trip in its way, but over time the stress does get to you. By four years in, vomiting blood in the wee hours was starting to seem entirely normal.

It was time for a change.

By then I had written well over a million lines in C plus substantial amounts in other languages. I felt ready to take it to the next level.

“A language that doesn’t affect the
way you think about programming
is not worth knowing.”
Alan Perlis

So I looked around to see what was new and improved. I’d learned APL, assembly, C, Fortran, Lisp, Pascal, Smalltalk, Snobol, SQL and so Forth in the 1970s, but after that there had been a long dry spell. C++, J, Java, Perl, Python, Ruby, sure, but they hardly catapult us into a new era of butterflies and rainbows. They did not expand my mind like Lisp and Smalltalk.

Happily, mostly-functional programming languages had just reached the Ready For Prime Time point.

My favorite was SML/NJ, from the nice folks who gave us the laser, the transistor, and Unix.

Unfortunately, it was research-grade code cloaked in academic jargon which hadn’t seen an end-user release that millennium.

Fortunately, I was looking for something to do.

So I set about hammering this magnificent raw material into a modern production quality open source software development platform.

To my mind Mythryl deftly combines C speed, Lisp power, and Ruby convenience with the critical new ingredients of Hindley-Milner typing, state of the art generics and just the right level of side effects.

I’m in love!

No comments: