Languages to describe Languages

Tuesday, July 6, 2010 :: Tagged under: pablolife. ⏰ 2 minutes.


Hey! Thanks for reading! Just a reminder that I wrote this some years ago, and may have much more complicated feelings about this topic than I did when I wrote it. Happy to elaborate, feel free to reach out to me! 😄


We're in a beautiful, exciting, and unsustainable time in programming languages. For any combination of features you could want, someone's made or making an interpreter/VM for you. Want dynamic message passing and objects (but Objective-C doesn't give you enough functional features)? Try Newspeak. Want Ruby syntaxed immutable objects with Erlang's concurrency model? Try Reia. Hell, did you Perl programmers feel left out of the JVM after the success of Jython and JRuby? Someone made a JVM-styled Perl called Sleep.

I remember wondering what my contribution could be and thinking I love Ruby programming, with true object-orientation, but miss ML/Haskell type systems and inference. What if I could make a concise, type-inferred Object-Oriented language? Then I found Scala had already been made.

Reading so many new language pages, I notice that lots of older languages getting referenced to describe the current one. Carlos Fuentes pointed out that Guatemala used to be called "The Paris of the Americas" (he also pointed out that France did not return the favor and call Paris "The Guatemala of Europe"), and there are a few specific languages that get to be Paris most often.

The ones I see most are...

To go with the flexible vibe, they probably also mean dynamic types + garbage collection, which Lisps did pioneer way back when. But those features are everywhere now.

What languages do you never see anymore? Prolog, Forth (except the very nice-looking Factor), or Eiffel. That's too bad, these had some fun ideas.

What language feature/system do I feel needs to make a resurgence? Proper module systems, like SML. I find most module systems a royal pain, and SML is no exception. But once you figure it out, you really can (provably!) 'program in the large.'

Finally, what hope is there for us polyglots to do development in these languages? Aside from LLVM, maybe there's a good graduate research project-in-waiting trying to bridge the gap between these guys.

That's enough bloviation for now. Now let's write some code.

Thanks for the read! Disagreed? Violent agreement!? Feel free to drop me a line at , or leave a comment below! I'd love to hear from you 😄