other-languages

here be heresies and things we have to use for work
arrdem 2016-05-14T01:44:19.000650Z

Has anyone used Common Lisp and care to give an apology for why I should look at it?

arrdem 2016-05-14T01:44:43.000651Z

I looked briefly at Scheme and CL before I learned Clojure and walked away from both due to lack of useful library infrastructure.

arrdem 2016-05-14T01:45:00.000652Z

quicklisp seems to have helped with this, but I haven't actually used it in anger.

2016-05-14T04:55:11.000654Z

CL is fantastic.

2016-05-14T04:55:36.000655Z

compile time type checking in SLIME is insanely valuable

2016-05-14T04:55:45.000656Z

aardem^^

2016-05-14T04:55:52.000657Z

CLOS blew my mind wide open

2016-05-14T04:56:27.000658Z

'tis what all OOP systems i've ever learned wished they were

2016-05-14T04:56:42.000659Z

but even calling it OOP is a bit of a misnomer

2016-05-14T04:57:19.000660Z

the multiple dispatch system is superb

2016-05-14T04:57:41.000661Z

the restarts system is what every other try/except implementation wishes it were

2016-05-14T04:57:47.000662Z

the whole language hangs together as a coherent, designed thing.

2016-05-14T04:59:05.000663Z

for instance, from emacs, jump-to-def on a method will pop up a buffer listing /all/ implementations of that method, with handy function signatures and type annotations for each

2016-05-14T05:00:07.000664Z

there is some insane shit in there too, for instance the ability to update all instantiations of a class to a new class definition

2016-05-14T05:00:19.000665Z

"why would you ever /do/ that?"

2016-05-14T05:00:42.000666Z

well many old systems that CL descended from were designed to /never be restarted/

2016-05-14T05:01:07.000667Z

SBCL, for instance, implements save-lisp-and-die

2016-05-14T05:01:49.000668Z

which serializes the running lisp image to disk along with a function to call to boot it back up

2016-05-14T05:03:56.000669Z

i could go on, but the best summary i can offer is that in my extremely short career i've learned that the culture of software likes to reinvent all of software every .75 decades, and CL is an example of a 30-year old programming environment that not only solved it all, but did so elegantly, coherently, /beautifully/, and more completely than any of the modern languages i've touched.

borkdude 2016-05-14T08:59:56.000670Z

I have used Common Lisp for about a year. It was my first Lisp and left me unsatisfied with everything I discovered after it, except Clojure.

tjg 2016-05-14T11:39:24.000673Z

@arrdem: The Lisp Machines might interest you. (Like Symbolics Genera.)

tjg 2016-05-14T11:39:26.000674Z

Here’s a demo of the operating system: https://www.youtube.com/watch?v=o4-YnLpLgtk

tjg 2016-05-14T11:39:32.000676Z

Never used it personally (though I’ve had a couple jobs using Common Lisp), so for me it’s more an imaginative mindset to critique and better understand the Unix experience: - the Unix commandline is like a REPL (what they called a “Lisp listener”) - instead of a general language UI, Unix has a system language (C) + scripting language (usually bash) + application languages (Java, Python, Clojure...) - Unix is too static and un-unified to let you click on an object, see its sourcecode, and modify it on the fly - Unix has core dumps rather than a debugger

tjg 2016-05-14T12:08:43.000682Z

Though come to think of it, I just got into Docker (which so far I think is unusually nicely-designed); to what extent does the traditional OS matter anymore? If everything runs in isolated containers and communicates via message-passing... seems there’s space for a decent dynamic layer(s) above that.

2016-05-14T15:44:46.000686Z

while we're on the topic of symbolics: https://www.youtube.com/watch?v=6uPwQuxjgQo

tjg 2016-05-14T18:01:03.000688Z

@bvulpes: Thanks, found it very inspiring!

tjg 2016-05-14T18:28:50.000689Z

@arrdem: Oh, forgot to mention: as you probably know, the main Common Lisp hangouts were basically troll cultures, last I checked. Toxic. http://lispforum.com is decent, and so’s LispWorks’ forum (if you use LispWorks).

arrdem 2016-05-14T18:30:36.000690Z

Yeah. I'm aware.

arrdem 2016-05-14T18:30:47.000691Z

Interesting links / commentary, thanks all.

borkdude 2016-05-14T18:32:22.000692Z

Ah yes I remember asking a question on a Common Lisp mailing list once. The replies didn't make me feel too good.

arrdem 2016-05-14T18:33:54.000693Z

So I'm well aware of the Lisp Machines... and I'm also really not interested by them.

arrdem 2016-05-14T18:34:44.000694Z

Technically speaking the machines we have today are strictly superior in all but ergonomics, and that's a question of investment which markets seem to have shown isn't required.

arrdem 2016-05-14T18:36:07.000695Z

I think the thing that puts me off about CL, despite its place in history, awesome performance and many features is that it's a very old, very insular culture which has no apparent interest in onboarding people or evangelizing if indeed they have something we don't of which I'm not convinced.

borkdude 2016-05-14T18:36:36.000696Z

They have a new website: http://lisp-lang.org

arrdem 2016-05-14T18:36:39.000697Z

Heh.

arrdem 2016-05-14T18:37:52.000698Z

They also have the hyperspec which while not great puts Clojure's docs to shame...

arrdem 2016-05-14T18:38:08.000699Z

Even what bits I've rewritten for http://conj.io

tjg 2016-05-14T18:39:53.000700Z

Ah, I should've asked what sorts of things interest you... to see what (if anything) in Common Lisp meets your interests.

borkdude 2016-05-14T18:40:30.000701Z

well, Paul Graham recommends Clojure instead of Common Lisp now, FWIW 😉

arrdem 2016-05-14T18:41:47.000702Z

@tjg: all good. I spent some quality time here at school doing computer architecture, so this is a particularly sore spot for me 😛

arrdem 2016-05-14T18:49:35.000704Z

The primary criticism I got of that piece was that LispMs weren't about FP, to which my rhetort is that while they weren't they're being held up by the Lisp/FP crowd of today as some lost Eden which I think is a negative collective self-delusion. I'm inclined to level a similar criticism against the "clisp is better" pattern of thought. The idea that we've meaningfully lost anything in particular is explicitly defeatist and fails to acknowledge the limitations of prior art.

arrdem 2016-05-14T18:50:13.000705Z

My 0.02, would love to be shown wrong.

arrdem 2016-05-14T18:51:29.000706Z

found another one @borkdude http://gotlisp.com/ 😛

borkdude 2016-05-14T19:00:58.000708Z

I have moved on. I like a language that embraces immutability from the core, it's my definition of FP: first class functions + immutability. When I only knew Common Lisp I thought first class functions were enough, but no.

borkdude 2016-05-14T19:01:49.000710Z

Maybe there will come a time when I say: types, monads, etc, else that's not FP, but I'm not yet there.

2016-05-14T19:04:25.000711Z

arrdem: do the chip designs not count as lost?

2016-05-14T19:05:25.000712Z

not to mention the ability to actually stop the chip/nic-equivalent and inspect their states?

2016-05-14T19:06:03.000713Z

i read the schem-76 paper recently and the ability to actually stop and inspect the chip sounds pretty amazing, and pretty far from where we are now.

arrdem 2016-05-14T19:07:42.000714Z

I mean... it's cool sure but why do you need it? we can still build logical debuggers without it as evidenced by gdb, sbcl, the Java debugging frameworks etc.

2016-05-14T19:08:33.000715Z

that strikes me as giving up on debugging the hardware, though.

2016-05-14T19:09:00.000716Z

i am way out of my depths here, though. all of my formal training is in applied physics, not complang/execution environment design/impl

tjg 2016-05-14T19:52:32.000717Z

@arrdem: Interesting article! The criticisms you mentioned getting (about FP) don’t seem relevant to it.

tjg 2016-05-14T19:52:32.000718Z

I don’t advocate Common Lisp, but you requested “an apology for why I should look at it.” 🙂 Personally haven’t touched or thought about Common Lisp for a couple years.

tjg 2016-05-14T19:52:35.000719Z

There’s circumstances where Common Lisp fits better than Clojure, but privately I consider it a dead language. (Of course, people benefit from learning “dead languages” all the time.)

tjg 2016-05-14T20:24:54.000721Z

Though, I think there’s truth to the “lost Eden” mindset. People like Alan Kay point out a slowdown of computing innovation around the 1970-80’s. http://stackoverflow.com/questions/432922/significant-new-inventions-in-computing-since-1980

tjg 2016-05-14T20:25:02.000723Z

Some point out that major factors around 1970 are changes in the economy, increased bureaucratization of universities, and privatization of research. (Like in the 2nd half of this article: http://thebaffler.com/salvos/of-flying-cars-and-the-declining-rate-of-profit )

tjg 2016-05-14T20:25:24.000727Z

In the programming world, one manifestation could be a bunch of disgruntled Lispers... 🙂