4 ms·
The “downsides” you list are actually benefits that non–lisp users try to downplay. Especially macros. Macros give an individual the ability to write things in
by db48x 2y ago
The “downsides” you list are actually benefits that non–lisp users try to downplay. Especially macros. Macros give an individual the ability to write things in Lisp that would take a team in any other language. There’s nothing that says a team cannot gain the same multiplier.
- deleted 2y ago[deleted]
- Barrin92 2y agoThe problem is that teams don't consist of the same people for eternity and when new people come in and you have to figure out the three DSLs that an old lisp wizard has cooked up you run into problems. With Lisp one person has the expressiveness of an entire team, but that also means it might take an entire team to figure out what one person did in the first place. The success of Go stems from the fact that Go code in one place has a 99% chance of looking exactly like it does everywhere else. The power of lisp outsources complexity to readers, the simplicity of a constrained language imposes it on the writers, and because code is read more often than it's written, in a big project consistency beats expressiveness.
- db48x 2y agoThat’s how people typically downplay the advantages of Lisp, yes. It’s not really true, but it often works.
- Barrin92 2y agoand you presumably have an argument for why that isn't true? I've seen exactly this at about three or four companies that had used Clojure. Successively switched to rewrite their codebases in Java because the Clojure codebase became too idiosyncratic as time went on and new workers had trouble being productive in it. What is it with Lisp advocacy that turns people into religious advocates where market adoption seemingly doesn't matter, because it paints a very clear picture.
- kazinator 2y agoIf you bring in new people who know Java and don't want to learn anything else, of course the result will be a rewrite in Java. Not being able to find Clojure people is a problem, but not indicative of any problem with the code itself.