Patoline: A modern digital typesetting system (2012)
patoline.org
patoline.org
1) a toy usage example
2) why I should use this over whatever I already use (La/Xe/Con/Luatex, Markdown, rST, Pandoc)
3) who is developing it and why I should trust them (e.g. "this is a hobby project", or "this is free-as-in-freedom with a grant from the Gates Foundation", or "we are a startup intending to sell your user metadata to Facebook when we are acquired in a few years")
I'm not sure this site addresses any of those
From what I've seen in the Patobook, it seems so similar to Latex (or *TeX perhaps, I'm not familiar with the differences) as to be a re-implementation - so I'm not convinced even what makes it 'modern' as claimed is explained.
With the exception of sections, actually. But you could define `=> <= -> <-` to begin/end (numbered) sections anyway.
Good: https://golang.org/
Bad: https://flutter.io/ (it should have at least one screenshot, and a simple example on the first page)
Patoline works well (PhD thesis were written using it) and the implementation in OCaml is nice and clean whereas the (La)TeX codebase is extremely complex.
edit: Funny coincidence, we were mentioning the Patoline project with the team last week.
The documentation includes "SILE versus TeX" section; some of the quotes from it: "one of the things that TeX can’t do particularly well is typesetting on a grid. This is something of a must have feature for anyone typesetting bibles. Typesetting on a grid means that each line of text will line up between the front and back of each piece of paper producing much less visual bleed-through when printed on thin paper. This is virtually impossible to accomplish in TeX. There are various hacks to try to make it happen, but they’re all horrible. In SILE, you can alter the behaviour of the typesetter and write a very short add-on package to enable grid typesetting."
"SILE does not benefit from the large ecosystem and community that has grown up around TeX; in that sense, TeX will remain streets ahead of SILE for some time to come. But in terms of core capabilities, SILE is already certainly equivalent to, if not somewhat more advanced than, TeX."
And if the concern is that real have they considered the distributed nature of git might actually make it better suited?
The terrorism line (at https://patoline.org/about.html) isn't taking a shot at git, it's taking a shot at GitHub, which is centralized in spite of git's underlying distributed nature.
And this is far from the first project to choose a free/open distributed system over a proprietary centralized one.
>We don't want to force anyone to use it, though. For >Patoline itself, you can download source code tarballs
Like others have said, an audience who understands what a "typesetting system" is, would immediately need to be convinced as to why they should use your tool over existing ones like LaTeX or Markdown + Pandoc. Do you really expect your users to read someone dissertation to get that info?
I really think the choice of using OCaml is not a very smart one (w.r.t. a roadmap / scale). Just looking at, e.g., Facebook's Flow reminds me that it can be a blocker in the long run (performance + not cross platform friendly).
So can be C# or any other language you might prefer. OCaml can have exceptional performance and the reasons why they are using OCaml sound quite good.
> Our choice was constrained by the goal to let the user program inside the document, if they wished to do so. To achieve the long-term goals of modularity, backwards compatibility, and portability, we decided to use a functionnal [sic] programming language, with types checked by the compiler (ensuring modularity and portability), and whose authors would also have backwards compatibility in mind.
So maybe functional languages get you more fine grain modularity, but otherwise I don't buy it. And what has type checking got to do with either? As for OCaml programs not segfaulting or crashing, that doesn't seem unique. E.g. javascript doesn't do this either, if it is pre-processed/"compiled". (I'm not saying JS is a better choice.)
It's the same with darcs vs git. Yes, there maybe "better" systems than git, and easier to learn, but you're still making it harder to contribute.
IDK, but with sentences like "If you do not like the idea of a free decentralized internet, you can also do", it seems like they're going for ideology over usability.
Also, for backwards compatibility, this might be a reference to the pretty unusual legal obligations that OCaml has as one of the reference languages of the French Atomic Energy Agency.
(I still think it's a bit rich to assume people will learn OCaml or write their own transpiler just to typeset stuff though.)
Edit: Ok, it depends on the modules. Some of them are indeed written in quite nice functional style. Must be the "handwriting" of the different authors that those modules are so different.
Though, I'm curious what comes of this.
Currently the "official" install/build method via make fails on my mac (sierra - could be some other issue) and on top of that 'opam init' (?) completely broke the fish path evaluation (not Patoline's fault, I guess). Manual fish fix: https://github.com/ocaml/opam/issues/2255.
Did the author try to reverse engineer TeX? Is there anything that Patoline can do better w.r.t. typesetting, for some definition of "better"?