I have been officially proclaimed to be the biggest threat to the Common Lisp community right now.
Well, I guess it's sort of an #AchievementUnlocked
@phoe Gosh, that's so bizarre 😅
@phoe Oh man, that reminds me the worst contest I’ve ever seen: Lisp in Summer Projects. If memory serves, it was organised in 2013 by Heow G. of LispNYC, who didn’t like critique either!
First, they published a bunch of unspecific rules, like
will judge each Entry according to the following factors: (1) creativity, (2) thoroughness, and (3) quality of work.
and not much more. There was a timeline at least…
So I’ve written a small Lisp utility, had fun with it and submitted on time. Then, at the very end of the contest, some more specific judging criteria were published. Of course my project that I didn’t treat very seriously turned out to be a piece of shit because I never imagined they’d add more rules when I had finished (or maybe it was after I had submitted my entry? can’t recall exactly).
After entry submission deadline, there was a period of total silence. I’ve sent an email to Heow asking for some updates. I’ve got some reply and they published an announcement, and then went silent for another few months. When I sent another email, he never replied. Apparently he didn’t like being criticised either, even though everyone saw it was not going well.
My friends laugh to this day when I mention the contest. All participants were told they’d get T-shirts. I’ve got mine more than a year after the contest had started! That was hilarious…
@pfm I was not aware of this piece of history! Are there any other resources detailing this?
@pfm Just more details in general, perhaps even I could coerce you into writing an article about it; it does sound like a funny piece of Lisp history that happened too early for me to know about. :D
@pfm I will.
@phoe You can see the story on Google Groups too
So yeah… as Heow put it:
This year’s Lisp in Summer Projects Programming Competition was a huge success.
But that was two years: develop in 2013, be judged in 2014. ;)
@phoe WHAT?! This sort of hostility is insane! Where did this all take place?
@ioa https://github.com/cl-library-docs/common-lisp-libraries/issues/3
Warning: don a hazmat suit before entering.
@phoe @ioa By the way, is this someone making a parody of him? https://status-quo.hexstream.expert/articles/planck-ez-interview/
@phoe WTF?! Why does he claim that you are a threat (!!) to the CL community? It's senseless... 🤔
@mdallastella You are welcome to try and figure it out yourself.
https://github.com/cl-library-docs/common-lisp-libraries/issues/3
@phoe @mdallastella I took a look at some of his projects, which wasn't very hard, given that they all seem to be single-file utility libraries.
I know I'm not a highly regarded expert with decades of Common Lisp experience, which is probably why I have absolutely no idea what this library actually does, even though I'm reading the documentation: https://www.hexstreamsoft.com/libraries/its/
@phoe Yeah, I'm reading it right now... the complains against thread arrows are quite stupid, the main point of Lisp is to be a meta-programming language, allowing to create your own syntax for the problems you're trying to solve.
That guy has been using CL for 14 years, but he has not grasp its core yet.
@mdallastella @phoe Personally, I don't like the threading macros either. I could make a better argument for that if I wanted, but it would boil down to personal preference in the end.
Which ironically is precisely what his argument is. The difference is that he doesn't admit it and instead asserts that his opinion is the only valid one. Which makes sense, given that he even admits that he never reads other people's code.
@loke @mdallastella ...which in turn makes him quite a poor expert since he doesn't, and can't, read other people's code. At least in the way I understand it.
@mdallastella @phoe I read this comment from him:
"If arrows only provide some small value some of the time (and even this I doubt), then I don't think they justify all the overhead (especially cognitive overhead) associated with their use (such as learning to use them and importing them) and especially deciding when to use them or not and how and why."
Now, take that sentence, and apply it to his own micro libraries, which is essentially his entire output.
The irony 🙂
@loke @mdallastella @phoe micro libraries, oof
@mdallastella @phoe Typically it's just better not to invent your own syntax unless you really get some benefit from it. Some CL guys also hate format or loop exactly for these reasons.
As an CL oldtimer, I was initially also quite sceptical of the threading macros in Clojure, but in practice I find them often more clear than n-level deep nesting. Of course, you can use let to achieve similar visual clarity but to me this feels sometimes now like an imperative way of programming. I.e., sometimes this looks like "assign value to this var, use it later randomly whenever you need it" instead of clear composition.
So, to me it's all about preferences and options. Would I introduce the arrow macros into an existing CL codebase? Probably not. Would I consider using them in a new project? Sure, why not.
@schaueho @mdallastella This issue is not really about arrow macros.
If you have about twenty minutes to wasteWspend, feel free to take a deeper dive into the comments section.
@schaueho @mdallastella @phoe To join you off on this tangent :-)
Like most abstractions, they can be used to aid or harm readability. In ML, I moved from using |> to increasingly giving names to intermediate values. And made the same procession in Lisp, where I made a threading macro in like 2001 or so, but then increasingly used let* instead. Giving names to things is generally good.
(loop for years from 1 below 15
collecting 'arrogance)
@phoe This is a rather interesting character to say the least, your patience is amazing
@jkb Thank you. I have actually run out of patience at some point in this discussion; the rest is the skill of discussing civilly even in face of absolute lack of patience and a non-trivial level of frustration.
I have been practicing it and I'm glad to say that the training's paying off.
@phoe Oh, no! You will be debunked too! 😹
@mdallastella NO NO NOT THE DEBUNKY
@juristi Thank you. Please take your time and don't exert your finances; hopefully the book starts from the very basics of Common Lisp, so you should be able to understand it if you have ever done some programming in your life in whatever language. And then, if you have any question, #clschool and #lisp on Freenode IRC should be able to help you with understanding the Lisp basics.
(Alsoooo, my tip jar is this way, too. Just so you know.)
Source: https://github.com/cl-library-docs/common-lisp-libraries/issues/3
A complementary reddit thread that turned out to be surprisingly heartwarming: https://www.reddit.com/r/lisp/comments/jzoimg/please_take_a_second_to_show_support_for_uflaming/