.Net is a Cloud Firstclass Citizen
My career started in .NET. I learned Java in college. It was not buggy but there were a few reasons I didn’t stick with it. First at the time it was very un-opinionated. This made it very difficult in starting off to understand what best practice was and what wasn’t. I often lament the fact college taught me how but not the why. Later on, I discovered some of the gaps I missed in college with Java. And that there were opinions on best practices. This gave me a stigma about Java while in college and even after. I would say things like, “it’s ok but all over the place” or “it has too many uses but not good at a single one.” Ignorance I admit too and have come to regret later in my career.
The second was the market I was in. College taught me Java and later .NET. But where I was from the vast majority of companies did .NET. This market demand kept me with .NET. Why go back to Java when there was very little need for it where I lived. Being versed in both languages wasn’t worth being deeper with .NET. At this point .NET was still proprietary Microsoft technology. You needed to own a copy of Visual Studio. Your code needed to run on Windows Servers. The good old Ballmer years. This was fine for most companies they were already bought in to Microsoft why not buy in more.
At about the same time, cloud was starting to gain some serious traction. But it started in the open source community. An area at the time where Microsoft didn’t play. The idea of cloud for .NET was if you were going to run this in Azure. But to be fair some .NET experts felt the cloud was a “flash in the pan”. Where no true enterprise would ever move their applications to the cloud. A terrible mindset to say the least looking back at it. This gave Java a huge head start in cloud. But not only Java other language such as Ruby and Python also capitalized on this. But one cannot credit Java alone for this surge in its place within cloud technology. We have to give credit to frameworks such as Spring and others who help give Java and opinion. Gave it an easy way to understand best practices. When I look back and I see Spring I tell myself “where was this my whole career!?!” Fact of the matter it was here all along I never looked hard enough.
When .NET Core came along for me it was that “about time” moment. Where Microsoft was coming around with this new open source project. At first it looked to be a port of parts of the .NET Framework. At to be fair that was all it was. Never did in a million years would anyone think Microsoft was going open source. We were all wrong. Let’s all admit Core came to the cloud game late. And had some catching up to do. But Microsoft put focus on a small footprint, lower memory and fast startup. They gave us an opinion on best practices. But they made this cross platform compatible. Now that doesn’t mean running this on Windows doesn’t give you a few advantages. Which all the critics love to point out. But with every new release of .NET Core the closer we get to full feature parity between all platforms.
As .NET Core and Framework are moving towards a unified platform. This has opened up more possibilities for modernization. It is a very exciting time for .NET developers. We have newer frameworks such as Steeltoe. Yes, I will admit Steeltoe is nowhere close to where Spring is. But to be fair Spring has had a bigger head start. We can now build modern cloud native application in .NET for any platform. Using any developer machine, we want. I wrote about setting up a developer workstation using Ubuntu. I write .NET Core on my Mac. So long the days of needing a Windows desktop and server to use .NET.
If you are thinking of modernizing your .NET portfolio now is the best time to do so. Microsoft is encouraging us to do so. Java/Spring and .NET/Steeltoe are both great languages and frameworks. There are a lot of features both will have and there are some that Spring will only have. Modernized to the language and framework that makes sense. If you are a .NET shop the easiest path for modernization is .NET/Steeltoe. Check and see what your market can support before even attempting to switch from one to another. Some cities have plenty of .NET developer and almost no Java. Sure, you can teach a Java developer .NET and vice versa. But it’s easier to teach a .NET developer how to build a cloud native app in .NET than Java. They know the language side they need to learn the cloud concept side.
No matter what your language or framework modernizing is easier than ever. If you go to the public cloud or stay in your datacenter. There is no excuse if you are a .NET shop looking to move to the cloud.