Ask HN: Lisp users, how powerful is metalinguistic programming?
9 points by tytrdev 3 years ago | 2 commentsFor those of you who find it vital to the way you work/think, do you think the same level of power is possible with anything other than Lisp?
Would you rather work with a system that embeds various computational approaches into an environment with metalinguistic capabilities, such as lisp? Or would you rather use a system that glues together various tools that are focused on whatever approach is needed for a specific piece?
By computational approaches I guess I mean a lot of different things here. Functional, imperative, and relational programming. Binaries, web UIs, desktop GUIs, etc. I think the main difference would be having different pieces be first class citizens in the core environment.
- freemint 3 years ago> how important have metalinguistic capabilities been for your work?
Barely important for me but I use DSLs (for example to generate html) which wouldn't be possible to implement and change that easily for my usecase.
> Or would you rather use a system that glues together various tools that are focused on whatever approach is needed for a specific piece?
One important property for me is that the DSL used is implemented in the language it is being used from and modifiable at run time. Mathematica does the embeds stuff really well but I find it hard to work with.
Mixing DSLs is hard or close to impossible in Lisp though. I had better experiences in Julia in that regard.
- simon_acca 3 years agoA good perspective on this is to just think of the programmers as another “component” of your system that you have to design an API towards, just like a DB or a device. DSLs and Metalinguistic capabilities in general are fantastic for this one very specific task, but for this task only. For everything else, data is a much better abstraction than a DSL, because it’s a pain to get computers to work with DSLs. For an example of where this has gone wrong, look no further than where we are at with SQL.