Penrose: create diagrams by typing mathematical notation in plain text
penrose.ink
penrose.ink
However, in the few Penrose examples shown, all the positioning seems to be done completely automatically, which is incredibly difficult to make work in all but the simplest and most standardised situations. In TikZ most positioning is manual, which takes more effort, but which I think is likely to produce better results in general.
Penrose enables the user to tweak the diagram manually after it is produced. Constraint solving continues to apply during the tweaking so that if you grab a shape, then things attached to it will move as well. Our goal is to get end results as good as, or better than, TikZ, while staying at a higher level of abstraction.
Another is that tracking changes with version control systems is easy and clear. Does Penrose have a canonical textual format that changes minimally as tweaks are made?
TikZ styles do let you separate substance and style fairly well (though lay users are unlikely to take full advantage).
One way to think about the goal of Penrose is that you will get a result that is predictably good, and you can constrain it to get a diagram of a particular shape if you want to, or alternatively leave it open and have the solver show you 3 good diagrams...then you can pick one and tweak it further (aided by constraint solving as you tweak) to make it great. The problem with drawing-tool style systems is that you have to adjust the location of every label (for example); that's the kind of thing that should be solved for you. TikZ doesn't have a rich constraint language and solver, so in many circumstances you're left with a choice between doing lots of things manually or getting a poor-quality diagram.
Penrose will have a canonical textual format, but as it is under active development, it wouldn't make sense to say it has a stable textual format now.
https://en.wikipedia.org/wiki/Asymptote_(vector_graphics_lan...
(I'm still hoping for a tool that can make flowcharts with user-defined constraints, such as minimize number of edge crossings, then minimize total edge lengths, etc.)
And the authors have at least that connection to the ``Carnegie Mellon Geometry Collective,'' (see their prior work on his page) so I'd include discrete differential geometry in your list. This has connections (eh hem) all over...
Edit: For some reason I missed the Penrose site at the link and skipped straight to the PDF short introduction. I am presenting somewhat redundant information above. Sorry!
Flowcharts are not on our initial list of domains, but we hope that the infrastructure will let any user add a Style extension to support them.
You will need a JDK (I installed jdk8-openjdk) to get a javac (needed when you run make in src). You may also need ghc for Haskell although the thing seems to install another one locally. I installed stack and then happy and then "stack build" finished OK. alias runpenrose=</very/long/path/in/home/bin/penrose>. Substitute "python -m http.server" for "python -m SimpleHTTPServer" because Python3 and the rest of the example works OK.
Simples 8)
That's not to say I would recommend it. No objection to your other points.
If you want to be proficient in TikZ, I think the best way is to read the manual. I put it on my phone and started at the start. It's general understanding of how 2D graphics systems tend to work and learning how TikZ does things that made me comfortable.
I don't have a single source for LaTeX. Most of the LaTeX I know (which is quite a bit by this point) comes from places like Stack Exchange, which I get to by doing a search to solve a specific problem. I tend to read lots of answers to get an understanding, rather than just using the first one that works; there are often multiple ways of doing things, some better, some worse, some obsolete, some leading to a whole new area of knowledge.
The main thing is just to do lots of LaTeX, and it helps to do similar things over and over, improving how you do it each time. E.g. I've written so many maths exams that I have things like mark positioning, mark totalling, the question table on the cover, spare blank pages, starting questions on even numbered pages etc. all completely automated - but it didn't start that way at all, I just make it a bit better each time. Improving the same lecture notes and tutorials every semester is another.
Working with and improving someone else's LaTeX code can help a lot, even (or especially) if your reaction is "Wow, that's awful! There must be a better way!".
I do lots of Python stuff, but haven't used Jinja. LaTeX is pretty clunky for many things, and I haven't been able to take much advantage of LuaLaTeX, for compatibility reasons.
The manual for tikz exists but I have never really read it.
[1] Some examples here http://www.texample.net/tikz/examples/
The creators of Penrose have this to say in the very first sentence of their introduction: "Typesetting software like LATEX and MathJax has accelerated the pace of scientific communication, but no equivalent exists for mathematical diagramming."
It seems like it would not be much work to add a way to output as eg tikz (or rather, pgf) to this. It could probably output something more low-level too