B
Bruce Lewis
Long said:Language? What language? Why are you still writing code?
Here is a complete list of ingredients for a programming language:
1. literals
2. variable substitution
3. procedure calls
4. procedure creation
5. conditionals
6. variable mutation
A lot of the functional programming community would question whether
that sixth one is necessary, but I'll leave it there so nobody can say
I'm skimping.
Any system that allows you to create a template has procedure creation.
If you can call a template from another template, you have procedure
calls. Any decent template system has variable substitution and
conditionals. WebCharm's @topic tag implements variables and
conditionals. Literals are hard to avoid. What do you call the
non-dynamic parts of the template? Many WebCharm tags have numeric
literals.
That leaves us with just one (questionable) ingredient: variable
mutation. I think it wouldn't take a lot of creativity to use
WebCharm's @qsvalue tag to mutate variables from one query to the next.
So there you have it, a Turing-complete programming language.
If you surprise me by actually gaining a user base for WebCharm, you'll
start getting "How do I..." questions that will drive you to add
features. The fact that WebCharm is itself a programming language will
be increasingly obvious. That's how PHP evolved.