So, I’m reading the Erlang book by Joe Armstrong, and I just got to the chapter where he’s explaining how to extend Erlang in other languages. The preferred method is to communicate using bitstreams. Egads! This is both a good and a bad thing. Bad news is that it is non-trivial to extend Erlang. The good news is that buggy libraries can’t bring down the whole Erlang VM (unless you don’t take Joe’s advice and start embedding crap). They’ve clearly drawn a line in the sand. It got me thinking that they might have a little too much NIH syndrome. Then I recalled number of times that I’ve seen buggy 3rd party compiled Python modules segfault in production. There really is a good reason not to pollute your VM with compiled modules.
Here's a sneak peak at an organism generated with my genetic programming tool that I'm writing in Erlang. It's only 50 lines of code and it's almost done. I'm really enjoying programming in a functional language. If you're getting started in Erlang read the appendix in Joe's book about what the different compiler errors mean. It will save you a ton of headaches. Here's that organism I promised you:
{sub,{add,{add,{add,{sub,78,
{mul,{sub,{mul,{add,{var,x},93},{sub,34,{var,x}}},
{mul,{add,{add,6,4},{add,9,6}},{var,x}}},
{var,x}}},
{var,y}},
76},
95},
{sub,{add,{var,y},{var,x}},{sub,{var,x},{mul,{var,x},{var,x}}}}}