4 ms·
I wonder why there is all the anguish around why Lisp hasn't flourished, and seemingly less anguish around APL, or even Smalltalk. Is there a reason it engende
by xrange 11y ago
I wonder why there is all the anguish around why Lisp hasn't flourished, and seemingly less anguish around APL, or even Smalltalk. Is there a reason it engenders so much loyalty? Is it the idea that macros allow you to extend the language, and that seems like the pinnacle of the programming hierarchy? Could there be insight gleaned from looking at programming languages as a fad or style?
- Jtsummers 11y agoFor me, lisps (CL, scheme, or any other variant) hit a nice sweet spot. You're programming at the AST layer, which makes adding new semantic features (say you wanted erlang style concurrency and message passing) trivial to integrate syntactically (less trivial to implement the underlying feature). Compare this to trying to patch that into C#. Same for any new semantics: logic languages; specific constructs for math, physics, music; OO - see CLOS. APL is less extensible in this regard (to my understanding, someone might prove me wrong). Smalltalk is probably on par, if you can model it with objects and methods/messages cleanly. But in the end, for me, it's the idea of programming the AST directly and being (mostly) freed from arbitrary syntactical constructs.
- AnimalMuppet 11y ago> You're programming at the AST layer, which makes adding new semantic features (say you wanted erlang style concurrency and message passing) trivial to integrate syntactically (less trivial to implement the underlying feature). To me, this hits the nail on the head, for all the wrong reasons. Syntax isn't the problem, implementing the feature is! If I'm writing Lisp code, why do I want it to look like Erlang? What's wrong with it looking like Lisp? ("Erlang style concurrency and message passing" is two things, syntax and functionality. Do you want the functionality? Fine. You want the syntax too? Why?) In fact, this is kind of what the article is about. People want the syntax "their way"; it makes it hard for others to work with their code. The only time you should invent new syntax is when it is impossible (or very hard) to say something in the syntax you've got. "I don't like it" isn't good enough. "It will save me a few keystrokes" isn't good enough.
- tanker 11y agoI think it is because, for a lot of people, Lisp is fun. If Lisp flourishes, more people would get to use it at work. Lisp not flourishing means less fun. Also, when I've worked in Lisp it just seemed like the right way to do things. Everyone likes to do the right thing, so anguish results when you seem denied the opportunity to follow the path you feel is right. That said, I think the author was right and the community issues and ease of building your own solutions will limit Lisp as a language family.
- xrange 11y agoIf you substitute APL or Smalltalk into what you've written, I don't see a majority of APL and Smalltalk users disagreeing with it.
- lokedhs 11y agoI can definitely subscribe to the idea that Lisp is fun. The application I have been writing (featureful chat application like Slack) has a server side completely written in Common Lisp by myself. Why do I work on it even though it's unlikely that it will ever draw anyone away from Slack? Because it's fun. Is it possible to do the same in another language? Sure, Slack is proof that it's possible. But would I have persisted in actually doing it without any hope of profit? No, because programming in other languages is a chore, and the only light at the end of that tunnel is the finished product. With Lisp, the journey is a reward of its own. Yes, I know the same thing has been said by Haskellers and others, but I doubt it was ever said by a C++ programmer.