← Back to context

Comment by epolanski

12 days ago

As someone who's both versed in Lisps (CL, Racket, Scheme, Clojure) and JavaScript: thank god.

It's like the Lisp crowd can't be honest with itself and not realise the serious shortcomings of lisp projects are: maintainability.

Every single lisp project out there, hell this also applies to Haskell, is so radically different because everybody's too busy reinventing its own abstractions and macros (and language extensions in case of Haskell) that you just throw your hands up in the air in dismay.

It's like the Lisp crowd, that can barely attract like-minded people to collaborate on some simple open source projects out there so you get 20 broken JSON parsers, cannot see the link between that issue and industrial lisps.

I love lisps, they are fun, they have their place in the industry when you leverage them to their core strengths.

Try to ask yourself: why does PHP has more quality killer-software than all of lisps combined?

> everybody's too busy reinventing its own abstractions

Isn't that the problem with Javascript too, though? Javascript isn't good enough, let's all use jQuery. No, jQuery isn't good enough, let's all use Vue. No, Vue isn't good enough, let's all use Angular. No, Angular isn't good enough, let's all use React. No, React isn't good enough, let's...

  • This is very disingenuous. The frontend world does move quickly, but the part of the stack you're describing has been reasonably stable.

    Vanilla JS was replaced by jQuery after about a decade. A decade later, React/Vue/Angular (React came first, not last) replaced jQuery

    There was a paradigm shift in the kind of websites that people wanted to build. For better or worse, we went from HTML + CSS with some JavaScript (jQuery) to SPAs. It's easier for a team of junior developers to build a SPA with React compared to jQuery.

    The abstractions that you're describing changed because the goal changed.

    ---

    There has been plenty of churn around build tools, libraries on top of React/Vue, the paradigms within React/Vue (Hooks, Vue 3 composition API), state management libraries, and the adoption of TypeScript.

    Again, this isn't really reinventing abstractions as much as dealing with an evolving language that wasn't designed for the applications we're building today (though it is clearly quite capable!)