Hacker News new | ask | show | jobs
by worthless-trash 884 days ago
I've written a few small CL web applications( with about 100 users active a day), along with a few terminal applications (with only ~10 users). Other languages I know is C , Erlang, Elixir and a bit of python. This will end up sounding a bit evangelical but so be it.

I feel that the lisp code was easier to write and reason about, the being able to hot reload code from the repl significantly decreased the time to completion. I also 'connect' to a networked repl when sentry reports an unhandled error to figure out what has gone wrong.

You might be tempted to believe that CL repl is "similar enough" to python's repl, however this is NOT the case. Being able to redefine functions, variables and macros while working on the code (without a restart) allows you to deal with errors.

The syntax is a 'no brainer', Extreme consistency in function calls means that you don't need to think about it. Other languages which SOMETIMES use infix, sometimes require brackets, that is just crazy.

Lisp libraries have less churn than 'modern languages', some libraries have not been touched for some time, unlike python/ruby/js. The code does not seem to rot and old lisp code runs on modern implementations.

I work in emacs, lem, I know people who use vscode and alive, and vim. There is no 'hard' requirement to use emacs, you will get by as long as you have 'emacs like' repl integration.

All in all, I do not regret working in lisp. It doesn't have the cult of the other languages and I'm fine with that.

2 comments

I'd rather say there is a definite cult over lisp. But it's very different from the other languages which I'd qualify as rather hardcore. Lisp's cult is a magical cult. No other language as such amazing stories as the space probe remotely debugged from earth with a repl, the extreme hot reload and mystical intertwining of assembly on PS2 of Jak & Daxter's GOAL, the MIT course with a Fantasia level of teaching, The symbolic machines, etc.

The only other language like that I can think of is smalltalk.

When do you work in emacs vs lem?
So, I've looked at lem. Lem seems to be a really great start and push in the right direction.

I work in LEM for my personal projects, that dont have other LSP integration needs and hooks into my org-mode/org-babel workflow. These should not be show stoppers, but will eventually be a non issue.

There are however some features that I'm missing in LEM before I can fully switch over.

1. The documentation for Lem is lacking. 2. I have lazy hands and hit shift on some keys when I shouldn't (shift and backspace for example). I'd need some way to ignore that. 3. An built in undo, (c-x u equivalent). 4. A documented library interface (this is kinda #1 again)

I will eventually get around to making my own plugins to solve most of these. Its a matter of time vs tradeoff.

I think lem looks really promising, buuuut .., I like org and tramp and slime-connect and structural editing and all the other great emacs things. Maybe I’ll try it out in the next few months or so . . .
Its slime is only local for now. Nrepl is something that I might work on this year.
For anyone following along there is a method to get this to work.

Download micros, put it in your local-projects

git clone https://github.com/lem-project/micros

Load it.and run.

(micros:create-server :port 50000 :dont-close t)

Then use m-x slime-connect in lem.

It is not slime, but it works.