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.
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) )
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...
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....) provides code to spin up those nodes and offload processing to them.
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.
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.
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.
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.
1. Emacs Lisp is a real Lisp. Full stop.
2. That said, Emacs Lisp is based on MacLisp (no
relationship to Macintosh), which has dynamic scoping,
not lexical scoping, and which is not a member of the
Common Lisp family.
3. And *that* said, Emacs Lisp has long had a "cl"
package that adds many Common Lisp niceties, and,
since 24, has had optional lexical scoping, bringing a
more Common-Lisp-like experience to all aspects of
elisp.
4. And all of *that* said, this particular package I
regard as a convenience, not a way to write a website.
There are many tools a devoted Emacser uses (org mode
and Planner mode, to name the two big ones) that want
to vend web pages, and this would be a great tool for
them, but I'd hardly recommend using elisp for a
"real" website.
It's completely worth learning elisp, and I think discounting this because it's "not written in a real Lisp" is bizarre, but you'd be right to look more towards Clojure or SBCL/Clozure (depending) to write a "real" Lisp website. That's just not what this is aimed at--and where it is aimed, I think it can be enormously successful.
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.
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.
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.
Sorry, what exactly makes it "not a real lisp"? Maybe that statement is out of date, considering the addition of lexical scoping in Emacs 2.4.
Regardless, it seems like the author is able to build some real things. I know, for example, that you can run a simple file-directory server using elnode.
What is the definition of a real lisp? AFAIK lisp is just a family of computer languages. Elisp certainly isn't the most powerful or full featured but it still seems to have most of the characteristics.
Something that makes people fight over whether Scheme is a real lisp. Something that makes people fight over whether Dylan is a real lisp.
In short, there really isn't one. Unless you say that all real lisps adhere to the Common Lisp standard, which isn't, actually, a common position to find anyone taking in real life.