Hacker News new | ask | show | jobs
by hydandata 2462 days ago
I love Common Lisp, which is definitely on the other end of the spectrum, but still enjoy Go a lot too.

For me it is a perfect fit for writing automation, services and command line tools. It is stable, it is simple to use/write/read, it is easy to deploy, it has great IDE support and tooling, it just makes sense in the enterprise, as author himself notes.

I like Rust too, but compared to Go it has the feel of a research project. I think Rust has great future, I definitely see using it, but for now I will stick with CL/TS/Go.

1 comments

Out of curiosity, do you use Common Lisp for work or just for fun? I get to do Clojure about half-time (it was an easy sell due to a lot of our stack being Java), and really like it, but haven't used Common Lisp at all.

If you do get to use it for work, how does it scale (programmer/code-wise, not efficiency-wise) for "real" projects?

I used it at work[0] for a few years and it was great, but I did not scale that project to large number of people, mainly because it did not need to.

Folks at Grammarly have a writeup about how they are using it, it might have more relevant information for you[1].

I would definitely consider using it again, but proper buy-in takes time, and I have simply been moving too fast since then.

I am still not a big fan of Clojure myself, but it is definitely seems easier to sell than CL. In my humble opinion, if you are already a convert the benefits of going from Clojure to CL will not be as great as the ones for going from Java to Clojure.

[0] https://news.ycombinator.com/item?id=13979002

[1] http://tech.grammarly.com/blog/posts/Running-Lisp-in-Product...

I actually went Haskell->F#->Clojure in terms of job progression, so I am ok with largely theoretical stuff.

The reason I ask is that Clojure is an easy-ish sell largely because there's a near guarantee that you will never be blocked due to lack of libraries, since you can mooch off of anything in the Java ecosystem (similar arguments can be made for F#). I hate Java, but it has been around a long time and is extremely popular, and as a result there is a library for virtually anything for it. As far as I know, there is no such guarantee for CL...unless I'm mistaken (which wouldn't surprise me).

When using it for work, did you ever get stuck because of a lack of libraries (e.g. JSON parsing, protobufs, socketing stuff, threadsafe collections)?

> When using it for work, did you ever get stuck because of a lack of libraries..?

Nope, I did find some to be less well documented than ideal, but pretty much everything had tests and/or examples making up for it. Have a look at Quicklisp[0] and explore yourself.

CL has many implementations[1], including the one targeting the JVM, so you can make use of Java ecosystem from it too.

CL has been around a long, long time. First edition of CLTL[2] was released in 1984! and at that point Lisp had already been in heavy use for almost three decades. The standard has not been altered since 1994, and likely never will, but due to its nature innovation continues in the individual implementations and in the community, and there is a well established culture of portability libraries.

[0] https://www.quicklisp.org/beta/

[1] https://common-lisp.net/implementations - Not an exhaustive list

[2] https://en.wikipedia.org/wiki/Common_Lisp_the_Language