Sunday, June 24, 2012

Rebar Frustrations and LFE

I'm trying to get my head around Rebar at the moment, and failing pretty badly. It's honestly unclear whether I'm being an idiot here, but I've gone through all of four different tutorials on the subject, each purports to be a simple step-by step guide that'll get you up and running quickly, and each one hands you an error at around step four if you follow it as written.

The only piece of documentation I've been able to follow in its entirety without a crash dump is the basho Getting Started page. Except that it only gets me as far as starting and compiling a project, showcasing none of Rebar's dependency building, distribution creation or release handling. Which makes it marginally less useful than Make.

Following the upgrade_project option works fine on the dummy project provided as part of the rebar repo, but that project is shaped differently, and uses different config options than the ones rebar generates. Naturally, there is no documentation on what steps I have to take to get from what's generated to what works.

Ugh. Sorry, I had to vent for a bit there. Fuck this, I'm going back to Makefiles for the time being. I'll try rebar out again when my blood pressure lowers a bit.

Was that all?

Huh? Oh. No, I guess. I did also find this, which looks pretty badass. It's not exactly a Common Lisp or a Scheme. It's a purely functional, Lisp-2 with unhygenic macros that runs on top of the Erlang VM. It's about as officially supported as you can get, being made by Robert Virding, and it gets rid of quite a few things I don't like about Erlang.

Now, it's not a full Common Lisp, so don't expect quicklisp (sigh) or loop (though in theory, there doesn't seem to be a reason that you couldn't implement that one, if you wanted it badly enough), or CLOS, but it does hit the big ones. Namely full prefix notation, homoiconicity, and macros. And it retains the things about Erlang that I do find interesting, namely massive concurrency, the pure-functional approach, and standardized cross-process/cross-machine communication.

I'm going to keep playing with it, but I like it so far.

No comments:

Post a Comment