Shopping Cart

Markup or not Markup?

Unlike HTML5 presentation frameworks, we at Taodyne made the conscious decision not to use a markup language for our 3D presentation software, Tao Presentations. Instead, we focused on designing a language that is specifically tuned for creating great 3D presentations.

Markup-based presentations tools

There are several markup-based presentation tools that help you create web-based presentations that you can show in a web browser.

The most advanced ones, such as reveal.js or impress.js, use Javascript and CSS3D to create interesting 3D effects in a web browser. Superficially, this may seem very similar to what Tao Presentations can do: a text-based, 3D capable presentation tool. But there really are a number of differences.

Benefits of HTML5-based tools

The primary benefit of a web-based presentation tool is that you can show it on the web. Duh. Plus they use all the good old markup syntax that we have grown to know and "love".

<section>
<h2>Heads Up</h2>
<p>
reveal.js is an easy to use, HTML based, presentation tool.
You'll need a modern browser with support for CSS 3D transforms
to see it in its full glory.
</p>
</section>

Standard markup, yes, but still a new language

On the surface, this structure is well known, so that you can leverage what you already know about HTML.

But notice how the two examples above don't use exactly the same syntax. There's a reason for that: in both cases, the power of that code really lies in additional definitions using Javascript and CSS 3D. We no longer use a really standard language, but some kind of dialect. We still need to learn this dialect before creating presentations.

However, that still means that you need to learn new semantics on how to build animations. The benefits of using a "standard" language are somewhat mitigated. More importantly, it means that what makes the presentation really different, the interesting 3D animations and transitions, are not in the document description itself.

This kind of syntax follows the guiding principle of Concept programming, namely that the source code should mimic the way you think about the problem. If you think about something as a slide, then the structure of a slide should show up in your source code.

Benefits of a real programming language

Using a real programming language has a number of benefits. One of them is being able to easily create reusable definitions. Here is how slide is defined in the theme.xl for the presentation:

This definition takes a Body parameter, which makes it very easy to specify the contents of the slide. Unlike for markup languages, the same language is used all the way, making it easy to create your own definitions in the document.

Keeping the language terse and simple

Notice that definitions do not need to take the form of a function or procedure. For example, the same theme.xl also contains definitions that we use for bullet points.

In that code, anchor indicates that we anchor a given graphic element relative to the current text position. In that case, it's relative to a text position that is in the middle of the text block, because we used align 0.5.

Following our own path

When Taodyne created Tao Presentations, we decided to stray away from the common path of XML, HTML and web browsers. That was a difficult decision. But in retrospect, it brings a number of benefits, most notably being able to create very advanced presentations in a relatively short time.

We invite you to join the party. Tell us which topics you'd like to see covered in this blog!