Alistair Chapman

92 points
Alistair Chapman
Brisbane, AU

Alistair Chapman is an InfoSec Engineer, .NET developer and technical architect. While he's currently working at Red Hat, he's also done everything from network engineering to DevOps transformations. When not at work, Alistair is active in the .NET open-source community, including maintaining Cake (a .NET Foundation project).
All opinions are my own, and do not represent Red Hat.

Authored Comments

I'm actually a big fan of Go, and it's approach to native compilation! I'm also a strong believer in choice and think it's great that developers now have more choice in the cross-platform space.

While I agree that Go has a great solution to cross-platform, Go and .NET are very different languages, platforms and ecosystems. C#, for example, is a very full-featured language with generics, exceptions, native async support, overloading, and nullable types; Go has none of these (to my knowledge).

Equally, the NuGet package ecosystem is a big part of the .NET platform, while Go (as a convention) tends to avoid dependencies as much as possible, and certainly doesn't bake in support for package management, like .NET Core does.

Conversely, working with low-level primitives (like pointers), some async constructs (using goroutines) and interface implementation (since it's ambient) are all vastly easier when developing in Go than .NET.

I certainly wouldn't want to suggest that .NET is the correct solution for every kind of developer, or every kind of use case, but wanted to demonstrate that developers now have an extra choice when it comes to standalone, cross-platform development.

.NET Core may be many things but it's certainly not "irrelevant, ineffective and ancient", it's just not the right solution for every use case.

Hope that helps!