Why I Left the .NET Framework · Jonathan Oliver
dotnetsoftware-engineeringgo-languageplatform-migrationperformance
Abstraction: Developer critique of .NET ecosystem pitfalls motivating migration to Go
Key points:
- Praised aspects: C# language quality, ReSharper, NuGet, Mono effort, CQRS+Event Sourcing (originated in .NET community)
- Windows server startup on AWS takes 10+ minutes vs 15-20 seconds for Linux; NTFS vs modern filesystems (ZFS, BTRFS)
- IIS throughput ~50K req/s vs Netty JVM 650K+ req/s for simple hello-world; Mono web server ranked last in benchmarks
- Multi-threaded lock-based concurrency is slow; lock-free event-driven (Go goroutines, Erlang, Gevent, Netty/NIO) enables 20M+ events/s with the Disruptor pattern
- .NET ecosystem defaults (SQL Server, Entity Framework, Visual Studio project files) push toward database-centric design before understanding the problem domain
- Core lesson: technology is an implementation detail; correct domain model and encapsulation matter more than tooling choices
Connections: Microsoft · Dotnet · Software Engineering · Programming Languages · Systems Performance