Live data from Hacker News

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

news.ycombinator.com

31–40 of 46 posts

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

#31

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…

This is a really interesting perspective. Do you have any advice for someone looking to get into LISP? Ways to learn, how to learn, etc?

If you're interested in Clojure, I _highly_ recommend /r/Clojure on Reddit. It's very active; several library devs, book authors, and core maintainers frequently post and comment. There's a weekly thread dedicated to new Clojure users ([Latest thread here][1]). The Clojure Slack[6] is even more active if you have a burning question.

If you would like to dip your toes in the water, 4Clojure[2] is an online interactive Clojure Kata. There's also a (nearly) full REPL environment at Try Clojure[3] or repl.it[4]. The Clojure Cheatsheet[5] makes it easy to browse and discover the Clojure standard library, and IMHO is _so_ well organized!

But the biggest part of Lisp is the interactive development. You really have to see it, and I love showing the [Bruce's Figwheel project presentation][7] because it's a very visual demonstration of what hot-reloading code and interactive development can bring. It also helps that he's doing Clojurescript in a live browser for web development.

[1]: https://www.reddit.com/r/Clojure/comments/6tq8f5/new_clojuri...

[2]: http://www.4clojure.com

[3]: http://www.tryclj.com/

[4]: https://repl.it/languages/clojure

[5]: https://clojure.org/api/cheatsheet

[6]: http://clojurians.net/

[7]: https://www.youtube.com/watch?v=j-kj2qwJa_E

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

#32
post #19

Earlier quoted context omitted.

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 :)

M-expr syntax wasn't homoiconic.

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

#34
Clojure. It works very well, I prefer the lisp-1 nature of it to something like Common Lisp, and I really appreciate being able to call out to the JVM (or Javascript, but I don't use ClojureScript at all) for whatever I please.

It has Pulsar, which is miles ahead of any other lisp's threading abilities.

I wish it had a more mature static typing story, but I guess you can't have everything.

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

#35

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…

This is a really interesting perspective. Do you have any advice for someone looking to get into LISP? Ways to learn, how to learn, etc?

"Practical Common Lisp", available online. Great book.

Also if you want to have nice silly fun, take a look at "Land of Lisp" which IMHO is destined to become a classic.

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

#36

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.

[deleted]

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

#38

Clojure. It works very well, I prefer the lisp-1 nature of it to something like Common Lisp, and I really appreciate being able to call out to the JVM (or Javascript, but I don't use ClojureScript at all) for whatever I please. It has Pulsar, which is miles ahead of any other lisp's threading abilities. I wish it had a more mature static typing story, but I guess you can't have everything.

> It has Pulsar, which is miles ahead of any other lisp's threading abilities.

What about Lisp Flavored Erlang (LFE)? It was designed for concurrency.

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

#39
Common Lisp.

It has standarized, well-documented, proven-for-decades way of doing necessary, common day to day stuff like conditions and restarts (aka "exception handling"), package system, or object-oriented-programming. Consider, for example, that Scheme has no standard way of organizing your code into packages and namespaces. Nor standard exception handling system; you are expected to use a lib, use what the particular Scheme implementation you are using offers or roll your own using the (extremely powerful) continuations feature. Scheme also doesn't have a standard OOP system like CLOS. You can implement all of this in Scheme, but Common Lisp has this standarized, proven, well-documented way for all of that. This makes reading others' people code easily, because common stuff is going to be done in a standard way that you already know.

It is a Lisp-2 which, for me, makes programming comfortable. People always talk about how macros in Common Lisp are "unhygienic" by default, but it is trivially easy to write a hygienic macro on Common Lisp.

It is an ANSI standard and the Common Lisp implementations largely comply with the standard, which means that I can take my code and run it with no changes (or very slight changes) on awesome Lisp implementations like LispWorks, SBCL, CLISP and many others.

There is a big amount of documentation available and in the last 10 years the amount of libraries, books and tooling has increased to make CL programming nicer than ever.

The implementations can be really high performance. SBCL can be had for free and it's performance is awesome. It is amazing that a dynamic programming language could be that fast. Also the implementations are mostly very nice to the programmer.

Common Lisp also allows to do low-level stuff if you like, for example it has full support for bitwise binary manipulation. Numeric support is magnificent and standarized: All CL implementations support real, fractional, complex, int, arbitrary precision numbers, and work with them really quickly.

Clojure seems more limited compared to Scheme or Common Lisp, being tailored for doing everything the functional way; while both CL and Scheme allow you to be 'eclectic' and use whatever programming paradigm the situation calls for.

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

#40
post #26

Scheme. Simple, strongly typed, and really really easy to write and read. On top of that, its fairly easy to compile as well, which gets rid of a bunch of distribution problems that come with other Lisps. My first in-production experience was converting a monolithic Python web app to Scheme. We wrote a library that brought a lot of Python conventions over to make things easier. Like an import macro that automatically…

> Total conversion for ~18,000 LOC Python to ~7,000 LOC Scheme took about nine weeks. The speed-up was about 2.5x.

You should really do a blog post on this and submit it to HN! So people could appreciate the real-world benefits of using a Lisp.

Post reply on HN