Live data from Hacker News

Why didn't Common Lisp fix the world?

quora.com

121–127 of 127 posts

Re: Why didn't Common Lisp fix the world?

#121
post #88

Earlier quoted context omitted.

Now that's moving the goal posts. You then claim that I am nitpicking and Lisp eliminates not all complexity but only the complexity software engineers care about (not true either: even Lisp programs don't write themselves and someone still has to type in the letters). After that the conversation moves into wishy-washy domain of opinions which can be debated forever without ever reconciling them.

Pay attention to what you're answering to. It was you who moved the goal posts. > there are well known techniques for eliminating any complexity you can find in a chain of compiler transforms , Can you imagine finding a working termination proof in a compiler pipeline and finding yourself in a dire need of simplifying this complexity down to something manageable?

vitaly is that you?

Re: Why didn't Common Lisp fix the world?

#122
post #119

Earlier quoted context omitted.

Consider this snippet of C code: struct foo { int x; } Do you care how the structure definition is represented in your compiler? is it a list, a vector or a custom data-structure? You don't know, and it doens not matter to you. Besides, it is totally different from what you manipulate at runtime (for type definitions, not much). Consider the second snippet: for(int i = 0; i Should the internal representation for the…

you're talking from the perspective of an experienced lisper. i'm talking from perspective of somebody that wasn't convinced by CL but was later convinced by Clojure. that is the whole point of the thread - why hasn't lisp caught on, and i'm an example of both failure and success in that regard. i mostly agree with all you've said, just few comments: > I think it adds complexity to the compiler which has to walk diff…

> you're talking from the perspective of an experienced lisper.

If I am an experienced Common Lisper, it is because I was once a noob Common Lisper and already not bothered by syntax. Maybe that's because I already had experience with several other languages, which have all some superficial negative aspects. That being said, I prefer to use CL but I don't mind using Clojure.

> either you deal with complexity or your users will have to.

I did not say the complexity was necessary present in one case or another. Biased as I am, I see no complexity with a simple, regular usage of parenthesis. Brackets and braces are good in the eye of other kind of people, sure.

> that is the whole point of the thread - why hasn't lisp caught on, and i'm an example of both failure and success in that regard.

Well, should we generalize from your example then, when it is not appropriate to do so in my case?

Besides, I was mostly responding to your posts about literal values.

Re: Why didn't Common Lisp fix the world?

#123
post #122

Earlier quoted context omitted.

you're talking from the perspective of an experienced lisper. i'm talking from perspective of somebody that wasn't convinced by CL but was later convinced by Clojure. that is the whole point of the thread - why hasn't lisp caught on, and i'm an example of both failure and success in that regard. i mostly agree with all you've said, just few comments: > I think it adds complexity to the compiler which has to walk diff…

> you're talking from the perspective of an experienced lisper. If I am an experienced Common Lisper, it is because I was once a noob Common Lisper and already not bothered by syntax. Maybe that's because I already had experience with several other languages, which have all some superficial negative aspects. That being said, I prefer to use CL but I don't mind using Clojure. > either you deal with complexity or your…

> Biased as I am, I see no complexity with a simple, regular usage of parenthesis.

> If I am an experienced Common Lisper, it is because I was once a noob Common Lisper

> should we generalize from your example then, when it is not appropriate to do so in my case

if we do so carefully? obviously there is some spectrum of how mentally exhausting various aspects of language's syntax are for people, and how prepared/willing different people are to wrap their heads around those aspects.

crude analogy would be saying unary number system is better than decimal because it's simpler (via having less "things"), all operations are more intuitive and there is no complexity in dealing with all those digits.

just as we use decimal instead because we have physiological reasons to do so, it's not outlandish to suppose that we have psychological reasons to prefer syntax that is more rich than what CL provides out of the box but also not too rich because it's mentally exhausting. clojure seems to be hitting the sweet spot(at least within lisps family) and while many factors are at work here, the evidence is that clojure quickly became more popular than cl.

to be clear, i'm not saying here that popular = better, of course.

Re: Why didn't Common Lisp fix the world?

#124
post #88

Earlier quoted context omitted.

Pay attention to what you're answering to. It was you who moved the goal posts. > there are well known techniques for eliminating any complexity you can find in a chain of compiler transforms , Can you imagine finding a working termination proof in a compiler pipeline and finding yourself in a dire need of simplifying this complexity down to something manageable?

vitaly is that you?

Is it a problem? Is it even relevant at all?

Re: Why didn't Common Lisp fix the world?

#125

Earlier quoted context omitted.

vitaly is that you?

Is it a problem? Is it even relevant at all?

Well, sorry for shying away from technical discussion and mildly doxing you. But it is truly remarkable that your style remains recognizable across decades, languages, nicknames and discussion forums. I am actually honored to have a small discussion with you :) Hope you are well.

Re: Why didn't Common Lisp fix the world?

#126
post #104
post #103

Earlier quoted context omitted.

How does static type checking work in CL? One of the most important use cases for static typing is safe modification of existing code, like during refactoring. So a typical example: I have some struct with a field of one type, say a string. I use it in a few functions, reading and writing it. Now I change the field to a different type, say an array of strings instead. I want the compiler to tell me about all the code…

If you wanted to define a type-safe person struct, you could do it with: (defstruct person (age 0 :type fixnum) (name "" :type string)) Now every access to that person structure should be checked by the compiler. You can create a person like: (setf p (make-person :age 7 :name "fred")) => #S(PERSON :AGE 7 :NAME "fred") But not with: (setf p (make-person :age 7 :name 8)) which causes SBCL to error with: The value 8 is…

Thanks! I vaguely remembered there being some problems with that, but playing around with it, it works fine and as I'd expect. Sweet! Gotta revisit CL soon then.

Re: Why didn't Common Lisp fix the world?

#127
post #117

Earlier quoted context omitted.

In what world is Java halfway to lisp?

In a world filled with COBOL, C, Powerbuilder, CICS. Oh, and TELON.

And there may have also been a language GOOFBOL (where BOL is Business Oriented Language), but I may have just made that up.
Post reply on HN