|
From: | arthur miller |
Subject: | Sv: Sv: Sv: Christmas wish: Literate Elisp |
Date: | Wed, 18 Dec 2019 16:29:49 +0000 |
Hello, sorry for a bit late answer, but I was very busy Monday/Tuesday. To make this more readable I will try to summerize here as one-piece text for easier reading. As you mention yourself from,Wikipedia, literate programming is about moving away from programming for computers to programming for humans. Using comments to comment-away text ment for humans or to mark lines between comments and code is indeed writing for the computer, not the human. Humans tend to be distracted by unnecessary clutter, and managing stuff just for the sake of machine does take a little more effort then not doing it. Being programming-language agnostic though is probably not possible without having some kind of special tool, or special syntax due to some languages being probably very hard to distinguish from ordinary text. For example I believe that C/C++ or even Bash or Makefiles are very hard if not impossible to process that way without some very complicated parser. I can also imagine case where Elisp is impossible to distinguish from text, (for example this line is valid text but would fail in parser), or whatever we would put into a parenthesis on a separate line that does not belong to code. Anyway, due to elisp looks, we have those "natural markers", ( and ) which we can use as delimiters between code and text. For the question of being concerned about omitting ';' to change the parser. Well yes :-). Small syntactic sugar change but it reduces that visual clutter. It is one step in that direction of writing code for humans and not for the computer. See it as experiment. I thought it would be a cool thing to have. It is just an idea. The change is not in an intrusive way. All your elisp is still very same. It just adds an extra feature pretty much for free. If it would be an intrusive change that requires your old elisp to change, than I wouldn't suggest it. By the way, one could also add a variable to turn off that feature. As for the tools, since old elisp code does not change, all your tools would still continue to work on all your ordinary elisp, and you could still use ';' just as you do now. What would change is that you would be able to write some elisp as you can't now, and only on that code the tools would probably get confused. I have no idea how hard would it be to change font-locking and indentation checkers, maybe hard, maybe not at all. I can't answer that since I am not acquianted with how those tools are implemented (lots of regex as I have heard). But in worst case, you can always fall back on writing ordinary elisp. As a note, one will still have to use ';' in directives, like ;;;###autoload or ;;; -*- lexical-binding: t; -*- . Otherwise it would need lots more work Från: Adam Porter arthur miller <address@hidden> writes: |
[Prev in Thread] | Current Thread | [Next in Thread] |