Today I was asked if I’d be interested in learning ASP.NET. I’ve heard of this framework, since I’ve spent decades on Windows platforms, but I hadn’t actually used it. So I took a look at it today, and I was surprised to discover that under the hood ASP.NET (which I suppose is called just .NET lately) uses C#, and I have done a couple of small automation projects in C# on my Windows workstation. I found C# easy to work with because it has a lot in common with Java, which I’ve used quite a bit.
So this evening I deployed my first very small demo .NET web app using Nginx as a reverse proxy. I’ve used other MVC frameworks before, such as Django, JavaFX, and most recently Drupal, and I can already see that .NET bears affinities to these other tools.
Since I have been getting into REST APIs lately (e.g., see the URL shortener I built using Python’s FastAPI), I also implemented a very simple REST API using .NET, which accepts any string and returns the reverse of the string.
I’m a firm believer that a software developer should be able to pick up whatever framework or programming language is suited to the task at hand and get productive in it quickly. For sure, frameworks and languages have their individual strengths and weaknesses and their own idiomatic ways of using them, but all their similarities far outweigh their differences. Loops, data structures, object-oriented design, anonymous functions, exception handling, recursion… nearly every programming language has these basic building blocks. Once you’ve used a few PLs, new ones come pretty easily. (OK, I’ll draw the line at highly functional languages like Haskell and LISP. Those might require a paradigm shift in thinking in order to grok them.)