For a long time, I looked down on Microsoft PowerPoint users. It seemed like a choppy presentation tool, full with superflous animations. I was snobby, and prided myself in using LaTeX Beamer.
However, once I started working in a professional setting, I realized that Microsoft Office was named Microsoft Office for a reason: it had far more office uses than I thought it had. As a programmer, wizards of Excel did not surprise me much, but the PowerPoint magicians surely amaze me. I worked with a lot of consultants, and I soon found out that they created all their reports in PowerPoint. I always held a minimalist philosophy on presentations, minimizing the text on a presentation screen, but these consulting reports filled them with content. However, the consultants often contemplated long and hard over how to best present their material, and always got their message across within the inundation of information crammed into a single slide.
Not to mention the visuals. Some expert PowerPoint users designed with it. Some of my team's UI designers worked in PowerPoint and managed to create convincing images. They did later on pass their work to a proper graphic designer for fine-tuning, but still, the capabilities of PowerPoint amazed me.
But, I didn't think it'd be, of all things, Turing complete.
In very crude terms, a programming language is defined to be Turing complete if the language can program any computationally feasible program. Most modern programming languages fall under this umbrella. It actually does not take much for a language to become Turing complete; an imperative language is Turing complete if it includes
if statements, and researchers have created one-instruction set computers
capable of showing Turing completeness with just one single instruction. (As opposed to the thousands of
return, etc. constructs in high-level languages!)
More technically, the definition of Turing completeness does not only apply to programming languages; any system of data-manipluation rules can qualify for it. The formal definition of Turing completeness is the ability to simulate a Turing machine, a machine that can read a tape of symbols and determine its next actions based on the machine's current state and the symbol below it.
This little machine here, believe it or not, is theroetically capable of flying rockets to Mars, managing your smartphone, and building Skynet.
PowerPoint is Turing complete?
So far, it seems like I've been talking about two unrelated topics: an office software and a classification generally about programming languages.
Believe it or not, however, PowerPoint is Turing complete. You can program PowerPoint, apparently, to build Tesla's next autopilot engine (theoretically).
Here's the madman who decided to simulate a Turing machine on PowerPoint using animations.
Sometimes I think the world is a bad place, but sometimes I think it's not so bad after all.