←back to thread

141 points winkywooster | 8 comments | | HN request time: 0.001s | source | bottom
Show context
epolanski ◴[] No.40217466[source]
> Lisps have great control over what happens at compile-time, which lets you do incredible things.

> Lisp programmers have struggled ever since it was invented to explain why this is so powerful and why this has a major impact on simplifying software development

I've written some Common Lisp, Scheme, Racket.

I like them.

But what op defines as a feature is actually what kills all those lisps but Clojure where macro abuse is rare.

Everybody implementing their abstractions, every library implementing their own language, I like those features, macros are fun, but it just doesn't scale neither in open source and even less at work.

Haskell to some extent too suffers the same issue, simple Haskell is nowadays a dead project, but every single project has different language extensions, syntax, etc..

I feel like Lisp and Haskell attract people that love programming more than shipping code.

Which is why at the end of the day, php has more killer software than all those languages combined.

replies(5): >>40217975 #>>40218227 #>>40218333 #>>40220555 #>>40221174 #
fiddlerwoaroof ◴[] No.40217975[source]
This is one of those perpetual myths about macros. Ruby on Rails metaprogramming is often harder to debug than macros in Common Lisp. Flink and Spark work by generating and loading Java code at runtime (macros) but, since Java has no language-level support for macros, the generated code is very hard to inspect and debug.

What killed most lisps was the AI Winter and the concurrent drying up of DARPA funding.

replies(1): >>40218437 #
1. epolanski ◴[] No.40218437[source]
I don't think I've expressed myself well.

When I say software at scale I mean:

- going on GitHub opening a file and understanding what's happening

- reviewing a PR and figuring out stuff without requiring an ide

- having easy onboarding with devs already accustomed to a base language and its patterns

Java, C, TypeScript, Scala, Kotlin, etc. Pretty much all major languages offer this: less power but much less ambiguity and mental overhead.

Lisps (with a minor exception for clojure) and Haskell are just not those languages.

Which, again, is why all of those languages produced very little software worth of mentioning for decades.

replies(5): >>40218462 #>>40219416 #>>40219972 #>>40221301 #>>40230977 #
2. fiddlerwoaroof ◴[] No.40218462[source]
And this is just not true: I’ve worked on large lisp programs in various situations with minimal documentation and done just fine.
replies(1): >>40223479 #
3. jimbokun ◴[] No.40219416[source]
Scala???

The language that never met an abstraction it didn’t immediately incorporate into itself?

4. fulafel ◴[] No.40219972[source]
There's a place for languages that are the COBOL of their niche, yes. Depending on how you look at it, they are DSLs too.

Javascript in the browser is actually an interesting case here. (And after Javascript spralwed out... ClojureScript is the nicest way to write React apps)

5. tome ◴[] No.40221301[source]
That's interesting, because to hit all those points I'd prefer Haskell! I've never found another language where it's so easy to jump into an unfamiliar codebase, or to come back to code I wrote years ago and get started again immediately. By contrast, I don't think I could read idiomatic Java without requiring an IDE to help me navigate.
6. epolanski ◴[] No.40223479[source]
That's not a strong argument.

That's like saying world hunger does not exist because you had lasagna for dinner.

replies(1): >>40227639 #
7. fiddlerwoaroof ◴[] No.40227639{3}[source]
How about the existence of major pieces of software written in Common Lisp? For example, American Express fraud detection was and maybe still is done by a CL program. Google Flights uses ITA Software’s CL flight search system. Emacs is widely used and contains a lot of lisp.

I think basically no languages have failed or succeeded for technical reasons: generally, marketing and inertia explains the tech stack better than DX or theoretical superiority.

8. kazinator ◴[] No.40230977[source]
Of all things, did you just lob an accusation of ambiguity at Lisp?