This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (5)
- # babashka (5)
- # beginners (39)
- # calva (1)
- # chlorine-clover (22)
- # circleci (4)
- # clara (5)
- # clj-kondo (1)
- # cljs-dev (2)
- # cljsrn (8)
- # clojure (46)
- # clojure-canada (15)
- # clojure-norway (3)
- # clojure-uk (6)
- # clojurescript (39)
- # conjure (10)
- # core-async (9)
- # datomic (2)
- # figwheel-main (26)
- # fulcro (33)
- # ghostwheel (9)
- # jobs (6)
- # leiningen (1)
- # malli (7)
- # music (1)
- # off-topic (48)
- # re-frame (11)
- # reagent (1)
- # shadow-cljs (86)
- # spacemacs (8)
writing a custom questionnaire for my gf with randomly changing requirements made me appreaciate clojure way too much
I am genuinely surprised to see such a long message about 80 character limit in 2020.
Limit in 80 characters or a limit in general? Because the latter, if used as a warning, can make both the author and the reviewers think twice, which is a good thing.
"We" as in "in the company I work with" or as in "in the Clojure community in general"?
Lobsters discussion brought up the idea of 72 non-whitespace characters. In alignment with human reading limits.
A common pitfall is to equal reading code to reading prose. IMO it's completely wrong and what's suitable for one is not suitable for the other.
The issue can't be universally solved at the text level. It needs to be higher such that the text can be parsed into something with more structure and a program can read that and format it based on what ever preferences the reader has. Why isn't this possible now? Is it git:? are we all so used to it that we can't invent another way to track change? I seem to recall that Unison attempts to solve this issue.
For a good reason, I imagine. I cannot think of a way to manage comments with that approach.
Could they help reformat a 120-character-wide ASCII diagram in a comment into an 80-character-wide one?
actually, yes, but you would never do that because most of these tools also allow you to embed actual diagrams
I can't find anything quickly - everything that I find seems utterly irrelevant. Do you have an example or at least a link that more or less clearly shows such capability?
the source code for tex is the canonical example, http://brokestream.com/tex.pdf . jupyter notes books are an example of a more recent approach: • https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks • https://nbviewer.jupyter.org/github/jrjohansson/qutip-lectures/blob/master/Lecture-2B-Single-Atom-Lasing.ipynb
OK, those are some of the examples that I've found. But I still don't get what you're saying. I'm using Jupyter notebooks from time to time. And they have nothing of what you describe. You can mix text and code there, yes, and the text will be laid out depending on how the notebook is represented. But the code will never be reformatted for you, ever.
in the example of tex (initially released in 1978), the source code is heavily reformatted. in the last 42 years, there’s been lots of work/research/examples of literate programming. I don’t know how much reformatting is considered enough. basically, I don’t know it what it is you’re looking for.
I'm looking for an example where the source file formatting does not matter at all, where how a user sees the code depends only on the preferences of the user and not on how the file was initially formatted.
I personal wasn't talking about literate programming. I was saying that ideally our tools (editor, version control) know about the abstract syntax tree of our language and are able to track changes at that level rather then text/whitespace/etc...
you can set you editor write now to wrap lines at what ever you like. The big hurdle i see is that we track changes on git and so you can't reformat the entire project everytime.
structured editors do that, but I don’t think it’s very common outside structured editors because it’s not very useful.
the main problem is that it causes issues with version control and that the alternative solution, making everyone that works on the code base adhere to a specific style guide (eg.
gofmt) is much better.
> the main problem is that it causes issues with version control Yes, because they track changes at a text level?
Yea. That's the problem that needs fixing imo. Everything upstream of it is just pushing the complexity around.
and the benefits are much greater than just allowing you to change how whitespace is used in your program
you could technically achieve this while still using git, but you’d have to augment the git porcelain to make it usable
I think unsion, which treats functions more like data in a database is probably a step in the right direction. I'm not aware of what porcelain does.
I think there’s a talk where someone from cognitect started storing programs in datomic and found some interesting things you could do with that
you could still have formatting be user independent without solving the version control issue as long as a canonical formatting exists.
for example, you run something like
gofmt to format the code in your preferred style when you work on the code, but then you run the “official”
gofmt when you check code in.