6 ms·
> For them PHP or Java are tools for getting shit done. ... as opposed to Lisp?
by incepted 10y ago
> For them PHP or Java are tools for getting shit done.
... as opposed to Lisp?
- dschiptsov 10y agoYes, Lisp is a distinct, different culture (think of Aryans versus tribes in ancient India). The difference is as it is between craftsmen (who are artists) and assembly-line workers. Look, read Gabriel or Graham or early Norvig (his Lisp style and anti-design-patterns essay), not me. There is something behind their insights.
- pka 10y agoYea, understanding macros and writing your own DSLs doesn't make you some sort of aryan ubermensch programming craftsman. Macros really aren't that hard to get, and mostly not necessary when you have more coherent constructs at your disposal.
- sklogic 10y agoYes, macros are not hard to get - they're far simpler than anything else imaginable. No, they are necessary. There is no better way of doing things than macros.
- incepted 10y ago> There is no better way of doing things than macros. We have invented plenty of better ways since Lisp. Much better ones.
- sklogic 10y agoMind naming a single one? I do not believe such a thing exist. Macros are the ultimate solution.
- ldjb 10y agoThere is much that can be done with regular, bog-standard functions. Yes, macros can be useful in certain cases, but it's often more straightforward to use the Lisp language as it comes. As always, it's important to use the right tool for the job.
- sklogic 10y ago> There is much that can be done with regular, bog-standard functions. You cannot implement simple, modular, debuggable, composable DSLs with functions alone. And you cannot tackle complexity without DSLs. > Yes, macros can be useful in certain cases In most cases. Cannot think of anything beyond "Hello, world" that does not deserve a DSL implementation.
- pka 10y agoFree monads would like to have a word with you about simple, modular, debuggable, composable DSLs. On the other hand macros are anything but composable or modular. Debuggable for some far off definition of debuggable, maybe.
- sklogic 10y agoMonadic interpreters? Composable? Are you kidding? It is a joke, not a composability. You cannot take a type system of one DSL, modules from another and only the expressions syntax from a third one and then mix them all together into a new DSL. And, anyway, interpreters. Who in a sane mind can ever consider an interpreter? Also, you obviously do not realise that macro-based DSLs are by far more debuggable than any monadic interpreter would ever be.
- pka 10y agoBefore we continue, post a link to a free monad DSL you have written; I do not intend to waste my time in a discussion with a zealot. (I can send you examples of macros I've had to write, if you desire.)
- incepted 10y ago> The difference is as it is between craftsmen (who are artists) and assembly-line workers. It's a bit harsh to call Lisp programmers assembly-line workers. I think the language has value and pioneered some language concepts that we find across a lot of languages today, but Lisp is very dated by 21st century standards.