I'm finding that the official and public Microsoft documentation, and the public's attempt to contribute, for their server stuff (Azure, .NET Framework, ASP.NET, .Net Core) is quite obtuse—not even reasonable. It's like they invented web server technology, but it's some magical different variety, so y'all better know it's gonna be a wall to climb and a crazy new learning curve.

I even read somewhere how you'd need something the size of Encyclopedia Britannica to understand Azure. That's not even a logical statement. We can understand everything at one level of depth or another. That's why we abstract concepts into symbols, like boxes or words. Babies are learning to abstract concepts into words, so that they can reason about them.

Azure is web services as usual, with a subscription fee. The other stuff (.Net Framework, etc.) gives you more of the client/server, database services, libraries, and modules as usual per your entire career in software, without subscriptions. The "Core" stuff runs on different server OS's, and the non-Core stuff, well, you'll need to deploy it on Microsoft IIS server. That's perfectly fine if you're happy with your server hardware.

microsoft azure highest level diagram (png image)

Microsoft Azure really is this easy to understand, at this high level of abstraction, assuming I've extracted information correctly from multiple confusing sources who haven't been able to provide such a model/diagram; the words that come out aren't even copy-edited, and nomenclature is irrelevant.
 Just imagine, my software friends: someone who doesn't even know the UML could probably understand this diagram! They might even store it in your brain, so they know what they're talking about when someone mentions the intangible "Azure," which really isn't intangible at all.

 

C# is easy to learn if you're familiar with languages and object-oriented thinking—just skim the syntax and semantics. It's a copy of Java's object / garbage collection / complied byte-code (IL, in C# case), with syntax copied from C/C++. Was this Microsoft's response to legal trouble they had over J++? I remember being forced to work with that garbage. They took a wonderful cross-platform language, and started adding proprietary stuff to the API library, as if that makes any sense. It's all about competition if you don't have any values, but isn't reasoning and clarity generally useful?

There are Microsoft software developers/architects/engineers who write blog articles. I wonder how they would do in a basic skill testing question, along the lines of: "Using either handwriting, a keyboard, or your voice, please explain: who are you, and what are you doing?," or more specifically, "Use language (English, but it still has keywords, syntax, semantics, and structure) to explain the problem space for this software system, and explain how it works, at a high level." They know the Unified Modeling Language, but can't even string together a paragraph explaining a certain concept, library, or web service even is or how to use it!

It's part of the "software design is art, not engineering" movement, which I encountered in 3rd year, and it's not reasonable. We are supposed to be the experts on bringing order to the chaos in software/web systems around the globe that would exist without intelligent design. (As if we don't have enough chaos.)

No wonder people who hate software engineering love C++. Wonderful and powerful as it is, they love that they can pretty much type whatever they want and it will compile. They brag about obscure hacks, because they're proud of themselves. They demonstrate that they hate structure and order, and so they ought not to be promoted to positions of leadership in our industry. They're the equivalent of bureaucratic liars in politics. They've got some sophisticated, long, boring story, but we just need them gone. We like clarity.

Coders are still very useful in software teams, but only when you keep them working on a specific component, at a specific level of abstraction, and with specific restraints. Then they're the beasts at coding. Let them go!

The trouble at Microsoft is probably that the coders are running the show instead of the software architects / designers / engineers. Oh, Microsoft bragged about that in their advertising. They only hire people who don't know how to relate to other people. I went through their two hour interview, where they made me write algorithms and answer computer science/math questions (why not look at my transcript instead, and find out whether I'd be a good fit), passed their academic test, but chose to not sell my soul to a company for some great salary working with a bunch of hacks who evidently "believe" in not much more than their demonstrable coding abilities.

It's not that I'm incapable of understanding of Azure, etc., it's that, though there are basic computer science concepts involved, it's difficult to find any reasonable software architect who simply communicates precisely what everything is and how it fits together using a modeling language we learned at university. It's crazy ironic, because software people are all about words, grammar, semantics, structure, but they pretend they can't compose an article written in the English language. They pretend they can't communicate very helpful info using a unified visual modeling language we all know. They pretend they can't present their API's, say like this: Java, SE & JDK API Specification.

So, I'm digging around Microsoft's support website and drawing my own pictures.

Honestly, it seems like good stuff so far!

Just please don't ask about Windows 10 and how that relates to a 4th year course called "operating systems." I might spiral into an unstable monologue.

Early this morning, after so much frustration with Google's top results(1) for simple questions like, "what's the difference between .Net and ASP.NET and .Net Framework and .Net Core and ASP.NET Core?," I found something that made me happy. It's called the C4 model; it's sort of UML++ but minus some of the more messy bits. It's refreshing to see language/structure-oriented software professionals who are aware that clarity in human communications, and even reasoning, is at least as helpful as clarity in whatever script, code, or regex they're working on.

I'd love to remind the people in Redmond about the things we learned in elementary school, like defining our terms, or what we learned at university or college about protocols, schema, lexicons, databases, and about abstracting out complexity and presenting models of both the problem space and the solution space at various levels of detail. We learned how to communicate. We did that at Nortel. The design brains must be in charge at Google, most of the time. Watch them go! And watch Microsoft do what they've always done—drag some half-baked duplicate of what's already out there to keep up with their competition. Windows 3.1 was a hack layer over DOS 3.3 to keep up with Apple's vision of user experience. I think the layer illusion remained until maybe Windows XP fixed it. It's been downhill since NT and XP. Internet Explorer was part of the core of the operating system! I discovered that even though Windows 10 comes with Edge, it also comes with Internet Explorer... both still there, along with your 3 versions of the Control Panel / System Settings, with additional tools like msconfig (doesn't work anymore) to launch from the Command Prompt. I heard they've added a filter to their command prompt to make it look more like it was back in the 80s when Microsoft's operating system actually worked.

"What's the most reliable feature of Windows 10? We've gotta do something!"

"Boss, the console prompt works with 90% reliability."

"Good, let's add a couple Gb to show a skin that makes the console look old-fashioned." It reminds me of Prime Minister Trudeau growing a beard.

Imagine civil engineers designing one structure upon another well-engineered structure (the Intel architecture, in Microsoft's case), but doing something that doesn't make sense—just completely messing it up.

What's going on at Microsoft, and more generally in the world of educated software engineers and computer scientists? Have the artists taken over our profession?

It's as if computer science is not math, not science, and certainly not engineering. It isn't even language, like paragraphs, sentences, and words. Yeah, I remember those were the kids who whined about discrete math in second year and refused to study an elective on algorithms in third year, while they whined about the software engineering courses and projects.


(1.) Maybe Google is trying to confuse me about Microsoft's server technologies, so I should switch to Bing? I doubt it, because many of Google's top results are from official Microsoft pages, though often not when that ought to be the case. 😆 Some random tech blogger needs to write a good article explaining something Microsoft hasn't been able to explain.