langwhy

C#

Backend· alive, actively evolving· since 2000 · Anders Hejlsberg · Microsoft

Language for building .NET applications, from web services and desktop apps to Unity game scripts.

Draft from 2026-10-30, not yet checked claim by claim against its sources. Help verify it.

Born from

In January 1999 Anders Hejlsberg, who had designed Turbo Pascal and Delphi and worked on Visual J++, formed a team at Microsoft to build a new language for the .NET runtime, first called COOL. Microsoft's own Java had been tied up in a lawsuit with Sun since the late 1990s, and the January 2001 settlement ended the 1996 Java licence, so .NET needed a managed language of its own. The language was announced as C# in July 2000.

What it trades away

garbage collectedmemory
static typestypes
runs on a virtual machineruns as
threads, asyncconcurrency

Cost: The .NET runtime is large and garbage-collected, so latency-sensitive code needs tuning that C or Rust code avoids.

Where it fits

SlotFit
games●●●Unity uses C# for gameplay scripts.
server●●●Stack Overflow's 2016 web tier ran on ASP.NET MVC.
cli●●○
mobile●○○
browser●○○Blazor runs C# in the browser through WebAssembly, but JavaScript is the default.
systems○○○Kernels and drivers are written in C or C++, not in C#.

Why it exists

In January 1999 Anders Hejlsberg formed a team at Microsoft to build a new language, then called COOL, for the runtime that became .NET; by the time the .NET project was announced at the Professional Developers Conference in July 2000 it had been renamed C# (Wikipedia). Microsoft’s Java path was ending in court at the same time: in January 2001 it settled Sun’s Java lawsuit, and the 1996 licence between the two companies was terminated (InfoWorld). Hejlsberg had designed Delphi at Borland and worked on Visual J++ at Microsoft (Artima), and in July 2000 he said C# is “not a Java clone” (Wikipedia). Microsoft promoted .NET that month as a platform “designed for any programming language” (Microsoft).

What it trades away

C# trades a large runtime for safety and tooling. Code is garbage-collected and runs on the .NET common runtime, so it gets a big standard library and strong tooling, but it also carries a runtime’s startup time and memory overhead. Microsoft open-sourced .NET Core in 2014 (Microsoft .NET blog), and its website now describes .NET as running on Windows, Linux and macOS (.NET). Latency-sensitive code still needs tuning that C or Rust code does not.

Where it won

Unity, the game engine, uses C# for gameplay scripts, so game logic in Unity projects is written in C# (Unity manual). On the server, Stack Overflow’s 2016 web tier ran on IIS, ASP.NET MVC 5.2.3 and .NET 4.6.1 (Nick Craver). The same post says the service tier ran IIS 8.5 on Windows Server 2012 R2, so production was Windows-first.

Named wins

Evolution

Reacts to: Java, delphi

Led to: Swift

Weigh it against: Java, Kotlin, Go, Dart

Timeline

Links

website · repo · PLDB

Sources

  1. https://en.wikipedia.org/wiki/C_Sharp_(programming_language)
  2. https://www.infoworld.com/article/2159673/sun-microsoft-settle-java-lawsuit.html
  3. https://www.theregister.com/2010/07/05/dot_net_anniversary/
  4. https://www.artima.com/intv/csdes.html
  5. https://news.microsoft.com/source/2000/07/11/microsoft-announces-groundswell-of-support-for-net-platform
  6. https://ecma-international.org/publications-and-standards/standards/ecma-334/
  7. https://devblogs.microsoft.com/dotnet/net-core-is-open-source
  8. https://docs.unity.com/en-us/engine/6000.3/manual/scripting/get-started/intro-to
  9. https://netlify.nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/

Unverified draft, 2026-10-30.Edit the facts · edit the story · JSON · Markdown