Live data from Hacker News

Ask HN: Lispers: Which dialect of Lisp do you use and why?

news.ycombinator.com

11–20 of 46 posts

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#11

Javascript. Cheating because it's not a lisp. But it was created by a schemer who originally put scheme in the browser (before he created javascript). Not what I prefer, but it's the most lisp-like language I actually use in real projects. The support for closures, lisp-1 invoking functions from variables, and dynamic typing feel very scheme-like.

JavaScript is not a lisp.

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#12
Clojure, with heaps of Clojurescript to manage the Javascript ecosystem.

For over a decade I wrote mainly in C++ doing a lot of Windows programming, usually games or simulations. Mix in some VB and C# when I didn't want to battle the Win32 API. I was used to seeing codebases with 100k+ loc and hundreds of megabytes of code files. xkcd COMPILING is real!

While working at BitTorrent in 2013, a coworker back introduced me to his little server that distributes uTorrent executable to everybody. It was an implementation of this[1] paper for a general purpose rules-based engine with a snappy (Clojurescript?) front-end. The whole thing was ~5k loc, and ran on surprisingly small hardware compared to it's traffic.

From there I was hooked. My project sizes are radically smaller, it's LISP, and I can go wherever Java goes. I wrote about my experiences with AWS Lambdas last year [2], for example. The community itself is outstanding. They are some of the nicest people you will ever meet. Because the community focuses on small libraries that are composable, those libraries become remarkably stable. Several heavily used libraries haven't had commits in months or years.

[1]: http://moscova.inria.fr/~maranget/papers/ml05e-maranget.pdf

[2]: https://github.com/jamesleonis/serverless-in-clojure

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#13
LFE (Lisp Flavoured Erlang). It's the ideal tool for exploring AI.

Handbook of Neuroevolution Through Erlang by Gene Sher makes a compelling argument (with detailed, varied examples) that Erlang is the perfect language with which to implement neural nets.

Lisp has always been associated with AI, of course. Nowadays it's all Python, Java and R for machine learning, but Lisp can do just as well, plus more: Lisp has an affinity for recursion, and its homoiconicity will - I suspect - prove fundamental for true AI. One can't just 'strap on' its features to those other languages (including Elixir: https://news.ycombinator.com/item?id=7623991).

So, obviously the right tool for the job is LFE!

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#14
Scheme. The whole "build a language from a small set of well-chosen primitives" really resonated with me.

I tried a bunch of other lisps but disliked them for various reasons. Clojure is nice because of the tooling, but I disliked being tied to the JVM and all what that means.

CL has some very nice implementations (Allegro CL has a limited free version that has forever changed how I think a programming environment should be).

In the end I found guile scheme which is great. The threading situation is good and getting better, the language has all the comfortable srfi's that implementations like chez lack, and it has nice community.

The reason I chose guile over chicken was the r6rs compatibility, which made supporting both chez and guile rather easy. Other than that, I'd say that the chicken community is probably the nicest one online. Chicken is really a fine scheme as well.

I am not a programmer though, and what I want is for programming to be just fun. Not enterprise ready, not web6.0-cool. just fun.

Shameless self-plug: I just finished my racket-like for l-loops for guile: https://bitbucket.org/bjoli/guile-for-loops

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#15
I use Emacs Lisp for Emacs and Guile Scheme for everything else. I prefer Scheme over Common Lisp and Emacs Lisp, because it is more stream-lined, simpler, and elegant.

I'm very happy with Guile and its performance has greatly been improved with version 2.2 (not that performance was a problem before); one thing I miss in Guile is the picture language that Racket comes with.

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#17
Common Lisp, for it's maturity, stability(decades old code still runs on modern implementation) and remarkably good design considering it's a language designed by a committee. Almost all of it's problems or dusty corners that show their age can be worked around by libraries. Not to mention the quality of the spec is great. I really miss the attention to detail the common lisp hyperspec has when I have to read about some obscure corner of python for example.

I also spend some time with clojure around the time of v1.0-1.2 and quite liked it, but it's maturity level and the JVM made it less attractive in the long run.

I like scheme as well, but because of the spartan(to use a nice word) spec, If I actually want to get stuff done I'd have to chose just one implementation and it's associated libraries, rather than rely on portable code.

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#19

Javascript. Cheating because it's not a lisp. But it was created by a schemer who originally put scheme in the browser (before he created javascript). Not what I prefer, but it's the most lisp-like language I actually use in real projects. The support for closures, lisp-1 invoking functions from variables, and dynamic typing feel very scheme-like.

I know there is no formal definition, but without homoiconicity provided by s-exps, it is hard to call it a lisp. Of course, it sounds like you're well aware of this. Do you use a lisp for hobby projects.

There are a bunch of Lisp dialects without s-expression syntax.

McCarthy's first Lisp programs were written in MLISP notation.

Re: Ask HN: Lispers: Which dialect of Lisp do you use and why?

#20
post #19

Earlier quoted context omitted.

I know there is no formal definition, but without homoiconicity provided by s-exps, it is hard to call it a lisp. Of course, it sounds like you're well aware of this. Do you use a lisp for hobby projects.

There are a bunch of Lisp dialects without s-expression syntax. McCarthy's first Lisp programs were written in MLISP notation.

My bad...s-exprs OR m-exprs I guess? I'll yield to the r/lisp mod's opinion of course :)
Post reply on HN