4 ms·
> The very power of Lisp, macros, dynamic programming, reflection lead to a mess of an ecosystem where every single developer reinvents the wheel and nobody can
by michaelmrose 2mo ago
> The very power of Lisp, macros, dynamic programming, reflection lead to a mess of an ecosystem where every single developer reinvents the wheel and nobody can understand yet another DSL invented by the next developer next to them.
Have you like looked at anything in the Clojure ecosystem because this description makes no sense of any kind. Clojure has macros but less powerful than common lisp and Clojure code in the ecosystem tends to be small and understandable.
- Zak 2mo agoIt seems to me the Clojure community internalized the lesson of not writing macros unless it's really necessary more than other Lisps did.
- p_l 2mo agoI believe the real issue is that Scheme, which was (through university) often the first and last contact of people with Lisp family languages, has greatly exaggerated case of "everyone reinventing the wheel", and that's before you get into educational reasons that led to people seeing very limited view of Scheme
- kscarlet 2mo agoSo does the community of every other dialect (Common Lisp, at least). Write a function if you don't have to write a macro, and maybe declaim the function to be inlined. The "Lisp Curse" is a ridiculous and tired myth that can only be invented by people who have looked at the language for 5 seconds and went straight to finding an excuse to not learn it.
- Zak 2mo agoIs it? I saw macros and went mad with power. I wrote a macro that could have been a function today. But seriously, I think Clojure has a particularly strong tradition of writing clean, readable code.
- iLemming 2mo agoClojure is actually an interesting case here, because it is hosted. So, you can write a Clojurescript macro that runs at compile time on the JVM, but emits code that runs at runtime in Javascript, e.g. instead of blindly loading and executing some JS lib code, your macro can first parse it, analyze it, and conditionally emit Cljs that changes the runtime behavior. Use-cases for code that writes code across a host boundary are rare, yet enormously useful and really difficult to achieve without homoiconic nature of the language. Hyperfiddle/Electric is a nice project that effectively utilizes the idea.
- epolanski 2mo agoFurther confirming my point on why it is the only lisp with some genuine traction out there.
- iLemming 2mo agoI think you have very little insight to what you're talking about. The modern Lisp landscape is nothing like what it was in the 90s or even 2000s. The amount of practical shit Lispers been quietly building these days is genuinely impressive. Have you ever seen GitHub language stats? Elisp there in the list a few points behind Lua, Elixir, OCaml and Haskell. The amount of Emacs Lisp on GitHub alone should be at least surprising. There's so much Elisp in the wild - the amount of it probably exceeds Clojure, CL and Racket combined. And let me remind you that it isn't a "general-purpose PL" - it's meant for one and only purpose. Look at the number of package for AI-coding in Emacs¹ - 35 and counting. Mind that emacs has no central curated marketplace with the same discoverability as VSCode's. Packages live across MELPA, GNU/NonGNU ELPA, and countless personal repos, so a hand-counted 35 from a Reddit roundup is almost certainly an undercount of what exists in the wild. And that's just one of the observable axes of Lisp. Anyone can join Clojurians Slack and scroll through #news-and-articles, just out of curiosity. It is hard to find a problem space today or a runtime where Lisp has not proliferated. Why? Because Lisp is enormously practical. Just because you convinced yourself it isn't, doesn't change a thing about reality. --- ¹ https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of_agentic_coding_tools_in_emacs_2026/ https://www.reddit.com/r/emacs/comments/1uwm3c0/the_state_of...
- epolanski 2mo agoIt's mostly hobbyism. My point stands.
- iLemming 2mo ago> My point stands. Your point can stand, sit or jump around in a circle - makes no difference. Any ignorant fool can make a hollow point about things they don't fully understand and congratulate themselves in the process. You can make similar "observation" about Linux on Desktop, mechanical keyboards, 3D printing and Raspberry Pi/Arduino tinkering and call them "hobby business". You're essentially conflating "niche" with "unserious". By that logic Linux was a hobby OS and Git a hobby VCS - both literally started as one guy's side project, both now run the industry. Lisp is niche, not unserious: Clojure runs Nubank, Walmart, Cisco and Apple; Common Lisp ran ITA/Google Flights; and most of the features in whatever your favorite language is were Lisp ideas first.