I was just recently reminded of the portability impact of writing a library in C. I was looking at supporting both MediaWiki markup as well as Markdown in a personal project.
Markdown has a canonical implementation in C (cmark), and Github's modification (cmark-gfm) is also in C. This means that every popular language just uses the the canonical C lib by creating bindings for it. You get the same rock solid behavior on every platform, and the rendered output is consistent everywhere. It "just works", everywhere.
With MediaWiki, the canonical implementation is in PHP. And every popular language has decided to write their own not-quite-complete translation of that PHP. There's no consistency. And the not-so-popular langs have no implementation at all. It's terrible.
I was just recently reminded of the portability impact of writing a library in C. I was looking at supporting both MediaWiki markup as well as Markdown in a personal project.
Markdown has a canonical implementation in C (
cmark
), and Github's modification (cmark-gfm
) is also in C. This means that every popular language just uses the the canonical C lib by creating bindings for it. You get the same rock solid behavior on every platform, and the rendered output is consistent everywhere. It "just works", everywhere.With MediaWiki, the canonical implementation is in PHP. And every popular language has decided to write their own not-quite-complete translation of that PHP. There's no consistency. And the not-so-popular langs have no implementation at all. It's terrible.
So I just wanted to say thank you for using C!