Hacker News new | ask | show | jobs
by fiddlerwoaroof 787 days ago
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.

1 comments

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.

And this is just not true: I’ve worked on large lisp programs in various situations with minimal documentation and done just fine.
That's not a strong argument.

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

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.

Scala???

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

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)

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.
Of all things, did you just lob an accusation of ambiguity at Lisp?