News for hackers. Stuff that matters.
Re:Channels in Common Lisp by codr4life on Friday January 20, 2017 @12:05AM (#13441837)
What you're saying is really that it's too powerful for it's own good. And I agree. But what's good for Lisp isn't necessarily good for me, I prefer more power to one size fits all libraries. I think it comes down to experience in the end; the more you have, the more unwilling you are to give it up.
Re:Channels in Common Lisp by reikonomusha on Friday January 20, 2017 @12:26AM (#13441885)
I disagree about it being "too powerful for its own good". If it was, we would have a magnificently efficient and useful library come out of this that brings Go- or Erlang-style programming to Lisp. But alas, this code does not.

A lot of hardcore Lisp aficionados do the equivalent of a mathematician writing a "sketch of a proof" and saying "left as an exercise", without ever writing the details of the proof. It's occasionally aggravating when you pull in a library and discover that this is the case.

To be clear, there are many Lisp folks do not do this. Some go the full mile and implement something completely and robustly. Edi Weitz has been the canonical example in the community.

Re:Channels in Common Lisp by codr4life on Friday January 20, 2017 @01:10AM (#13441989)
Completely, what is that? Doesn't that depend on context (as in problem being solved)? Simple is often faster, and these are pretty fast without even trying. There is plenty of room for simple, fast enough code. Owning code you understand is an advantage.
Re:Channels in Common Lisp by rtpg on Friday January 20, 2017 @04:06AM (#13442510)
Completeness means being as performant as possible on all the possible axes.

You might want simplicity, but users also want performance. So a complete solution will be performant, but simple.

You have one use case, but other users have others. A complete solution will work in as many use cases as possible given its constraints.

Scala's parser combinators are a good example of a complete solution. It offers the "elegant" solution of parser combinators. But it also offers an implementation of this using things like Packrat parsing that are extremely efficient.

The non-complete example of this is someone who writes a parser combinator library that is simple, but simply not performant for real world use. For example, you might write a simple version in Python, but not properly apply TCO and so your parser can't handle deeply nested structures because of a stack overflow.

---

With regards to owning code, I remember hearing that it took 9 years of the initial publication of quicksort for there to be a bugfree implementation of it. Even easy things can be tricky.

Re:Channels in Common Lisp by jonathanstrange on Friday January 20, 2017 @05:02AM (#13442692)
Completely, what is that?

Well, comprehensive unit tests for a start...

Re:Channels in Common Lisp by codr4life on Friday January 20, 2017 @07:21AM (#13443263)
What's comprehensive? Doesn't that too depend on context? I'm with Kent Beck on tests. I'll test as much as I have to too move forward with confidence. In the end, my goal is to write working code, not tests.
Re:Channels in Common Lisp by TeMPOraL on Friday January 20, 2017 @05:06AM (#13442706)
> A lot of hardcore Lisp aficionados do the equivalent of a mathematician writing a "sketch of a proof" and saying "left as an exercise", without ever writing the details of the proof. It's occasionally aggravating when you pull in a library and discover that this is the case.

That's exactly "too powerful for its own good". It's so easy to write a half-assed sketch of a library that nevertheless gives you some new powerful feature, that some people end there, and publish the sketch that was enough for their use case.

Re:Channels in Common Lisp by wtbob on Friday January 20, 2017 @10:13AM (#13444329)
I guess I should have mentioned that Lisp is my language of choice. I like the ease with which I can implement anything. But it does have a cost: everyone else implements everything himself, too.

I actually think Quicklisp has helped. It's even easier to do (ql:quickload "foo-lib") than it is to write my own foo library.

Re:Channels in Common Lisp by nickik on Friday January 20, 2017 @06:37PM (#13447844)
Everybody can do that stuff in Clojure too, and it does not suffer from the same thing CL does. It seems to me that it is a culture/ecosystem problem more then anything else.