๐พ Archived View for bbs.geminispace.org โบ s โบ programming โบ 22022 captured on 2024-12-17 at 15:20:28. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Re: "Pitfalls of structure editors"
Why would one want to 'avoid metaprogramming'? It's by far the best part, and IMHO lack of it makes languages wimpy.
Nov 21 ยท 4 weeks ago
๐ stack ยท Nov 21 at 20:00:
As a sometimes Lisp programmer who recognizes that the point of Lisp _is_ metaprogramming, I don't see how calling a procedure locally or worse yet, marshaling across some boundary, is even remotely comparable to metaprogramming. We must be using different definitions...
However, having tried and failing to make a structure editor for CL a few different ways, I agree that it's metaprogramming in Lisp makes it extremely hard to figure out the bindings. Because macros can inject symbols into the middle of code, a superpower.
Emacs, much as I don't really like it, with some extensions, does make a decent semistructured environment, mostly due to the mostly uniform usage and semantics of parentheses in Lisp.
๐ stack ยท Nov 21 at 21:07:
Read "let over lambda" - a few chapters are online and there are pdfs floating around. It has changed my life.
๐ undefined [OP] ยท Nov 22 at 08:24:
Yeah, lisp is really the best case scenario for these kind of things since the syntax is just a direct representation of the ast. Though that simplicity comes with restrictions on that very ast: one of the reasons you don't have explicit typing in lisp, for example, is not that you can't do it, it's that it would be a pain to write and deal with so people just through inertia end up rolling with a worse system. And, as you've said, the macros break that uniformity anyway.
Pitfalls of structure editors โ The tools for a structure-aware editing have existed for a long time in IDEs and things like tags, cscope and lsps as of late, as well. However, the editors fully commited to this kind of mindset haven't really been done well before. Here, I'll list some of the reasons I myself have found while trying to design one, later abondoning the project. Also, while I am myself pessimistic of this idea, it would be interesting to hear other perspectives, or inspire...