Platforms > Implementations

imageI recently read an insightful post about how being a developer is less about coding and more about tooling, and while I do not agree with all of the post, the fact that we—as developers—are tool-obsessed rings very true. This obsession with tools becomes a white-hot rage when our favorite tool is threatened with extinction or causes a world of panic when a competing tool is proposed without enough information about it.

Let’s look at two key examples of that:

So what is the solution to this? I think a mindset change would be enough. The mindset change needed is to remember that a platform is more important, powerful, and useful than a tool. I’d like to take credit for this idea, but the first time I heard someone mention it was a few years back—Scott Hanselman was discussing it on MVC almost three years ago to the day. He mentioned that ASP.NET > ASP.NET Web Forms and ASP.NET > ASP.NET MVC. In short, he was saying that the core understanding of ASP.NET—the core features and uses of the platform—are bigger than any single implementation (tool). Sure, you need to learn a new tool, but you aren’t starting at zero if you know the platform.

Silverlight_h_rgb Why am I bringing this up? Because of the discussions I’ve been having about another tool recently: Silverlight. We’re approaching panic stage over this tool due to rumors of its demise. However, it is very important to take a step back and see what the platform is—and how knowing the platform means that a tool can evolve, and we’re still able to work, code, and make money.

The platform Silverlight uses is XAML-based UI technologies—a core set of ways to lay out UI components using an XML dialect called XAML. This platform also includes features like binding and the MVVM pattern, which are either difficult or impossible to achieve with other UI technologies (like WinForms, for example).

XAML-based UI technologies started with a single tool: WPF—an implementation of the platform designed to run on top of the .NET Framework. A second tool, Silverlight, later emerged as an implementation designed to run as a browser plugin. A third tool, Silverlight for Windows Phone 7, followed, though it had differences because it was an implementation for the phone. In the last few months, we’ve seen a fourth implementation of XAML-based UI technologies appear: WinRT—the Windows Runtime in Windows 8. When you develop with C#, VB.NET, or C++, your UI technology is just another implementation of the platform.

Every implementation has differed—some in major ways, others in minor—but the core of the XAML-based UI technology platform hasn’t changed. There isn’t a single rumor, plan, or hint that we’re even close to seeing the end of XAML-based UI technologies. We may see a tool reach its end of life (like some rumors about Silverlight) or others reach completion without needing updates (like WPF, if). But the platform remains—and it grows. Learning a platform is always more important, powerful, and useful.