I’m not confident in this answer, but… I don’t think I’d prefer Haskell-of-2020 if you straight up switched it to Lisp syntax. But if you took an early version of Haskell, switched that to Lisp syntax, and then continued evolving that through to 2020, I think I might like that better than actual Haskell-of-2020. (Assuming it managed to get a comparable amount of effort put into it, which is dubious. Not everyone likes Lisp syntax. And assuming the effort was directed by a comparable amount of… taste?, which is also dubious. Like, you’re making the language design process more individualistic but also more democratic, there’s no way that doesn’t have some effect on what you end up with. I don’t have strong opinions on whether the effect is good overall.)
My short experience with Lisp led me to impression that Lisp actually doesn’t have more parentheses than C/Java/JavaScript. It only seems so, because it has less of… all kinds of other things.
If you write the same algorithm in Lisp and in C/Java/JavaScript, the total number of parentheses will be approximately the same in both, but the Lisp code will be much shorter. After realizing this, the parentheses stopped bothering me, because their density suddenly felt like a good thing.
(Also, when you write Lisp code, you usually use an editor that highlights matching parentheses, and even inserts the closing ones automatically based on indentation. So forgetting to match them is actually not a problem in practice.)
Aside from the ease of meta-programming with Lisp syntax – as I mentioned in this comment on this post – the other major (historical) reasons why Lisp was nice to use have been greatly copied by newer languages since.
I’ve found functional programming languages to be roughly as nice as the Lisps I’ve used previously, and with more ‘standard’ syntaxes.
But meta-programming can be extremely powerful and thus anything that makes it easier can be pretty useful too.
Clojure was the most recent Lisp (or Lisp-like) language I used. It’s very nice and much more ‘batteries included’ than other Lisps I’ve played with in the past.
I’ve been doing a lot of work with Elixir lately. It doesn’t have Lisp syntax, but I find it too be very nice in a lot of the ways that Lisp languages often are too.
Would you actually prefer Hakell with Lisp syntax? Or is that not the point, and you just wanted a project that would teach you various things.
It’s partly the point.
I’m not confident in this answer, but… I don’t think I’d prefer Haskell-of-2020 if you straight up switched it to Lisp syntax. But if you took an early version of Haskell, switched that to Lisp syntax, and then continued evolving that through to 2020, I think I might like that better than actual Haskell-of-2020. (Assuming it managed to get a comparable amount of effort put into it, which is dubious. Not everyone likes Lisp syntax. And assuming the effort was directed by a comparable amount of… taste?, which is also dubious. Like, you’re making the language design process more individualistic but also more democratic, there’s no way that doesn’t have some effect on what you end up with. I don’t have strong opinions on whether the effect is good overall.)
Thanks! I’ve never used Lisp, but all the parentheses strike me as unappealing. Maybe I would like it if I tried it though.
My short experience with Lisp led me to impression that Lisp actually doesn’t have more parentheses than C/Java/JavaScript. It only seems so, because it has less of… all kinds of other things.
If you write the same algorithm in Lisp and in C/Java/JavaScript, the total number of parentheses will be approximately the same in both, but the Lisp code will be much shorter. After realizing this, the parentheses stopped bothering me, because their density suddenly felt like a good thing.
(Also, when you write Lisp code, you usually use an editor that highlights matching parentheses, and even inserts the closing ones automatically based on indentation. So forgetting to match them is actually not a problem in practice.)
Aside from the ease of meta-programming with Lisp syntax – as I mentioned in this comment on this post – the other major (historical) reasons why Lisp was nice to use have been greatly copied by newer languages since.
I’ve found functional programming languages to be roughly as nice as the Lisps I’ve used previously, and with more ‘standard’ syntaxes.
But meta-programming can be extremely powerful and thus anything that makes it easier can be pretty useful too.
Clojure was the most recent Lisp (or Lisp-like) language I used. It’s very nice and much more ‘batteries included’ than other Lisps I’ve played with in the past.
I’ve been doing a lot of work with Elixir lately. It doesn’t have Lisp syntax, but I find it too be very nice in a lot of the ways that Lisp languages often are too.