Microsoft's Popfly: Getting Their Ducks In A Row
Popfly is the name (and URL) of Microsoft's new non-professional developer community, a Windows Live site whose flashiest feature is a Silverlight-based "mashup editor" that facilitates pipes-and-filters development. Before reviewing the gratuitous 3-D spinning cubes, though, pay attention to the context:
- Visual Studio Express has had 14,000,000 downloads (source: Dan Fernandez personal communication). Of course that translates to something far less than 14M users, but it ain't hay;
- The Popfly mashups run inside Silverlight, so anyone wishing to view their friends' / child's / grandkid's project is going to have to install the Silverlight runtime;
- Silverlight is going to rapidly evolve to incorporate the Dynamic Language Runtime. Silverlight + CoreCLR + DLR == Microsoft's platform play for dynamic languages, which have crossed the chasm and, whatever their other strengths or weaknesses, are easier to learn than explicitly typed or Pascal-like highly-structured languages
Microsoft is on the verge of restoring the bridge between power users and programmers.
The collapse of that bridge -- the disappearance of macro-based automation during the DOS-Windows transition and the removal of Hypercard from the Mac -- was the greatest setback the professional programming community has ever suffered (#insert COBOL or C++ joke here#).
Pipes-and-filters mashups are the UNIX shell-commands of the Web. The next step is automation -- after you start figuring out how to pipe commands, you start writing shell scripts, at which point you're programming the platform at a higher abstraction level. That's a crucial point: we're not talking about flow-control and manipulation within the pipes-and-filter components, but at the platform level. That's why it's huge that the Popfly mashups are executed on the client (within Silverlight) and not on the CPUs of the host. Mainframes->Minis->PCs: empowered users require and embrace personal resources. This is the salient distinction between Popfly and Yahoo Pipes (Popfly also works with more types of data, but Yahoo could address that). It's not just that there's a resource-consumption scaling problem that might be solvable by the host absorbing hardware costs, it's that there's a Big O scaling problem: to the extent that mashups are used to program the Web, as soon as people start looping/recursing, you're talking about non-linear increases in resource consumption.
To be clear, I don't think Popfly is the Bourne Shell of the Web -- that hasn't been written yet. But I think Popfly's the | and Silverlight's the \$