Quora: Why hasn't D started to replace C++?

John Gabriele jgabriele at fastmail.fm
Wed Feb 7 18:17:16 UTC 2018


On Friday, 2 February 2018 at 14:25:53 UTC, Russel Winder wrote:
> On Thu, 2018-02-01 at 19:41 +0000, John Gabriele via 
> Digitalmars-d wrote:
>> 
> […]
>> It's trivial to put multiple markdown files together into a 
>> large doc, if that's desired. Just put a bunch of .md files 
>> together into the same directory and run your markdown 
>> processor on them. They can link to each other in the [normal 
>> way](./other-file.html#normal-way).
>
> Auto generation of contents pages, and indexes? Tables? Nested 
> lists? The CommonMark crib sheet says nothing. AsciiDoctor has 
> all of them, though I prefer XeLaTeX.

CommonMark is the less featureful common denominator markdown. 
For myself, to get TOC's and tables I use 
[Pandoc](http://pandoc.org/).

But I see your point. For larger complete documents like books, 
you want tools that can handle all the things that books require.

But, afaik, we're talking about 2 specific needs here:

  1. documenting code in a way that gets extracted and rendered 
into html
  2. dlang.org doc webpages

with a secret 3rd need: you want contributors to be willing to 
write and update these.

>> Markdown provides a simple, practical, modern, and 
>> commonly-known way to get docs written fast and by anyone who 
>> wants to pop in and improve them. There's no easier way to 
>> write plain text docs that look as good.
>
> AsciiDoctor.

Everyone already knows and uses Markdown. It's so common that it 
gets used in plain text forums like this one, sometimes without 
folks even knowing they're using it. For short plain text docs 
that may be converted to html, markdown has won and is the 
easiest on-ramp for some writer who has a few minutes and is 
willing to write some doc-comments for a function (or a confusing 
passage in the docs) that they just stumbled over.

>> Sorry, can't recall if I already mentioned this, but D suffers 
>> from a perception that it's "old", or "the language that tried 
>> and failed to replace C++". Something simple like markdown for 
>> its docs sends a clear message that D is modern and knows when 
>> to pivot to new and better ways after the old ways are not 
>> serving it anymore.
>
> Markdown is so last decade. Ditto AsciiDoctor. XeLateX so last 
> millenium. The question is choosing the right tool for the job, 
> not pandering to hipster fashionistas. Clearly one reviews new 
> ways and moves to them if that provides a better way forward, 
> but the goal is more important that the technology.

I wouldn't say markdown is last decade (not sure if you're 
joking). More like it's simply become part of the background at 
this point since it's so commonly used.

But I agree about not pandering to fashion. The goal is to make 
it as easy as possible to document your code and have tools 
render it as html for users to make use of, as well as making it 
easy as possible for potential contributors to jump in and make 
edits/improvements. I think markdown is the best way to acheive 
that goal.

> There are the autogenerated reference pages. JavaDoc, Doxygen, 
> all have their upside and downside. D has DDOC, is it fit for 
> purpose? Should it be replaced (by Doxygen) or evolved? Maybe 
> Markdown fits here, but without table support you end up 
> hacking stuff. cf. vast tracts of early JavaDoc stuff.

Pandoc extends CommonMark and has tables, definiton lists, and a 
couple of other things worth imitating. Regarding tables, it 
supports three styles (again, the default easy-on-the-eyes style, 
plus a couple others --- see their docs). See 
<http://pandoc.org/MANUAL.html#tables>.


>
>> Incidentally, choosing an established standard like markdown 
>> is a good way to short-circuit bikeshedding about "it what 
>> ways should ddoc be updated to include some markdown 
>> features?". Just pick standard CommonMark markdown and you're 
>> done.
>
> s/Markdown/AsciiDoctor/g

AsciiDoctor appears to be tuned for writing long docs like books. 
Markdown beats it on looks, convenience, and popularity --- 
exactly the things you want to attract folks to writing more 
comment docs and web pages.

>> One last note and I'll (try to!) stop: it's difficult enough 
>> to get good writers to help with docs. Much more so when 
>> they've got to first learn your own language-specific markup 
>> (which is only useful with your project).
>
> This is a good and strong point, that has been raised in many 
> other places I frequent. One group changed from their custom 
> DocBook/XML to Sphinx because someone did stuff rather than 
> talking about it. AsciiDoctor would clearly have been a better 
> solution, evolution using the DocBook toolchain, but they went 
> for the revolution because people put effort into it to make 
> the decision happen.
>
> The core point is how are you going to get pull requests from 
> people to update and evolve the documentation. An esoteric, 
> indeed unique, markup language is clearly the wrong choice.

I don't understand your comment there. I group DDoc, Docbook XML, 
DDoc, Texinfo, groff, etc. all in the same esoteric unique markup 
languages camp. If I wanted to make a small change to a half-page 
doc comment, and it was written in ddoc, I'd be pleased as punch 
to convert the two or three paragraphs to markdown first. Someone 
might even write a ddoc2md converter. Heck, someone on the pandoc 
mailing list might even be willing to knock together a pandoc 
input reader for reading ddoc (Pandoc could then be used to 
convert ddoc to markdown).



More information about the Digitalmars-d mailing list