
Website Meta Language (2006) - Tomte
http://thewml.org/
======
jstimpfle
I ported a WML based university department website to a custom python based
stack in 2012, after having worked with the WML pages for 4 years. It was
quite a relief, even though I hadn't had clear plans how to make the new
system.

If I had to describe WML in a word, I'd say it's cruft. If I remember
correctly it is up to 9 languages that you can use at once. (Lots of
escaping!) With the exception of embedded Perl, which is about last in the
parsing order, I don't remember any other of them to have even remotely usable
datatypes. They have at most an ad-hoc macro system where HTML tags serve as
function calls.

------
zokier
This seems remarkably complex static site generator. I mean 100kloc of C code
in addition to some 12kloc of Perl seems quite a lot to me? Although, poking
around, it seems like significant amount of the code might be vendored code
from various places.

------
ktpsns
What a nice classic Perl code. Actually the Perl ecosystem has a number of
classic mature libraries for making HTML easy, such as the TT
([http://www.template-toolkit.org/](http://www.template-toolkit.org/)) or the
old CGI module
([http://perldoc.perl.org/CGI.html](http://perldoc.perl.org/CGI.html)). From
my feeling the community moved on and I know nobody an more who writes modern
web applications in Perl, unfortunately.

~~~
tyingq
booking.com apparently still uses a lot of Perl.

~~~
sitepodmatt
Cpanel uses perl, but their code and QA is universally shit, almost as bad as
how they respond to a 101 xss vunerability. not a good advertisement for perl.

------
15DCFA8F
Debian seems to use WML for its website, managed by CVS:
[https://anonscm.debian.org/viewvc/webwml/webwml/](https://anonscm.debian.org/viewvc/webwml/webwml/)

------
acobster
Holy crap! _9 compiler passes?_ How can anyone reason about such a process?
Was this tool, like, actually popular?

~~~
Mikhail_Edoshin
How many passes a conventional compiler does?

I don't know, but in my system I have, let's see: 1) read sources, 2) select
the subset I want to publish, 3-4) resolve references (two steps), 5-6) assign
XHTML IDs to references (two steps), 7) transform to XHTML, 8) update files. I
don't see how I can make it smaller, that is, maybe I can cram everything into
a single pass, but this will be much more complex than small steps in the
pipeline.

And this is the minimum; it's pretty easy to add more passes for various
extras.

~~~
jstimpfle
These 9 passes have only text interfaces. And that means the 9 languages have
crude syntax. That's not comparable to your ordinary language's compiler.

------
indigodaddy
Is IMDB still perl?

