As a CS professor and programmer, I see a huge opportunity for Fluid Framework: it has the potential to decouple Microsoft's data formats from its applications, which can usher in a new wave of client-created applications that are built upon Microsoft's data formats and content creation tools.
Office has always been leap years ahead of the competitors when it comes to content creation. Focusing on PowerPoint and Excel, I feel that it's somewhere between hard and impossible to accomplish advanced tasks in OpenOffice or Google Docs, whereas it's easy and intuitive in Office. Even for the simple stuff, Office is always a faster creation environment: whether I'm creating macros to automate a business process in Excel, cranking out some slides in a hurry for an impromptu research presentation, or just writing a quick letter of recommendation, Office tools help me deliver an effective outcome in the least time.
Where Office falls short is in letting users easily craft immersive user experiences around Office content. Let me give a simple example. I teach advanced CS courses, like Operating Systems, Computer Architecture, Parallel Computing, and Software Engineering, in lecture halls with about 120 students. To teach effectively, I need a few things from my tools.
1 - I need a platform where I can write on my screen with a stylus and project my ink to the class. This is an absolute must: (a) whiteboards are too hard to read from the back of the classroom; (b) whiteboards are too hard to video capture, and (c) if I'm not writing, the class is not interactive, and students don't learn.
2 - I need a platform where I can easily organize my content and quickly navigate it. If I have to follow a script, the class is not interactive, and students don't learn.
3 - I need a platform where I can easily export content to static formats (like PDF), so students have a reference of all the ink from the class lecture.
4 - I need a way to quickly switch from lecture to live coding, because interactive programming and interactive code reading/reviewing is essential to how students learn.
Seems easy, right? There are only two Office tools that have a chance at supporting me: PowerPoint and OneNote. Neither suffices.
- PowerPoint is awful for point #1, because students ask questions, we go off on a tangent, and that means I run out of room on a slide. My solution has been to put hidden buttons on my slides, so that I can call a macro to insert a blank slide after the current slide, and keep the conversation running on the following slide. But what I really want is a way to have my PowerPoint content on a "slide" that can vertically scroll, infinitely, so that a single "slide" can capture the notes from an entire 5-10 minute conversation.
- For point #2: PowerPoint is OK for navigation (if you know the keyboard shortcuts, because inking and presenter mode don't mix). OneNote is awful. Also, OneNote lacks animations, which I use sparingly but critically (e.g., for quizzes).
- For point #3: again, OneNote fails for PDF export... I have to optimize my content for PDF export, or for an effective classroom experience. I haven't found a way to optimize for both.
- For point #4, all I can do is Alt-Tab to VSCode.
Prior to reading about Fluid, I built my own tool to try to address these shortcomings. It lets me extend slides vertically, infinitely. It uses C3.js to present data graphs in an interactive fashion (I can zoom in on specific data, read off data points, etc). It has an easier Ink UI than PowerPoint. It has animations and pixel-perfect placement of svg lines, rectangles, text, etc (because aligning and animating an OS Page Table in PowerPoint is painful, due to its use of fractions of an inch as the unit of alignment). I can embed arbitrary web content, e.g., to do live coding in repl.it. For static content, I have automatic code syntax highlighting, LaTeX math rendering, and a bunch of other features. I can run it on the web, or as a desktop app (via Electron).
If it's so great, why haven't I shared it with the world? In two words: content creation. Even with a simple markdown-like file format, it's still easier to use PowerPoint (with its wonderful chained keyboard shortcuts) for most of the gruntwork of putting content onto slides. I'm probably two orders of magnitude slower at content creation with my tool, relative to PowerPoint.
To be fair, Microsoft probably shouldn't want to turn PowerPoint into The Ultimate Computer Science Lecture Platform (TM). But imagine if I could take my presentation tool and connect it directly to Fluid content. Isn't that the best of both worlds? Anyone who has ever had to build an application in Excel and try to hide the fact that it was an Excel app, or who wants to use PowerPoint for a structured conversation instead of a lecture, or who wants to add some kind of interactivity that Office doesn't yet support, could just build their own UI and leverage Fluid content.
In short, this could be the next Visual Basic: a way for lots of people to casually program one-off solutions that leverage tried-and-true Microsoft components to solve real problems. It's just the 2020 version, with interactivity, collaboration, and cloud at its core.
If there's a plan for an API to Fluid content, which will make that vision come true, this is revolutionary. And if there isn't a plan to make that vision come true, then someone from Microsoft should please contact me so I can pitch this idea to them in more detail!