Someone recently asked me why I was so enthusiastic about Blazor. This person didn’t like the programming experience as much as their JavaScript framework.
So, here’s the deal. If you are happy with your stack, your tribe, rock on. Blazor obviously isn’t for you. So, who is it for?
Blazor is for enterprise developers who are tasked with writing internal applications, B2B, and B2C apps. Yes, many enterprise devs have embraced JavaScript, but many MANY more have not. They don’t like plumbing code. They want to get the job done as quickly and efficiently as possible.
Many of these devs thought Silverlight was going to be their path to web-delivered apps. Everywhere I go I have been pummeled with comments like “Blazor is just Silverlight vNext. Why should we trust Microsoft not to kill it?”
This sentiment is understandable, but to conflate Blazor’s future with Silverlight’s past is misinformed.
Silverlight was a casualty of the browser plug-in model. At the time Flash was a very popular plugin for UI, and it was wreaking havoc with iOS devices: iPads and iPhones. Steve Jobs famously announced that Safari would no longer support plugins because of the security concerns over Flash. When developers realized that their Silverlight apps wouldn’t run on the most popular up-and-coming mobile platform, it took the wind out of Silverlight’s sails.
By contrast, Blazor runs in the browser on WebAssembly, which is supported by every major browser (Except IE 11), even Safari, even mobile browsers. WebAssembly is here to stay. It’s a standard that has already been adopted. Think of it as an operating system for running compiled code in the browser in the same sandbox that JavaScript runs in.
What makes Blazor unique from all of the other languages that run on WebAssembly is the runtime. The mono CLR is compiled to WebAssembly. But it’s a runtime. Any .NET Standard 2.0 code will run there. Other languages are compiled directly to WebAssembly. As far as I know there aren’t any other runtimes for WebAssembly.
Silverlight tangent aside, enterprise developers have been waiting for a web programming model that doesn’t drown them in plumbing code. Blazor’s binding model is easy to understand. The component model is elegant. The eventing model is even less ceremonious than standard C#. With tool vendors like DevExpress providing controls that do the heavy lifting, these developers have a reason to be delighted.
So, rock on my JavaScript friends. Rock on. Maybe Blazor isn’t for you. I happen to know that there’s an army of developers out there who are breathing a sigh of relief.
Carl