And there's more to come. I'll update this list as we go.
C# & .NET
More technically speaking, C# is object-oriented (class-based) and strongly and statically typed. It's a general-purpose language that's multi-paradigm so it supports both imperative and functional styles. Here's a concise list of C#:
- C# is object-oriented (class-based).
- C# has strong & static typing.
- C# enforces type-safety at runtime & compile-time.
- C# has a unified type system: all types derives from Object.
- C# can treat functions as values with delegates.
- C# supports FP to some extent with LINQ, lambda, and immutability.
So what is a .NET platform?
Well, .NET Core, .NET Framework, Mono, or Xamarin are all examples of .NET platforms. Confusingly enough, all of them are both frameworks and platforms. To clarify, they are frameworks because they provide a library but also platforms since they provide a runtime and compiler. So to summarise, a .NET framework/platform will provide both a Common Language Runtime (CLR) and Class library.
Even so, let's not avoid the fact that ".NET Framework" is a confusing name. Because as we just covered, it's both a platform and framework. Though it's a reality that we must live with, I suppose. But we shouldn't let that dampen our spirits. The reason being, that Microsoft has recently shifted focus on making .NET more open-source and cross-platform with, for example, .NET Core. Thus, we can run on different operating systems like Linux, Windows, and macOS.