Sorry if I am being ignorant, but can someone explain to me Hackernews' obsession with Lisp? I don't hear anyone talk about Lisp or use Lisp anywhere except on Hackernews.
It’s a nice and powerful family of languages with lisp, scheme, clojure etc. Just because people who don’t have experience have the ‘ewwww parens’ reaction when they see it, it’s not used a lot. Similar to APL families (modern versions should be relevant to ML: numpy etc are basically APLs with different syntax).
I personally believe everyone should try different paradigms and languages even if you never use them. First of all it will help you see patterns later on, which results on learning whatever programming language in a very short time when you need it. And it opens your eyes to how powerful some of them are, and even to get most out of your ‘day job’ language.
There was someone on Twitter who was programming c# fulltime for a decade or so, and didn’t know you could ‘int i=0; for(;i<x;i++)’. Then the comments saying ‘oh I thought that was only c/c++’. That is a fundamental lack of understanding; how do they think this works? Magic? When you have seen many languages, you discover interesting properties that are normal in other languages but still possible and actually beneficial in your most used one. Lisp/Scheme deepdives are known to give this type of insight that will stay with the professional developer forever, making them better, not necessarily using Lisp.
> ...It's dirty laundry that needs airing. The problem: Paul Graham. I mean, the guy's a genius, and I love reading his essays, and his startups are doing great things, etc. etc. You can't fault him. But he's created something of a problem.
> Before Paul Graham, Lisp was dying. It really was, and let's not get all sentimental or anything; it's just common sense. A language is always either gaining or losing ground, and Lisp was losing ground all through the 1990s. Then PG came along with his "I'm not talking to you if you're over 26 years old" essays, each a giant slap in our collective face, and everyone sat up and paid attention to him in a hurry. And a TON of people started looking very seriously at Lisp.
This is why you can't trust HN as the general opinion among people or even programmers. They are a very specific subset of programmers who are more likely to be interested in things like Lisp.
> Paul Graham (Y Combinator co-founder) has a lot of essays on Lisp or mentions of Lisp
Nobody mentions them much here for some reason, but also the books ANSI Common Lisp and On Lisp, at one time considered almost essential reading. I still think they're fantastic but they're not for instant gratification as they don't give you much in terms of immediate practical applications or real world system examples. Nevertheless they are among my favorite books on programming and I wouldn't be surprised if many people who come here similarly "cut their teeth" with those books.
Because HN users tend to be interested in niche but powerful languages, they are not to be trusted to know programming in general?
Weird argument to close an otherwise excellent comment. I'd rather listen to the opinion of someone that also knows niche things, than one that only knows the mainstream and nothing else.
Also which group is more likely to create beautiful products such as a portable Lisp machine?
> Because HN users tend to be interested in niche but powerful languages, they are not to be trusted to know programming in general?
No, the parent comment meant that HN users are not a representative cross-section of programmers in general. This manifests itself, for example, in relatively niche languages being mentioned and discussed disproportionately often.
In other words: just because HN loves it doesn't mean everybody else knows it.
This is similar to the love HN has for autonomous driving. Most people outside here mostly despise the idea. So HN is not representative of society in general, But this doesn't mean the HN crowd is wrong.
I have tried it: I wrote multiple Lisp interpreters, including a Scheme in C with garbage collection and basic call/cc. I wrote a simple regex engine in Scheme. I wrote a basic just-in-time transpiler from elisp to Javascript. I dabbled with Common Lisp.
I still don't like it:
- a quality implementation of any Lisp is _not_ easy, e.g. just look at SBCL or Chez Scheme
- minimalistic implementations are a selling point, but I take Lua over any minimalistic Lisp anytime. Chances are that a Lua interpreter library will be smaller. Micropython runs on anything slightly more powerful than Arduino nowadays and gives you objects and async on an effing microcontroller.
- developer experience is miserable/ascetic, even compared to Lua (maybe except Clojure). Things we take for granted (dictionaries/hashmaps/object properties) are still missing from Lisps.
- structural editing is now available for any language that supports a proper language server (which almost any modern language does). s-exprs failed to become a common data language for anything. It's possible to have a simple and humane syntax at the same time (Zig, Go, Lua)
- I've learned to avoid macros and dynamic code generation unless I have a very good reason to use them in any language, otherwise they are a code smell.
It was painful for me to watch the video in the article where the author counts parenthesis and gets the job done in spite of the language, not because of it.
I thought this video would get maybe 100 view at most, or I would have put more effort into it (like implemented paren matching in the editor first).
I like lisp (and apparently it's good HN bait). But the language is not really the core of this project.
It is more about making a truly personal computer. One that doesn't require you to think about charging or software updates. That is always fast and responsive and ready to use as it is never doing something strange in the background. Simple enough for me to feel like I understand how everything works.
And writing your own OS for it is easy if you wanted to - you could implement forth, lua, a small C compiler - whatever you wish, and these properties would still be preserved.
Your project is really admirable (I'd like to make a tiny computing machine and a full computing stack myself at some point), and having fun is a sound reason to use Lisp :)
It was just me and my pet peeve that Lisps stopped being a superpower decades ago.