
Lisp REPL in Vendetta Online - fogus
http://www.a1k0n.net/2005/11/04/lisp-repl-vendetta-online.html
======
reycharles
The blog post is from 2005[1].

[1]: <http://www.a1k0n.net/>

~~~
a1k0n
And really not all that interesting. Weird. Hi, HN.

Also, we ended up ditching Lisp. Goofing around in Lisp when we had no idea
how to deploy it wasn't really a smart move for a four-man startup, in
retrospect.

~~~
rcfox
> Goofing around in Lisp when we had no idea how to deploy it wasn't really a
> smart move for a four-man startup, in retrospect.

Would you mind expanding on that? I'd be interested in hearing about why you
chose Lisp and why it didn't work out.

~~~
a1k0n
Well, we wanted to add some "life" to the universe with some automated trade
convoys and so forth, and I had the crazy idea to use a rule-based system to
implement it, and found an off-the-shelf clone of CLIPS (the expert system
type thing), using the Rete algorithm called Lisa
(<http://lisa.sourceforge.net/>), and that was implemented in Common Lisp.

It turned out that the impedance mismatch between that and what I _actually_
wanted to do was gigantic, and Lisa was way too slow as it would re-evaluate
the whole world anytime anything changed, so I ended up reimplementing the
rule interpreter to trigger based on state transitions while keeping the same
sort of rules. It was much simpler, and worked ok, but still.

Writing it this way led to three levels of indirection: we'd write rules that
tried to emulate a state machine that tried to emulate a do-this-then-that-
then-that sort of thing. It was ridiculous and impossible to understand.
Serializable coroutines were what we were really looking for, and we ended up
rewriting the whole thing in Erlang which pretty much does that.

We also had memory management issues which we didn't know how to debug in
SBCL, so the thing would crash all the time even when it was working.

~~~
dustingetz
> Goofing around in Erlang

FTFY ;) but seriously, why is Erlang any different than Lisp?

~~~
outworlder
How could someone answer this question? I think you should elaborate on what
you are looking for.

