

Elnode, the EmacsLisp webserver, nears release - nic-ferrier
http://nic.ferrier.me.uk/blog/2012_08/elnode-nears-1-point-0

======
justinhj
If you build a web app in emacs you may be interested in a fully featured
emacs lisp Redis client <http://code.google.com/p/eredis/>

~~~
nic-ferrier
wow. yeah, that could be awesome. I'd like to write an elnode adapter for
that.

Is it packaged and in MELPA or Marmalade?

~~~
justinhj
No but I'd be happy to set that up

~~~
justinhj
Update: Wow, that was easy! It's now available on Marmalade. (package-install
'eredis)

~~~
nic-ferrier
excellent! well done!

------
kishi
An Emacs web server existed over 10 years ago:

    
    
      http://synthcode.com/emacs/phase-0.2.1.tar.bz2
    

It has no doubt bit-rotted, but had some really nice features, like being able
to automatically display any file as HTML with the exact same syntax
highlighting that Emacs itself uses.

~~~
eschulte
If it doesn't handle POST requests it doesn't count.

    
    
      (defun phase-handle-post ()
        "Phase handler for post requests"
        ;; XXXX hack, not handling multi-part form data, just treat as a GET
        ;; for now.
        (phase-handle-get) )

------
mark_l_watson
Lisp hacker to Lisp hacker, that is very cool.

Really off topic but: it is great to be a programmer and write whatever we
want for our side projects.

~~~
nic-ferrier
I really want to use this professionally. Lisp is so much more productive (for
me at least) than other languages. I just don't want to have to use much else.

~~~
jrockway
Why Emacs Lisp and not a CL? SBCL actually performs on par with more popular
languages for server workloads. Emacs Lisp? Not so much.

~~~
nic-ferrier
I think the article explains this. People are free to write CL versions,
personally, I find EmacsLisp the only really practical Lisp.

node.js has been over the performance grounds a lot, it's scalability that
matters, not raw per request performance and for that Elnode could score.

------
mhd
Given the optional lexical scoping of Emacs 24 (which elnode seems to use), I
wonder what would be required to port something like this to a full-fledged CL
system. Given some emulation of Emacs underpinnings, you could develop
completely within Emacs and use that for smaller/local applications, but if
you ever require more power, move it to e.g. SBCL and deploy...

~~~
nic-ferrier
Let's see how we get on with just emacs? Elnode can communicate
(asynchronously) with lots of other Elnode nodes... the Elnode RLE module
([https://github.com/nicferrier/elnode/blob/master/elnode-
rle....](https://github.com/nicferrier/elnode/blob/master/elnode-rle.el))
provides code to spin up those nodes and offload processing to them.

I think you could scale with just Emacs.

~~~
mhd
Well, I think before I'd expand to a big multi-core cluster, I'd look into my
options ;)

------
johnpmayer
Just a suggestion, but I think a video tutorial demonstrating the workflow
advantages would be incredible for the visibility of the project. I, for one,
would like to see how _you_ envisioned elnode as a self-contained productive
development and administration environment within emacs.

edit: doh this is planned

~~~
nic-ferrier
Yes, as I said at the end, that's coming. Hopefully this week. It was
important to get Elnode 0.9.9 out first.

~~~
nic-ferrier
And here is a video
[http://www.youtube.com/watch?v=TR7DPvEi7Jg&feature=youtu...](http://www.youtube.com/watch?v=TR7DPvEi7Jg&feature=youtu.be)

------
jfoutz
I'm only an occasional emacs user. I've only committed a few cursor motion
commands to muscle memory. I have to say, the embedded web server is a nice
touch to any programming environment. far far more true in emacs itself.

Great job.

------
opminion
Sounds fun. The problem with elisp, though, is that it's (I am told) not a
real Lisp. The info tutorial shipped with Emacs doesn't make me suspect
otherwise. Perhaps a few neat elnode examples might help.

~~~
nic-ferrier
There weren't enough in the article?

It is a real lisp. I think the problem you're experiencing is that EmacsLisp
has a long history. So some things that have been said were said a loooong
time ago and are no longer relevant.

Take a look at the other articles I have on my blog... it's clear EmacsLisp is
a modern, usable, language.

~~~
opminion
First, thanks for all the effort you've put into this. Sometimes skeptical
questioning comes across as negativity, I hope this wasn't the case.

A previous Elnode announcement was what made me actually want to look into
Elisp more seriously, but I went straight into the Emacs Elisp manual, and
found it rather low-level when it came to list construction. So I asked
around:

    
    
       http://news.ycombinator.com/item?id=4157512
    

(incidentally, with "not a real lisp" I meant the admittedly narrow "isn't the
same thing at all" in relation to Common Lisp or Scheme)

and gave up because I wasn't interested in Emacs-specific programs.

But I won't argue for or against that. Will give it another go starting from
your site.

~~~
nic-ferrier
Sorry if I sounded frustrated.

Don't listen to the haters. EmacsLisp is a real Lisp. You can use it to do
solve real problems. It gets better all the time as people add stuff that has
worked for years to the package archives (see elsewhere in this elnode thread
where someone adds a redis client).

What I would say is you need to reach out more, come to #emacs and ask lisp
questions. Play with Emacs (it's SO easy) and check out all the videos that
people have been doing recently (<http://emacsrocks.com/> and the one from me
today <http://www.youtube.com/watch?v=TR7DPvEi7Jg>).

Elnode _is_ a good way to get into Lisp because it's easy and it's in Emacs
which is just a great Lisp environment.

------
vedang
Rewriting EmacsWiki in elnode would be _awesome_

